Bootstrapper failed without exit code
Nobody has claimed this yet.
- Dominant language
- F#
- Stars
- 2.1k
- Forks
- 528
- Avg merge
- 1d 12m
- Merged PRs (30d)
- 54
Description
Description & Repro
In FAKE we use
Paket.Push(fun p ->
{ p with
DegreeOfParallelism = 2
WorkingDir = nugetLegacyDir })
Apparently this fails when using magic mode in combination with a not downloaded release (IE just increasing version in paket.dependencies).
Note that you SHOULD not run FAKE with build.sh and build.cmd as those will download paket and workaround the issue
-
Increase version in paket.dependencies
-
run a FAKE target with the above code && have at least 2 packages to push in the folder
Expected behavior
Successful push of all the packages
Actual behavior
NO error, following in stdout:
The process cannot access the file 'C:\Users\matth\.babun\cygwin\tmp\paket_4129425AFDA0D8826014E424D06C0EB7A734D935EB438ED99CC404FD8F885AF7.exe' because it is being used by another process. (Github - cached)
And only ONE of the first TWO packages pushed (one is missing).
Known workarounds
run paket.exe --version before running FAKE.
Remarks
Imho this should not happen with current projects a lot as bootstrapping process usually will have paket downloaded. But it might be a problem with FAKE 5 in the described situation.
Problem is that at the very least the build needs to break. Otherwise people won't notice that paket has done nothing (in this case a package has not been pushed!). I guess paket-bootstrapper returns an incorrect exit-code in magic mode in this error condition.
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 paket-bootstrapper path used by FAKE magic mode and reproduce the issue by increasing the version in paket.dependencies without first running paket.exe --version. Check the behavior around the temporary paket_*.exe and the build.sh/build.cmd workaround; done means the failure returns a nonzero exit code and all packages are pushed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- fsharp
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100