-
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
Make command line GNU-compatible #2429
Conversation
This is great, and I'm looking forward to this discussion. One note: if providing completions for many shells is going to be difficult, it may be more efficient to create bash completions and then use zsh's |
@baronfel Thanks for the suggestion. I'm not sure bash completion is as comprehensive as the zsh completion system (never wrote one, but I've been told zsh is superior to bash). Check some of the videos I created from the WIP here to see what's possible with zsh. |
Isn't this another reason to consider the suggestion of @baronfel? But whatever we decide I'm ok with this change if this means I can get auto completion or least it is easier to implement - as I'm using git bash... (though to be completely honest I like 'paket update group blub' which you haven't touched jet?) |
Actually quite the opposite: As a zsh user I'd like best fidelity I can get. (A much better completion is one of the reasons I prefer zsh over bash.)
The CLI is changing right now and it'll be GNU-compatible which means bash will be able to complete it.
I go through the commands in ascending order now, but I might implement |
FYI, I transferred all commits from my dotfiles repo to this PR. There's also a bash completion skeleton! |
Wow. How much would we break? |
No breaking changes until now! |
So we could do a 5.5 alpha? |
I'd say not yet because there are still 6 or 7 commands that I haven't touched. |
@matthid Just pushed |
I'm done reworking the commands. The commands look a lot more like standard commands now, even if I say so myself. There's some docs left to review (everything that's not a command i.e. not generated from the Looking forward to somebody testing this beyond CI! If a zsh and Paket user reads this, please look no further than here. |
I think I'm done. While reviewing the docs I fixed some links that led to 404s. Some I could not fix, e.g. the GitHub links from here. You can run a local external link check using the new And the docs now have a favicon! |
If Argu releases fsprojects/Argu#84 we're all set. It's just a minor issue, though ( |
* do not report old-style options in help text * issue warnings when old style is used * fail when an option is given in old style and new style at the same time
…le output displays)
e.g. paket generate-load-scripts groups took a list of groups and now needs several --group arguments with one group each
…pt type itself, which is now handled by Argu
If you link like (http://example.com) the link will get an additional ")" at the end and lead to 404s for our users
do we still need argu release? |
The next Argu release will only remove the |
Awesome work! Let's see how it works in alpha! |
Thank you. That means a lot, coming from you. 🎉 |
This is work in progress, hopefully to gather feedback.
I tried to change the command line to remove some nuisances when you're used to deal with other programs that use GNU-style arguments (e.g.
paket add Castle.Windsor --group Main
instead ofpaket add nuget Castle.Windsor group Main
) and align the parameter style (--createnewbindingfiles
->--create-new-binding-files
). The original issue is #1974.On top of that I plan to provide zsh completion for all Paket commands. This is currently tracked in my dotfiles repo and will be updated alongside this PR.
Perhaps anyone experienced writing bash completions will chime in because I believe most people use bash. (e.g. Git for Windows)
All old-style arguments are still supported (e.g. for Ionide), but not advertised in the help text. Users will be warned when using the old style with hints how to resolve.