appraisal2 v3.0.6 released!
3.0.6 - 2026-02-17
- TAG: v3.0.6
- COVERAGE: 88.34% – 727/823 lines in 27 files
- BRANCH COVERAGE: 76.05% – 127/167 branches in 27 files
- 43.11% documented
Added
- Test for bundler handling with pre-existing appraisal lockfiles
- Added acceptance test that verifies appraisal correctly handles
gemfiles/*.gemfile.lockfiles withBUNDLED WITHspecified - Test validates that:
- Appraisal gemfiles with pre-created lockfiles install correctly
- Lockfiles preserve the
BUNDLED WITHsection reporting which bundler version was used - The bundler version in the lockfile is correctly maintained during installation
- Note: Multi-version bundler switching in CI would require pre-installing multiple bundler versions; coverage is limited to lockfile preservation and environment handling.
- Added acceptance test that verifies appraisal correctly handles
Fixed
- Restore bundler’s automatic version switching for modern bundler versions (2.2+)
- Bundler can detect and switch to the version specified in
Gemfile.lock(or appraisal lockfiles) viaBUNDLED WITH - Previously,
with_original_envstripped all bundler-related variables, preventing bundler from detecting version mismatches and breaking test isolation - Now uses
with_bundler_envwith selective cleanup:- Starts from
Bundler.original_envwhen available - Preserves critical bundler and isolation variables (for example:
BUNDLE_GEMFILE,BUNDLE_APP_CONFIG,BUNDLE_PATH,BUNDLE_USER_CACHE) - Removes
BUNDLER_SETUPandBUNDLER_VERSIONactivation markers - Removes
bundler/setupfromRUBYOPTto prevent auto-activation in subprocesses - Prevents
BUNDLE_LOCKFILElockfile pollution of subprocesses so per-gemfile lockfiles are created correctly
- Starts from
- This approach:
- Lets subprocess bundler start fresh and process the target gemfile cleanly
- Preserves test isolation and prevents global config pollution
- Enables committing appraisal lockfiles with specific bundler versions for stable, repeatable builds
- This fix maintains backward compatibility with all bundler versions
- Bundler can detect and switch to the version specified in
Many paths lead to being a sponsor or a backer of this project. Are you on such a path?