-
Notifications
You must be signed in to change notification settings - Fork 520
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
Bootstrapper magic mode enhancements #1983
Conversation
I really like the idea of specifying a needed paket version in the deps file. That is a very often requested feature (IIRC we already have an issue for that but I can't find it). But I don't think we should make that a "comment". It's too important. How about this:
or something like that. It would also be interesting to specify version ranges for paket. Someting like |
It'd be great if the version statement would be optional to always get latest (within |
yes it needs to be optional - also for backwards compat |
Using a normal line instead of a comment is conceptually easy and will look cleaner but I need to test compatibility of paket parser itself. I'll add that if it works well. Ranges are possible but we'll start to duplicate some of the version check logic of paket itself in the bootstrapper. Maybe for a later PR ? 🦊 |
Absolutely. We don't need that now. Pinning a paket version is already awesome |
Also merge DirectoryProxy and FileProxy to add path methods. The new proxy is named a FileSystemProxy.
The bootstrapper in magic mode can now take it's arguments from a special line in 'paket.dependencies' the syntax is: # bootstrapper: <arguments>
It's now possible to do that with the magic mode and as disussed in fsprojects#1961 the targets file should support it
The boostrapper configuration line in paket.depdendencies now look like a normal directive instead of being a comment. Paket parser needed a little change to skip such lines instead of complaining.
ad905b4
to
82dc23c
Compare
New version with the syntax suggested by @forki :
|
Sorry if I didn't get it, but is --prefer-nuget passed in verbatim passed to the bootstrapping that then is paket.exe? Alexhttp://therightstuff.de/ On Oct 27, 2016, 22:16, at 22:16, Julien Roncaglia [email protected] wrote:
|
@agross The feature is actually completely independent of the "magic" mode where paket.exe is actually the bootstrapper. It's very useful in this mode but could have existed independently of it and would work without it. What happens is :
Where it really shine is when you combine this, the
|
Hm, if Say for example paket.bootstrapper.exe v2017 supports
|
It's not always enabled, what's after
Yes, see the code of The only real complexity is in correctly splitting the arguments into a |
@vbfox Alright, now I got it. Thanks! |
http://fsprojects.github.io/Paket/dependencies-file.html#Required-Paket-version this OK? Will announce it soon |
Yes 👍 The text could be a little clearer in specifying that the version can be the special "prerelease" string but maybe we don't want to incite users to always get prereleases 😁 |
please send PRs to make the docs graet again 2016-10-28 15:07 GMT 02:00 Julien Roncaglia [email protected]:
|
Quite a few changes to the boostrapper, mainly related to magic mode :
Add tests around the fact that
MaxFileAgeInMinutes
shouldn't be auto set in magic mode when a version or prerelease is specified.Clean the argument parser code and clearly show in what order we apply our different sources of options
Add a new source of bootstrapper options (Magic mode or not, but especially useful in magic mode) : The
paket.dependencies
file. The first comment starting with regex(#|//)(\s*)bootstrapper(\s*):
( is taken into account for that :The new order of option sources is : AppSettings, paket.dependencies, Environment variables, Command line (Processing order in code so, from less to more important. If something is on the command line it'll override any other source for example)
There is a new variant of "silent" mode that displays only errors. It can't be triggered from command line but the magic bootstrapper uses it (Otherwise it display nothing in case of error and that's confusing)
Known nuget download errors are now displayed with a better explanation
MSBuild targets file can now work with a
paket.exe
(Most often the bootstrapper in magic mode) at the root instead of in .paketThe directory / file proxy have been merged into a filesystem proxy and this proxy gained a few methods for better magic mode tests.