Skip to content

Latest commit

 

History

History
31 lines (20 loc) · 1.48 KB

development.md

File metadata and controls

31 lines (20 loc) · 1.48 KB

Development

Each gem manages its own tests/lint independently — its own Gemfile/Gemfile.lock, own spec/, no shared state or run-order dependency between gems:

cd portage-ucp && bundle exec rspec && bundle exec rubocop

Or run the full suite across every gem in one command, via the root Rakefile — it just shells into each gem dir in turn and stops at the first failure, no root-level bundle or cross-gem dependency involved:

rake spec   # == rake, spec is the default task

See the design log for the rationale and decision history behind this project (not part of this site — it's excluded from the published docs, see Contributing § docs).

Building this documentation site locally

See Contributing § building the docs.

Releasing a gem

gem build must be run from inside the gem's own directory, not the workspace root — every gemspec's spec.files = Dir["lib/**/*.rb", ...] resolves against whatever the current directory is, so building from the wrong place silently produces an empty package (see the 0.7.1 postmortem in the changelog). Before pushing a build, run it through release_check, which builds the gem from its own directory and smoke-tests that the resulting package actually installs and requires:

rake release_check[portage-ucp]

Only push to RubyGems once that passes.