fsprojects / fsprojects/Paket

Bootstrapper doesn't work with some Nuget repos

Open
#1,891 7 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Description

The bootstrapper does not work against our internal Nexus repo which is hosting Nuget instances. Having debugged the bootstrapper, it seems that this is because the Bootstrapper seems to exclusively use the /package-versions/ Nuget v2 API endpoint, which some Nuget repos don't seem to support, including our corporate Nexus installation (v2.13).

I'm unclear on whether it should support this because I can't find a clear documentation for either Nuget or Nexus... but I can see that paket.exe itself falls back to alternative OData query endpoints /FindPackagesById()?... and /Packages?$filter=... which both work fine, so Paket.exe doesn't have this problem - only the bootstrapper.

Repro steps

Difficult to specify beyond the description above as I cannot expose our corporate nexus repo externally.

I'm running

paket.bootstrapper.exe -f --force-nuget --nuget-source=http://my-nuget-repo/the/repo
Expected behavior

Bootstrapper downloads paket.exe

Actual behavior

Error printed to console.
"The remote server turned an error: (404) Not Found. (Nuget)

Known workarounds

None.

Related information
  • Operating system = Windows 7 x64
  • Branch - v3.16.3.0

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 with the bootstrapper's NuGet download path and compare its /package-versions/ request with Paket.exe's fallback OData endpoints, /FindPackagesById() and /Packages?$filter=.... Reproduce the reported command against a compatible Nexus-style repository; done means paket.bootstrapper.exe downloads paket.exe when /package-versions/ is unavailable.

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.