fsprojects / fsprojects/Paket

Strategy "min" seems to be broken

Open
#2,715 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Description
group netcore
    //source https://ci.appveyor.com/nuget/paket
    source https://api.nuget.org/v3/index.json
    storage: none
    framework: netstandard1.6, netcoreapp1.0

    nuget Microsoft.NETCore.App !~> 1.0
    nuget FSharp.Compiler.Service storage: packages, content: none
    nuget Microsoft.DotNet.PlatformAbstractions !~> 1.0
    nuget NETStandard.Library !~> 1.0
    nuget FSharp.Core ~> 4.1.2
    nuget Argu
    nuget Paket.Core prerelease
    nuget Mono.Cecil prerelease

    nuget System.Linq.Parallel
    nuget System.Diagnostics.FileVersionInfo
    nuget System.Diagnostics.Process
    nuget System.IO.Compression
    nuget System.IO.Compression.ZipFile
    nuget System.Runtime.Loader

resolves

... snip
    Microsoft.NETCore.App (1.1.2)
      ... snip
      Microsoft.NETCore.DotNetHostPolicy (>= 1.0.5) - restriction: || (&& (== netstandard1.6) (>= netcoreapp1.0)) (== netcoreapp1.0)
      Microsoft.NETCore.Platforms (>= 1.0.2) - restriction: || (&& (== netstandard1.6) (>= netcoreapp1.0)) (== netcoreapp1.0)
      Microsoft.NETCore.Runtime.CoreCLR (>= 1.0.7) - restriction: || (&& (== netstandard1.6) (>= netcoreapp1.0)) (== netcoreapp1.0)
      Microsoft.VisualBasic (>= 10.0.1) - restriction: || (&& (== netstandard1.6) (>= netcoreapp1.0)) (== netcoreapp1.0)
      NETStandard.Library (>= 1.6) - restriction: || (&& (== netstandard1.6) (>= netcoreapp1.0)) (== netcoreapp1.0)
      ... snip
    Microsoft.NETCore.DotNetAppHost (2.0) - restriction: || (&& (== netstandard1.6) (== netcoreapp1.0)) (&& (== netstandard1.6) (>= netcoreapp1.0)) (== netcoreapp1.0)
    Microsoft.NETCore.DotNetHostPolicy (2.0) - restriction: || (&& (== netstandard1.6) (== netcoreapp1.0)) (&& (== netstandard1.6) (>= netcoreapp1.0)) (== netcoreapp1.0)
      Microsoft.NETCore.DotNetHostResolver (>= 2.0)
    Microsoft.NETCore.DotNetHostResolver (2.0) - restriction: || (&& (== netstandard1.6) (== netcoreapp1.0)) (&& (== netstandard1.6) (>= netcoreapp1.0)) (== netcoreapp1.0)
      Microsoft.NETCore.DotNetAppHost (>= 2.0)
    Microsoft.NETCore.Jit (2.0) - restriction: || (&& (== netstandard1.6) (== netcoreapp1.0)) (&& (== netstandard1.6) (>= netcoreapp1.0)) (== netcoreapp1.0)
    Microsoft.NETCore.Platforms (2.0)
    Microsoft.NETCore.Runtime.CoreCLR (2.0) - restriction: || (&& (== netstandard1.6) (== netcoreapp1.0)) (&& (== netstandard1.6) (>= netcoreapp1.0)) (== netcoreapp1.0)
      Microsoft.NETCore.Jit (>= 2.0)
    Microsoft.NETCore.Targets (2.0)
... snip
$ .paket/paket.exe why --group netcore Microsoft.NETCore.DotNetHostPolicy
Paket version 5.92.3
NuGet Microsoft.NETCore.DotNetHostPolicy is a transitive dependency.
It's a part of following dependency chains:

-> Microsoft.NETCore.App
  -> Microsoft.NETCore.DotNetHostPolicy

Performance:
 - Runtime: 13 seconds

There is no reason for paket to resolve a 2.X version of Microsoft.NETCore.DotNetHostPolicy it should resolve https://www.nuget.org/packages/Microsoft.NETCore.DotNetHostPolicy/1.1.0 because Microsoft.NETCore.DotNetHostPolicy (>= 1.0.5) is requested by Microsoft.NETCore.App.

Also when I look at https://www.nuget.org/packages/dotnet-mergenupkg it seems fundamental to use different versions of the same package to support multiple dotnet-sdks....

Expected behavior

Paket should choose the correct versions.

Actual behavior

Paket uses the wrong versions

Known workarounds

Specifying all dependencies as direct dependencies?

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

Start by reproducing the netcore group resolution from the issue body with Paket 5.92.3, then compare the resolved Microsoft.NETCore.DotNetHostPolicy versions and the output of paket why. Trace the dependency-resolution behavior responsible for selecting version 2.0; done means the reported constraints select the compatible 1.1.x version without requiring every dependency to be declared directly.

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
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.