Skip to content

How to release extensions

Marc Busqué edited this page Jan 5, 2022 · 11 revisions

Automated release with solidus_dev_support

When the extension uses an up-to-date version of solidus_dev_support you can release the new version by using the following commands (remember to adjust the version number):

bundle exec gem bump -v 1.6.0
# For the next step, you may need to generate a token in https://github.com/settings/tokens and provide it as the `CHANGELOG_GITHUB_TOKEN` environment variable
bin/rake changelog
git commit -a --amend	
git push --follow-tags <remote>
bundle exec gem release

Manual release

When the extension cannot take advantage of the facilities provided by solidus_dev_support you'll need to manually release the extension on Rubygems and update the changelog.

Release on RubyGems

Install and configure the gems gem-release and github-changelog-generator`.

The extension must have a properly configured .gem_release.yml file, like this one from solidus_stripe (remember to adjust the file path and the message body with the proper information):

# .gem_release.yml

bump:
  recurse: false
  file: 'lib/solidus_stripe/version.rb'
  message: Bump Solidus Stripe to %{version}
  tag: true

Be sure you are on master branch, then:

gem bump -v minor --tag --release --push

or, if the main repo is in another git remote:

gem bump -v minor --tag --release --push --remote upstream

Update CHANGELOG

bundle exec github_changelog_generator --user EXTENSION_ORG --project EXTENSION_NAME --token YOUR_TOKEN
git commit -am 'Update CHANGELOG'

git push master
# or
git push upstream master