-
Notifications
You must be signed in to change notification settings - Fork 585
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
FAKE keeps reverting the Paket.Restore.targets file updated by Paket. #2332
Comments
See the discussion in #2181 |
Oh, I had noticed it in the past. So that was what was it for? Still I believe this countermeasure is inadequate. Both FAKE and Paket get new versions very fast. The very frequent |
@teo-tsirpanis It is a feature that It is quite obvious why newer paket versions can break this particular feature. However, I use that feature a lot, and I'm not investing any time into making that optional. Additionally, I think excluding that particular feature is technically challenging, considering the I'd accept a PR which excludes that particular feature, for example via Does that clarify the situation? |
Can we not "just" upgrade paket.core? |
The problem is it just has to be done every time a new Paket version gets released. @matthid, if I define my dependencies inside the build script, would that solve the issue? |
Well that's the issue with any dependency |
@matthid. Where in the docs does it say about the restore? |
Indeed, I already do that. It's just that my schedule is to release one time every week at max. I try to do more stable builds. In fact, on some occasions, I couldn't even upgrade and had to report back a bug to Paket. But the more significant issue is that I'm not available 24/7 (therefore the focus on stability). I can give other people release-access to make that process faster. But it remains an issue nontheless.
I think it will if you use
Note that Paket code already has a fast-path on the second run, so it should be fine. But you can probably simplify your build process.
Indeed the docs around this could be improved by including this fact. I probably assumed this to be "obvious" considering you can use fake without Paket ;) |
Honestly imho this is not even an issue just tweak your workflow a bit: This way you most likely get even better tested paket versions in the first place.
By the way |
Maybe fake could automatically set the paket version? |
@BlythMeister I don't understand. The issue is that @teo-tsirpanis wants to use the newer version... |
Oh right, I didn't follow right. I thought the issue was just the flip flopping targets file...maybe auto pinning could be another feature request 🤣 |
Ironically I now hit this in FAKE bootstrapping itself and it cost me a while to realize. The bad news is that the runner was so old that whatever fix I had added in the meantime it wouldn't have helped at all. As always: Ideas welcome. The fundamental problem is: Both tools (fake & paket) use the same cache and do the same operations, so they should agree on what the operations are, otherwise subtle errors pop-up independent on whether we write the targets file or not. |
Part of me thinks error, part of me thinks use the exe, part of me thinks don't do paket things as part of fake (unless opted in) |
Or allow a call to fake and opt out. Whenever I call dotnet fake in my builds k always get "restore up to date" |
In the next version of FAKE, you can set |
Closing this again, let's see if this appears again in the future. |
Description
With Paket PR 3585 being merged, I updated my
Paket.Restore.targets
file. However, after I ran FAKE, i saw the file being reverted to its previous edition.Repro steps
Create a folder with FAKE and Paket.
paket restore
.See the
Paket.Restore.targets
.fake build
.See it again.
Expected behavior
Paket.Restore.targets
remains the same, and equal to its latest version.Actual behavior
It gets overwritten by its pre-#3585 edition.
Known workarounds
The developer can exercise care by not commiting the changed file into source control.
However, when using FAKE, the build is performed with the old file, no matter what exists in source control. This makes Paket issues like #3584 or later, still occur.
Related information
Here is my guess for the cause of the bug: each Paket version has a specific version of
Paket.Restore.targets
, and each FAKE version has a specific version of Paket. The former relation is reasonable, given thatPaket.Restore.targets
and Paket are essentially the same product. However, FAKE does not need to be tied to a version of Paket, so that these two projects can evolve independently.The text was updated successfully, but these errors were encountered: