Skip to main content
Version: nightly

v28.0.0

Upgrade to v28.0.0 - New Versioning Scheme in Ignite

With the latest update, Ignite has transitioned its versioning format from a leading-zero release system to a full number release system. This change marks a significant shift in how we communicate updates and stability in our software. Where the previous version was denoted as v0.27.0, it will now be upgraded to v28.0.0.

This new versioning approach enhances our version control by clearly indicating major, minor, and patch releases. From now on first number indicates a major release with breaking API changes, second number indicates minor release that might include new features while the last number is typically focused on bug fixes and minor improvements. Learn more about semantic versioning.

Plugins are now called Apps. Upgrade Configuration Files

Ignite v28.0.0 changes the plugin system which is now called Ignite Apps. This version includes changes to the CLI command names and the plugin configuration file.

The plugins configuration file is now called igniteapps.yml and "plugins" are now called "apps".

The plugins configuration home directory is now $HOME/.ignite/apps instead $HOME/.ignite/plugins.

Updates can be automatically applied by running ignite doctor in your blockchain application directory. Running the command outside your blockchain application directory will only update the global plugins.

Ignite and Cosmos SDK Upgrade Guide: From Ignite v0.27.0 to v28.0.0 and Cosmos SDK v0.47 to v0.50

Introduction

This guide provides a step-by-step process for developers to upgrade their applications from Ignite version 0.27.0 to 28.0.0, along with an upgrade in the Cosmos SDK from version 0.47 to v0.50. It covers essential changes, new features, and adjustments required for a smooth transition.

Prerequisites

  • Backup your current project.
  • Ensure you have Ignite v0.27.0 and Cosmos SDK v0.47 installed.
  • Basic familiarity with command line operations and the existing project structure.

Step 1: Update Ignite CLI to Version 28.0.0

  • Command: Run curl https://get.ignite.com/cli@v28.0.0 | bash in your terminal.
  • Note: This command updates the Ignite CLI to the latest version. Ensure you have the necessary permissions to execute it.

Step 2: Update Scaffold Chain Command

  • Old Command: ignite scaffold chain github.com/alice/blog
  • New Command: ignite scaffold chain blog
  • Explanation: The command format has been simplified in the new version for ease of use.

Step 3: Docker Version Upgrades

  • Action: Upgrade the Ignite version for the Docker container to match the CLI version.
  • Note: Ensure Docker compatibility with the new Ignite CLI version.

Step 4: Change in Module Path

  • Old Path: x/blog/module.go
  • New Path: x/blog/module/module.go
  • Explanation: The module path structure has been updated for better organization.

Step 5: Frontend Scaffolding Options

  • Action: Choose between Vue, React, Go, or TypeScript for frontend scaffolding.
  • Commands:
    • ignite scaffold react
    • ignite scaffold vue
  • Note: Vue is no longer the default option for frontend scaffolding.

Step 6: Update Scaffold Message for CreatePost Command

  • Action: Review and update the output for the scaffolded createPost command as per the new format.

Step 7: AutoCLI Path Change

  • Old Path: x/blog/client/cli/tx_create_post.go
  • New Path: x/blog/module/autocli.go
  • Explanation: AutoCLI is now integrated at a different path to streamline command-line interactions.

Step 8: Adjustment in Stored Game

  • Old Code:
    store := prefix.NewStore(ctx.KVStore(k.storeKey), types.KeyPrefix(types.PostKey))

  • New Code:
    storeAdapter := runtime.KVStoreAdapter(k.storeService.OpenKVStore(ctx))
    store := prefix.NewStore(storeAdapter, types.KeyPrefix(types.PostKey))

  • Explanation: The way the KVStore is accessed has changed, requiring an update in the code for stored games.

Step 9: Chain-ID Requirements in CLI Transaction Commands

  • Action: Add -chain-id flag to CLI transaction commands.
  • Example:
    • Old Command: blogd tx blog create-post 'Hello, World!' 'This is a blog post' --from alice
    • New Command: blogd tx blog create-post 'Hello, World!' 'This is a blog post' --from alice --chain-id blog
  • Explanation: The chain-id flag is now required for transaction commands for identification purposes.

Troubleshooting Common Issues

  • Dependency Conflicts: Ensure compatibility of all dependencies with Ignite v28.0.0 and Cosmos SDK v0.50.
  • Docker Image Compatibility: Align Docker image versions with the CLI for seamless operations.
  • Frontend Scaffolding: For older projects, ensure correct scaffolding as per the new commands.
  • AutoCLI Integration: Address discrepancies due to the new AutoCLI integration path.

Additional Resources

Feedback

We value your feedback on this guide. Please share your experiences and suggestions for improvements.

Updates Log

  • [01/15/24]: Guide created for Ignite v28.0.0 and Cosmos SDK v0.50.1