Skip to content

Latest commit

 

History

History
60 lines (47 loc) · 3.17 KB

CONTRIBUTING.md

File metadata and controls

60 lines (47 loc) · 3.17 KB

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/pboling/gem_bench. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

To submit a patch, please fork the project and create a patch with tests. Once you're happy with it send a pull request.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run bin/rake to run the default rake tasks, which include specs. You can also run bin/console for an interactive prompt that will allow you to experiment.

Release

One-time, Per-developer, Setup

IMPORTANT: Your public key for signing gems will need to be picked up by the line in the gemspec defining the spec.cert_chain (check the relevant ENV variables there), in order to sign the new release. See: RubyGems Security Guide

To release a new version:

  1. Run bin/setup && bin/rake as a tests, coverage, & linting sanity check
  2. Update the version number in version.rb
  3. Run bin/setup && bin/rake again as a secondary check, and to update Gemfile.lock
  4. Run git commit -am "🔖 Prepare release v<VERSION>" to commit the changes
  5. Run git push to trigger the final CI pipeline before release, & merge PRs
  6. Run export GIT_TRUNK_BRANCH_NAME="$(git remote show origin | grep 'HEAD branch' | cut -d ' ' -f5)" && echo $GIT_TRUNK_BRANCH_NAME
  7. Run git checkout $GIT_TRUNK_BRANCH_NAME
  8. Run git pull origin $GIT_TRUNK_BRANCH_NAME to ensure you will release the latest trunk code
  9. Set SOURCE_DATE_EPOCH so rake build and rake release use same timestamp, and generate same checksums
    • Run export SOURCE_DATE_EPOCH=$EPOCHSECONDS && echo $SOURCE_DATE_EPOCH
    • If the echo above has no output, then it didn't work.
    • Note that you'll need the zsh/datetime module, if running zsh.
    • In bash you can use date +%s instead, i.e. export SOURCE_DATE_EPOCH=$(date +%s) && echo $SOURCE_DATE_EPOCH
  10. Run bundle exec rake build
  11. Run bin/checksums (more context) to create SHA-256 and SHA-512 checksums
    • Checksums will be committed automatically by the script, but not pushed
  12. Run bundle exec rake release which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org

Contributors

Contributors

Made with contributors-img.