How to validate, build, and publish the octaspace gem.
Important release policy for this repository:
- there is no GitHub Actions workflow that publishes to RubyGems automatically
- publish only after the feature PR is reviewed, polished, and merged into
main - publish from a clean local checkout of
main - do not use
rake releasein this repository; build, push, tag, and release explicitly as separate manual steps
- Finish the feature branch work and merge the PR into
main. - Switch to
mainlocally and pull the merged commit. - Update
CHANGELOG.mdand bumplib/octaspace/version.rbif that was not already done in the merged branch. - Run verification locally.
- Build the gem.
- Push the gem to RubyGems manually.
- Tag the exact published commit and push the tag.
- Create the GitHub Release manually from that tag.
git switch main
git pull --ff-only
bundle exec rake test # all tests pass
bundle exec standardrb # zero linting violations
gem build octaspace.gemspec # builds without warningsInstall the built gem outside the project and confirm it loads correctly:
gem install ./octaspace-0.2.0.gem
ruby -e "require 'octaspace'; p OctaSpace::Client.new"Or interactively:
irb
> require 'octaspace'
> OctaSpace::Client.new # public endpoints (no key)
> OctaSpace::Client.new(api_key: "token") # authenticated clientThere is no public staging server for RubyGems (test.rubygems.org was shut down). Use these alternatives to verify the gem before publishing:
- Inspect gem contents:
gem unpack octaspace-0.2.0.gem --target=/tmp/octaspace-check find /tmp/octaspace-check -type f | sort rm -rf /tmp/octaspace-check - Check metadata that RubyGems.org will display:
gem specification octaspace-0.2.0.gem
- Install and test in a clean environment:
gem install ./octaspace-0.2.0.gem ruby -e "require 'octaspace'; p OctaSpace::Client.new; puts OctaSpace::VERSION"
gem push octaspace-0.2.0.gemYou will be prompted for credentials on first push. The API key is saved to ~/.gem/credentials.
- Verify the gem page at rubygems.org/gems/octaspace.
- Tag the exact published commit:
git tag v0.2.0 && git push origin v0.2.0. - Create the GitHub Release manually from tag
v0.2.0. - Bump
lib/octaspace/version.rbfor the next development cycle in a follow-up commit.