appraisal2 v3.0.3 released!
3.0.3 - 2026-02-07
- TAG: v3.0.3
- COVERAGE: 89.67% – 703/784 lines in 27 files
- BRANCH COVERAGE: 83.45% – 121/145 branches in 27 files
- 43.03% documented
Added
- New CLI specs for testing named appraisal commands with options
- Shared RSpec contexts for mocking gem managers (
BundlerAdapterandOreAdapter) to facilitate faster unit testing
Changed
- Improved documentation for using
installandupdatecommands with named appraisals and options - Added examples showing correct command order:
appraisal <NAME> install --gem-manager=ore - Enhanced “Using Ore with Appraisal2” section with named appraisal examples
- Refactored
OreAdapterto use theAppraisal::Commandabstraction, unifying command execution across gem managers - Enhanced
Appraisal::Commandwith a:skip_bundle_execoption to support standalone executables likeore. When this option is enabled,Commandnow also skipsBundler.with_original_envwrapping andensure_bundler_is_availablechecks, avoiding unnecessary Bundler overhead. - Significantly optimized unit tests in
cli_spec.rbandappraisal_spec.rbby using gem manager mocks, reducing execution time from seconds to milliseconds
Fixed
- Improved robustness of acceptance tests in isolated environments, especially on Ruby HEAD.
- Updated
setup_gem_path_for_local_installto correctly includeTMP_GEM_ROOTand more reliably detect the parent project’svendor/bundlegem directory. - Added a fallback to remote installation in
build_default_gemfileifbundle install --localfails, preventing test failures when dependencies are missing from the local cache.
- Updated
- Improved robustness against Bundler installation failures in CI, especially on Ruby HEAD.
Appraisal::Commandand acceptance tests now only attempt to install Bundler if no version is currently available, avoiding unnecessary and potentially failing version-specific installations.- Removed aggressive Bundler version matching and “downgrading” logic that stripped prerelease suffixes.
- BREAKING BUG FIX: Fixed CLI to properly handle
installandupdatecommands when targeting a specific appraisal with options- Previously
appraisal <NAME> install --gem-manager=orewould incorrectly try to run the Unixinstallcommand - Now correctly invokes the appraisal install/update methods with proper option parsing
- Fixes error:
/usr/bin/install: unrecognized option '--gem-manager=ore'
- Previously
- Fixed argument parsing in CLI where repeated values could be mis-parsed as gem names instead of option values (e.g.,
appraisal <NAME> update ore -g ore). - Improved shell-escaping handling in
Appraisal::Commandand updated acceptance tests to match the more robust output - Standardized on
clean_name(underscores) for gemfile paths across the test suite for consistency
Many paths lead to being a sponsor or a backer of this project. Are you on such a path?