Skip to content

How to release Solidus

Thomas von Deyen edited this page Apr 5, 2024 · 44 revisions

Releasing a patch

  1. Check the release draft (this is kept up to date with workflow automations)
  2. Run the prepare release workflow selecting the maintenance branch of the relevant minor (e.g. to release v1.2.3 you need to select the v1.2 branch)
  3. Check and merge the automatically generated PR updating the version numbers and the changelog
  4. Checkout and update the relevant maintenance branch (e.g. git checkout v1.2; git reset --hard origin/v1.2) *)
  5. Build and release the gems to RubyGems bundle exec rake release (you'll be asked for 2FA for each of the gems)

See also this section for more details on the prepare release workflow.

*) Assuming your Solidus remote is called origin. If you use a fork your origin is most likely your fork and you should have a upstream remote pointing to https://github.com/solidusio/solidus.git.

Releasing a minor

There are many steps still required to release a minor, please create a new issue using the new_minor_release.md template and let it guide you step by step.

Click here to create a new issue with the new_minor_release.md template

Releasing a major

Notice about major releases

To release a new Major version, we try to respect this simple principle:

The only difference between a Major version and the last Minor of the past series is the removal of deprecated code.

For example, v2.11 is identical to v3.0. The only difference is that in v3.0, we removed all of the code deprecated during the v2.x cycle.

This is not always possible. Some things cannot be easily deprecated. For those exceptions, we just make the change in the major, being as explicit as possible about it in the upgrade instructions.

Please, always check if there are PRs on hold with the label release:major before releasing a new major.

Notice about solidus_frontend removal from the meta-gem

For Solidus ~> 3.2, please remember to bump solidus_frontend at the target version before releasing a new version of the core gems.

Before releasing, we also need to bump the solidus_frontend dependency on the main .gemspec file.