-
Notifications
You must be signed in to change notification settings - Fork 698
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
Deprecate new-
prefix
#9109
Comments
@Mikolaj @gbaz @fgaz @andreabedini how does it sound to you? |
As I commented in #9107 (comment), I think splitting the change to one command at the time could be a simpler and quicker approach. AFAIK the big v1-to-v2 change arise from the different behaviour of My drive is not much the user experience (v1 commands can be hidden, and temporarily left to power users who cannot yet find a v2 equivalent (for some generous appropriate definition of temporarily)) but driven by their side effect in the code base. It is difficult for me to figure out which code paths belong to v1, to v2, and which are shared between the two. Perhaps someone with more experience could reorganise things in cabal-install so that the presence of v1 commands does not affect our ability to make changes. |
However, I see no advantage in removing the
If someone can explain me what the hard advantages of removing the |
@andreasabel thanks for opining. I don't think this issue proposes removal, although it mentions removal in passing. Let's discuss just deprecation notices. I understand you're fine with deprecation notices for the new- prefix. How do you feel about having deprecation notices for v2- prefix? Personally, I don't feel strong about it either way, but the prefix looks weird to me given that we're using cabal 3 these days (it made more sense in the era of cabal 2). I think it'd be quite prudent to tell the user that the prefix serves no purpose these days. |
Well this issue is about deprecation in 3.12 and removal in 4.0. I understand Suppose in 10 years there will be another revolution in build philosophy (God beware!) and a need for |
I'd've thought in that case removal of |
Deprecation without a prospect of removal has no teeth. Good remark about the tutorials, though. However, I expect, long before the mythical 4.0 release comes, any cabal tutorial on the web that mentions v2- would be highly suspect of peddling outdated information and worth warning about (via the deprecation message in the I'd rather ask if we are not printing the deprecation messages too early. But I think our changelog since |
Respectfully, I disagree. Deprecation will nudge people in the right direction — to not use the prefixes. This will gradually make most people realize that you don't need them (today many people are still worried that skipping the prefix can be harmful). When we see that it worked, we can open a separate issue about removal. This issue should have been focused on deprecation notices only. I'm surprised that it's debated so much: we all agree (I thought) that local builds is the way to go today by default (there are rare sharp edges that may force you otherwise). So there's no reason to use the cryptic prefixes (I hate Ah,
well, respectfully, it's a silly way to version CLI in my opinion, and therefore I think we should axe it. I'd be very curious to hear about precedents of using this way of versioning CLI. Back from ranting mode, @Mikolaj, I didn't quite get your stance: do you want deprecations or not? |
I'm for deprecation for both |
As I recall, the original plan was never to remove the As it stands, as long as |
That settles it for v2 prefixes then. should we reword the title and OP to mention only “new” prefixes and start working on deprecation notices for then? |
Yes. |
@gbaz wrote:
Good plan! |
Delaying the deprecation warning of v2- until v1- are gone, or at least until they get the deprecation message saying "will likely be deleted in the next major release", is fine by me. Indeed it's silly if v2- gets a warning and v1- is mum. |
I'm in favor of keeping the v2- prefix indefinitely, for both practical and semantic reasons. "cabal install" is really an alias for cabal v2-install in modern cabal and cabal v1-install in old cabal. Keeping prefixes means there's always a canonical label for the behavior a user needs. If at some point there are other versions of some commands then tools that call cabal will be able to specify exactly which version they want. Otherwise they need to keep a table of what-each-command-does-for-which-cabal so they know that "cabal do-xyz" is the right "do-xyz". I don't think this is that crazy considering the v2 transition is taking >3 years. Also, the version 2 commands will forever be known to people talking about them as "the version 2 commands", at least when they want to be specific. Keeping the prefix is in line with that. Guides can be written without telling people to look at tables of commands for their cabal version. If anyone ever begrudges the space in --help they could be listed under a "--show-options" flag instead. To be clear, I think the v2- prefixed commands should be kept but that the non-prefixed commands can be changed. Like a symlink where the binaries are v1-install or v2-install and the link dest is "install". At least that's how I've always thought about it... |
This comment was marked as outdated.
This comment was marked as outdated.
We're going in circles: this issue was never about v1, and it's not about v2 anymore either (check out the new title). Please, express your opinion on deprecation notices for the I'm +1. |
+1 from me |
I think there's no objection to deprecation of the |
We can deprecate And we leave |
Describe the bug
With removal of these prefixes from the documentation about to land (#9090, #9096, #9100), it's time to add deprecation messages on their use. After discussion on Matrix, we're tentatively eyeing 3.12 for addition of the deprecation messages and 4.0 for removal.
The text was updated successfully, but these errors were encountered: