How to Repair an Old Gem (Part 2) - Bundler
Checkout Part 1 of the series first!
When I started working on this os
repair project a fresh checkout of the source code would not bundle install
.
I was able to fix the problem, but these issues are like peeling an onion. After fixing bundler the tests would not run, and how can you merge a PR if the test suite hasn’t been run?
The critical change for bundler is removing the os
gem from being a dependency of the os
gem.
# Removed:
s.add_runtime_dependency(%q<os>.freeze, [">= 0"])
The critical change for RSpec is constraining the version to the last known good state,
which thankfully was recorded in the Gemfile.lock
.
# Locked down to patch level:
s.add_dependency(%q<test-unit>.freeze, ["~> 3.2.0"])
s.add_dependency(%q<rspec>.freeze, ["~> 2.5.0"])
Additionally it fixes two broken tests, where it is clear the author and I have different platforms, and so we hit different paths in the test code.
Bundle fixed, and tests passing!
Check out the pull request and give it a thumbs up or a heart if you are feeling generous!
Stay tuned for further posts in this series!
comments powered by Disqus