Skip to content

Handle complex version ranges in internal dependencies #175

@goulvenclech

Description

@goulvenclech

Describe the current behavior

For internal dependencies with complex version constraints (ranges, multiple constraints), npm, hex, and pypi adapters silently skip updates:

  • npm: skips >, < prefixes
  • hex: skips and/or conjunctions
  • pypi: skips multiple constraints like >=1.0,<2.0
  • cargo: overwrites any constraint with the exact new version

Describe the problem

When bumping pkg-b from 1.5.0 to 2.0.0, if pkg-a depends on pkg-b>=1.0,<2.0:

  • The constraint is silently skipped
  • pkg-a now has an invalid/outdated internal dependency
  • No warning is shown to the user

What's the expected result?

Parse complex ranges properly and:

  1. If new version satisfies the range → skip silently (no update needed)
  2. If new version does NOT satisfy the range AND packages are fixed or linked → throw an error
  3. If new version does NOT satisfy the range → skip with a warning

This would surface constraint conflicts early instead of silently producing inconsistent workspaces.

Metadata

Metadata

Assignees

Labels

P2 - highBugs that violates the documented behavior.RFCProposed feature or change - open for feedbackcrt:sampo-coreChanges in Sampo core logic or internal utils.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions