-
-
Notifications
You must be signed in to change notification settings - Fork 10.8k
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 default install location for apps to /Applications #9178
Conversation
Please excuse me if I'm mistaken, but lines 185-186 of USAGE.md state:
Shouldn't |
You are very right. Thank you. Fixed. |
While I am loathe to change the defaults, I am generally swayed by the number of requests. However, let's analyze this a bit first for unexpected effects:
There may be more issues, as I haven't thought deeply. Any change would have to be done carefully. |
This can be remedied by exposing more information about cask installations in the {
"appdir": "~/Applications",
"binarydir": "/usr/local/bin",
...
} |
I disagree, as this recommended change is due to a matter of expectations. Users expect apps to be global ( Inconsistent? Perhaps. Confusing? Quite the contrary. We’ve seen many users (not just in that issue) question the choice of With all the other points I mostly agree — we should take some care to not break things too much. My primary concern was making a decision, whichever it is, and close the issue (we have too many under consideration that we should just pick something). However, I don’t really think issues like orphaned links on uninstall are a problem; especially if we consider most users are indeed already picking I also appreciate all the care we always take with transitions, and we should indeed be careful considering the considerable user-base we have, but we’re admittedly pre-alpha: things are expected to and should break; now is the only time we get to not be shy about that. |
I keep forgetting about this. Most things work very nicely, so it's easy to forget that this project is still in its relative infancy. |
@vitorgalvao beautifully argued as always, and you have me convinced in principle about making an incompatible change. In practice, we are in heavy use. In practice, we also have to respond to issues. There are likely near 100 duplicate reports regarding the recent incompatible change with Homebrew. That bug was fully addressed within a few hours. Every user who upgraded outside that small time window never saw the bug, and never filed an issue. But the appdir change is different: instead of affecting a subset, it will affect every single user going forward. And there is no "notice of incompatible" change when people upgrade at the CLI. Thus it has the potential to generate truly enormous numbers of duplicate issues. And that must be reckoned with, regardless of what version number we assign to ourselves. |
Great discussion here so far. I'm +1 for changing the default, but I'd like to continue to discuss options for smoothing out the transition a bit more before we just decide to do a "damn the torpedoes" merge.
We could special case this with a message printed to users that do not have the appdir explicitly configured (or even just throw in a notice to everybody, billboard style). We'd just have to decide on how to approach the messaging. Besides the details, are we mostly agreed that messaging to the user base for this change is worth pursuing? |
@rolandwalker Well, you do tend to be able to make me take a step back and see what I missed in these major decisions. I do stand by the point that this change (as opposed to the incompatibility one) would be “at worst a minor annoyance”. The former broke the complete experience, while the latter might cause slight confusion (annoyance, perhaps?). The number of users it’ll affect may also be extremely reduced, if we assume most are using However,
This possibility is certainly not something that can be ignored, I agree.
@phinze Yes. Would it be worth considering an abstraction of such a system? Something that we could use in the future when making breaking changes. Could we in theory perhaps take more control over homebrew-cask upgrades, so that upgrading normally from a pre-break version to the new one would be stopped until the user is aware of the modifications? I’m guessing not currently, as long as |
No, that's the problem. The moment that the upgrade happens is out of our control. We'll have to look at the first execution after the upgrade. Messaging is good, and we should do it, but it's not sufficient. Some people will be running the command from a script. Some finesse may be in order. After all, we managed #4688 with very few hitches. The key was to overlap functionality for a while and sweep up afterwards. What about:
Another possibility would be to grab any symlinks that belong to us and re-create them in both locations. Then the user would only need to |
Both options seem acceptable to me. The second one could mean a faster transition, though. I don't understand what |
Sorry: the For this case it would just mean "regenerate the symlinks for my staged Cask". |
As original promoter of the pesky #2534, I am unsurprisingly in favor. However, @rolandwalker is right in recommending to approach sweeping changes with caution (and a beekeeping suit). Perhaps reformed defaults would be best postponed to an official beta release, where users may be more tolerant of incompatible behavior. |
Cross-posting from #2534 (comment):
|
Can we go ahead and merge @vitorgalvao commit? What's the hold up? |
We need a strategy for a smooth transition. |
Any updates on this? |
You linked this issue? |
I linked my previous response to that same question. |
Redundant due to the news on #13201. |
Closes #2534.
Pending agreement.