fsprojects / fsprojects/Paket

Redirect not added even though it's necessary when library is built with a newer (but not required) version of a dependency.

Open
#3,434 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
F#
Stars
2.1k
Forks
528
Avg merge
1d 12m
Merged PRs (30d)
54

Description

Solution S:

  • Project A, L >= v1
  • Project B, L == v2

S will correctly use L v2.

A is the interesting thing here. The project is built with v2, and this is
clearly indicated in the DLL so it is able to load the correct version. On the
other hand, it correctly works with v1 too, so the nuspec only states >= v1.

And here comes the problem. When adding a dependency for A, no redirect is added
for L even though we have redirects: on. This means A will try to load v2 even
if the solution requires v1 because of some other library.

As a workaround, it's possible to add nuget L redirects: force to the solution
requiring A.

I believe paket should add a redirect if the library is built with a higher
version than it requires.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The report describes Paket's redirects: on behavior for a dependency built against a newer assembly version. Start by reproducing the A/B/L scenario with redirects enabled and compare it with redirects: force; done means normal mode adds the needed redirect while preserving the >= dependency constraint.

Written by the indexing model from the issue text.

Assessment

Tech stack
fsharp
Domain
tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.