Skip to content
This repository has been archived by the owner on May 5, 2022. It is now read-only.

Implement "minimal version selection" for dependencies #5

Merged
merged 1 commit into from
Jul 5, 2021

Conversation

cgay
Copy link
Member

@cgay cgay commented Jul 4, 2021

The algorithm used here is based on my understanding of
https://research.swtch.com/vgo-principles, which can be very roughly
summarized as "providing repeatable builds by preferring the lowest
possible specified version of any package".

Complex dependency constraints are dropped completely. Each package
specifies only a minimum acceptable version. If multiple packages
depend on P then the maximum minimal version of P is used. If two
packages require different major versions of P, it is an error.

A set of "active" packages may be passed to resolve-deps. No version
of an active package is ever included in the result. The idea being
that the active packages are usually checked out on a branch in the
user's workspace.

The algorithm used here is based on my understanding of
https://research.swtch.com/vgo-principles, which can be very roughly
summarized as "providing repeatable builds by preferring the lowest
possible specified version of any package".

Complex dependency constraints are dropped completely. Each package
specifies only a minimum acceptable version. If multiple packages
depend on P then the maximum minimal version of P is used. If two
packages require different major versions of P, it is an error.

A set of "active" packages may be passed to resolve-deps. No version
of an active package is ever included in the result. The idea being
that the active packages are usually checked out on a branch in the
user's workspace.
@cgay cgay merged commit 5dcf2fa into dylan-lang:master Jul 5, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant