Skip to content

be more conservative syncing dependencies of conflicts with alternate lockfiles - #71

Merged
ccutrer merged 1 commit into
fix-lockfile-sync-issuesfrom
conservative-sync
Oct 28, 2026
Merged

ccutrer merged 1 commit into
fix-lockfile-sync-issuesfrom
conservative-sync

Conversation

@ccutrer

@ccutrer ccutrer commented Oct 19, 2026

Copy link
Copy Markdown
Member

No description provided.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Transitive replacements can retain incompatible dependencies, forcing remote resolution or breaking local synchronization.

1 open issue
What changed in this PR

Makes alternate-lockfile synchronization more conservative by checking requirements from gems outside the conflict set before adopting parent versions.

Changes:

  • Cache dependency requirements by dependent gem.
  • Use filtered requirements when choosing parent versions.
  • Add regression coverage for conservative shared-gem updates.
File Description
spec/​bundler/​multilock_spec.rb Tests preserving Rails versions during shared-gem updates.
lib/​bundler/​multilock/​cache.rb Tracks and filters dependent requirements.
lib/​bundler/​multilock.rb Checks requirements before adopting parent versions.

Review effort: Balanced

Comment thread lib/bundler/multilock.rb Resolved

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Retained dependencies and stale Gemfile constraints can produce invalid or out-of-sync merges.

2 open issues
1 resolved since last review

Review effort: Balanced

Comment thread lib/bundler/multilock.rb Resolved
Comment thread lib/bundler/multilock/cache.rb Resolved

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Obsolete constraints from same-version Git updates and removed dependencies can still prevent correct synchronization.

2 open issues
2 resolved since last review

Review effort: Balanced

Comment thread lib/bundler/multilock.rb Resolved
Comment thread lib/bundler/multilock.rb Resolved

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

An unresolved platform-ordering bug and unavailable Bundler integration validation warrant human review of the iterative synchronization logic.

1 open issue
2 resolved since last review

Review effort: Balanced

Comment thread lib/bundler/multilock.rb Resolved

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Precedence decisions can conflict with final validation or retain stale Gemfile constraints.

2 open issues
1 resolved since last review

Review effort: Balanced

Comment thread lib/bundler/multilock.rb Resolved
Comment thread lib/bundler/multilock.rb Resolved
@ccutrer
ccutrer requested a balanced review from Copilot October 20, 2026 16:52

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Newly introduced parent dependency edges can be missed, producing incompatible merged versions without unlocking the blocking gem.

1 open issue
1 resolved since last review

Review effort: Balanced

Comment thread lib/bundler/multilock.rb Resolved

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Retained variants of unreachable gems can incorrectly prevent synchronization and cause the final sync check to fail.

1 open issue
1 resolved since last review

Review effort: Balanced

Comment thread lib/bundler/multilock.rb Resolved

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Unresolved platform-selection and dependency-graph issues can produce invalid or unnecessarily divergent alternate lockfiles.

3 open issues
1 resolved since last review

Review effort: Balanced

Comment thread lib/bundler/multilock.rb Resolved
Comment thread lib/bundler/multilock.rb Resolved
Comment thread lib/bundler/multilock.rb Resolved

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Unneeded gems and unused platform variants can still force unnecessary dependency updates.

2 open issues
3 resolved since last review

Review effort: Balanced

Comment thread lib/bundler/multilock.rb Resolved
Comment thread lib/bundler/multilock.rb Resolved

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

Unresolved dependency-graph and platform-removal interactions require validation against real Bundler resolution.

2 open issues
2 resolved since last review

Review effort: Balanced

Comment thread lib/bundler/multilock.rb Resolved
Comment thread lib/bundler/multilock.rb Resolved

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Incompatible parent-only specifications can unnecessarily force dependency changes and unlock unrelated gems.

1 open issue
2 resolved since last review

Review effort: Balanced

Comment thread lib/bundler/multilock.rb Resolved

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔵 Needs a closer look

The iterative resolution changes need human validation, particularly around unresolved imported-platform filtering.

1 open issue
1 resolved since last review

Review effort: Balanced

Comment thread lib/bundler/multilock.rb Resolved
@ccutrer
ccutrer merged commit 6f9158a into main Oct 28, 2026
11 checks passed
@ccutrer
ccutrer deleted the conservative-sync branch October 28, 2026 13:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants