Restrictions Cascading
Nobody has claimed this yet.
- Dominant language
- F#
- Stars
- 2.1k
- Forks
- 528
- Avg merge
- 1d 12m
- Merged PRs (30d)
- 54
Description
Description
Similar to #3232, When you take a dependency on something requiring a restriction, these are then cascaded to all other 2nd level dependencies, regardless of if they actually have this restriction.
It's then required to specify the dependency in the paket.dependencies file (which in itself seems a bit wrong)
Coupled to this, if you just add the item to the dependencies file, you have to delete the lock file in order for it to generate without the restriction...which isn't very user friendly.
Suggested update, do not cascade restrictions from top level dependencies, just apply the restrictions that apply to each thing in isolation as though everything it top level.
When placing the dependency, it makes sense to include the restriction, but not on the line in the lock file displaying top level.
Example from the minimal repo in #3232, i would expect the restriction here: https://github.com/csmager/paket-transitives-repro/blob/master/paket.lock#L130
but not here: https://github.com/csmager/paket-transitives-repro/blob/master/paket.lock#L650
Since Microsoft.EntityFrameworkCore.SqlServer does not have a netcoreapp2.1 only restriction.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the minimal reproduction linked from #3232 and compare the restriction entries around lines 130 and 650 of paket.lock. Trace Paket's dependency restriction resolution and lock-file generation. Done means restrictions are applied only to dependencies that require them, are shown on dependency entries when appropriate, and lock regeneration does not require deleting the lock file.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- fsharp
- Domain
- build-system, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100