Why
Third format named in the README roadmap. Gemfile.lock has an exact-version GEM/specs section that maps cleanly onto Pin.
What to do
- Add
parse_gemfile(path) to sidecar/src/docchat_sidecar/lockfiles.py.
- Prefer
Gemfile.lock's specs: block (exact versions) when present; fall back to parsing gem "rails", "~> 7.0" lines in the Gemfile and running the range through _strip_range.
Acceptance criteria
- Tests for the lock-present and lock-absent paths plus malformed input.
- Full sidecar check pipeline green.
Pointers
lockfiles.py: Pin, _strip_range, and the existing parsers as templates.
Why
Third format named in the README roadmap.
Gemfile.lockhas an exact-versionGEM/specssection that maps cleanly ontoPin.What to do
parse_gemfile(path)tosidecar/src/docchat_sidecar/lockfiles.py.Gemfile.lock'sspecs:block (exact versions) when present; fall back to parsinggem "rails", "~> 7.0"lines in theGemfileand running the range through_strip_range.Acceptance criteria
Pointers
lockfiles.py:Pin,_strip_range, and the existing parsers as templates.