-
Notifications
You must be signed in to change notification settings - Fork 525
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Change caching logic to be more suitable for FAKE and in particular the Ionide tooling #3598
Conversation
FAKE and in particular the Ionide tooling
To unblock myself I uploaded Paket.Core in an alpha version. |
Ok, I added the PAKET_SKIP_RESTORE_TARGETS environment variable to skip paket.restore.targets extraction. This would have been helpful in analysing and to workaround issues like #3599 There are now just too many places where paket writes that file and that makes it impossible to quickly add a warning message into the targets file ... |
Me: adds set environment variable to start of build batch file. 🤣 |
I don't think the failure is related to my last commit (which basically should be a noop as long as the environment variable is not set). |
…nt parallel access when tests are still running
Edit: turned out it's not automatic extraction of targets file, but rather some change in FAKE between 5.13 and 5.15.1 |
@theimowski note that the extraction was not added with this PR.
You mean in FAKE, correct?
How is that even related to paket as global tool? |
Sorry I was wrong - edited my comment, I'll create a new issue in FAKE repository |
This changes some internals with (hopefully) minimal observable impact. The cache now supports multiple different "caching scenarios". This means that we can no detect if the .nuget/packages folder is up to date separately from if we have written new SDK restore files.
I left it the same single file because otherwise, we would have problems with
.gitignore
and user education again :). But the format changed now to a JSON file and we only store the hash within.Why?
After adding FAKE support into Ionide I noticed
paket.restore.targets
is written by paket.core (which is used by the Fake.Runtime, which is used to provide Ionide support).To solve this (and potentially some reported issues in FAKE as well). I refactored the restore process to allow a
SimpleRestore
(new public API), all this does is restoring packages into the NuGet cache.I could have tried to no use the cache when in Ionide or FAKE. But then the performance could be a problem. Hence this PR.