-
Notifications
You must be signed in to change notification settings - Fork 699
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
RFC: Rename dist-newstyle/
#5731
Comments
+1 for |
I'm strongly against anything without Somehow
|
How about |
Personally I prefer |
I prefer If breaking is acceptable, I prefer |
|
btw, why is that a problem? what scenario are you worried about? |
Someone running |
I see... btw, that can already cause problems if you configure Even if we don't go for btw, we could also go for a folder |
Yeah, but most people stick to defaults. Agreed that more sanity checking is never bad. |
I would like to add couple thoughts to the discussion. I don't think that having different names for Linux and Windows is a good idea. This will make harder for people to help beginners, because you can't just tell look at this P.S. Sorry, fat-fingered |
Just wanted to chime in to voice my opinion. I don't think adding a platform specific prefix makes any sense, as I don't think that increase the user experience. Good tools do not rely on platform specific prefixes but rather read Based on that, I would prefer if we remain backward compatible as pointed out by @fommil. If for a change, I vote for |
We should really come to an agreement soon regarding which default to pick for the foldername; given it's merely a default name picked in case the user didn't set anything else in their ~/.cabal.config, it shouldn't matter much (and I really hope tooling won't make the bad assumption the folder to be always named So it seems to me like sticking with the (in my opinion) misnamed ...but there's also a new interesting suggestion to use the folder name So I propose to start voting on concrete choices; I'll create a couple comments with concrete suggestions to vote upon via emoji up/down votes; if you don't agree with the choices, feel free to add your own concrete suggestion following the same format. PS: There's one minor flaw with |
VOTE: |
VOTE: |
VOTE: |
It's funny I just happened to come across this discussion right after watching Lukas Eder's talk on API design mistakes - https://youtu.be/NJpQVIZhIYk?t=1236
The addition of |
I'm closing this as wont do. Changing the directory at this point will make a lot of people not following |
:-( |
@23Skidoo not for |
Sure, it can wait until 3.2. |
If you care about this change affecting people who don't carefully follow Cabal development, you can announce it in advance on Reddit, Twitter, Discourse, Discord, Facebook and other Haskell sub-communities. With this approach, everyone will be aware of this breaking change. And you can even get more feedback. |
I agree. |
On macOS, if this must be located in |
Another argument for keeping the current name is that probably thousands of I follow @phadej 's suggestion and close this because I really think the ship has sailed on that one. |
In short: do not rename.
|
I agree with closing. A change would be a disruption with no benefit. |
😢 Since it's purely aesthetic, I'll reluctantly concede. To be honest, it always seemed too late once 3.0 was out (or maybe even earlier - IIRC |
and there is a small advantage: it is more probable to not reach the windows path limit |
It could be called anything, but if it's going to be in |
@orome: Isn't there a misunderstanding? The discussion here is not about |
That's where I see it. If it were under |
Except then you've got package build data bleeding into the home user space and it severely overcomplicates things, because you also need a project directory indexing convention and it mixes concerns with other install/caching objects. I'd be extremely opposed to that. |
@emilypi Not sure what you mean. Should I be seeing it under |
@orome: I'm not sure what you're referring to at this point. You need to clarify what you mean by "seeing it". What's "it"? |
@emilypi I'm not so sure myself. All I know is that it appears when I run |
@orome: The problem you describe is discussed there: Here it is only about the naming of |
Aha! Glad we dug down into your issue @orome. |
I’ve been seeing the naming An argument that has been brought forward several times is more or less that a change of this name would cause too much effort for thousands of packages for a purely cosmetic change. I don’t really share this argument, for two reasons:
So I still see a change in naming of said directory worth considering. For the time being, I’ll at least create my own little corner of beauty on my laptop with a wrapper script that invokes |
Note that renaming @jeltsch wrote:
So you would impose this busy-work on all these projects and developers for the sake of removing a wart that violates your sense of aesthetics?
I think this is the way to go until a majority does so as well, and then this majority can collect the funds to pay for the cosmetic surgery. Sorry to put it so bluntly. |
In my previous comment, I argued precisely why this is not just a cosmetic issue and also why this is not just a personal issue of mine (there are objective reasons against the name
Feel free to react bluntly, but please read carefully the message you react to. 🙂 |
IMHO, there are great many places and efforts that works benefit the community far more than this (IMHO, misguided) suggestion. I'm strongly against it. Besides, I don't see how a change on a project would be cheaper if it impacts/hurts not a few but many - e.g., if you break a leg, would you feel any less pain if you knew that 10000 of other developers suffered the same? Finally, yes - I agree: it would be good for everybody to read carefully what they're responding to. That includes the author of the previous comment. |
NB: I want to emphasize, this is about the default folder name which the user can always override in their
~/.cabal/config
, (in future) viacabal.project
, or via CLI; tooling must not assume the folder to be named in a certain way unless it either a) forces a specific folder name or b) infers the currently active name (ideally by queryingcabal
)When
cabal new-build
premiered in cabal 1.24, the provisional namedist-newstyle/
for the new-build specificdist/
folder (i.e. the default--builddir
) was chosen in order to reduce the likelihood of old-build / new-build stepping on each others toes when mixing the command families.However, now the time has come (since cabal 3.0 will be disruptive anyway by changing what
cabal build
means in the UI -- NB: #5800 switch defaults to v2 got merged tomaster
already!) to rename thedist-newstyle
to its final name;Ideally the name should be reasonably short (to reduce risk of PATH_MAX issues as well make the output less noisy) and it should be a name that is reasonably unlikely to clash with filenames users would want to place into their cabal package folders.
So here's some ideas to start the bikeshedding:
dist/
dist.v2/
(ordist-v2/
orv2-dist/
)builddir/
dist/v2
(suggested in RFC: Renamedist-newstyle/
#5731 (comment))Prefixing with a
.
would reduce the likelihood of clashes as well as get them out of sight for unix shell users:.dist/
.build/
.builddir/
.cabal/
For Windows, the above could instead use
_
s (this scheme is somewhat popular in the Python ecosystem iirc):_dist/
_build/
_builddir/
_cabal/
PS: Additional things to consider:
.gitignore
sdist
might be considered a misnomer asdist/
isn't so much about generating artifacts for distribution but it's really more about being a build dir (NB: it can be controlled by the--builddir
flag! There is no--distdir
flag) where cabal stores its caches and compile output (and also sdists); it's not clear whydist/
was chosen as the default builddir originally many years agocabal v2-sdist all
currently places its files intodist-newstyle/sdist/*.tar.gz
--builddir
folder needs to take into account that the default builddir can be tweaked via~/.cabal/config
and so either needs to query the current default builddir (we might need acabal path ...
command or something) or if it invokescabal
set it explicitly via--builddir
The text was updated successfully, but these errors were encountered: