fsprojects / fsprojects/Paket

Extremely slow package resolution with min strategy

Open
#2,442 17 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Description

Using this paket.dependencies file, paket takes an extremely long time to perform a restore without a lock file. If you mix in lowest_matching: true into the mix it just about never completes (I've had it running for 20+ minutes now).

Repro steps

Please provide the steps required to reproduce the problem

  1. Download this dependencies file: https://gist.github.com/optical/aa7610d21b039fab417b61ba03d315a7
  2. Run paket install
  3. Note that it takes 3+ minutes to resolve (2m30s on runtime itself)

Test two:

  1. Download this dependencies file: https://gist.github.com/optical/aa7610d21b039fab417b61ba03d315a7
  2. Add lowest_matching: true to the file
  3. Run paket install
  4. Go home for the day and see if its finished tomorrow
Expected behavior

Resolving with strategy: min and lowest_matching: true should succeed within a reasonable timeframe

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

Download the linked paket.dependencies file and reproduce the reported paket install timing without a lock file. Then add lowest_matching: true alongside strategy: min and compare the result; done means resolution completes within a reasonable timeframe for both cases.

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.