-
-
Notifications
You must be signed in to change notification settings - Fork 367
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
Current and future status of project stack.yaml's #2533
Comments
I vote for either 1 or 2. Some of the Pros are a bit thin:
The only valid Pro imho is "Sending a message". Perhaps we should ask the current regular contributors who cares about this message, otherwise it seems unfair to impose this overhead on them. Also, I suspect that none of the current contributors use Stack. So the last Contra applies basically to all of us. not just some. |
would you contribute to a project which asks you to use only stack? stack is more used between beginners and intermmediate haskellers, its defaults and automanage of ghc and msys2 are more appealing for them. I am using mostly cabal nowadays but i still remember when i started to program in haskell using stack (cabal has improved since that). You had to learn a language with a high learning curve and fight oddities of two build tools. Even for more experienced developers having to learn how to use a new build tool can be hard, and i think it could push away from contribute to the project. And contributions are being increasingly rare in the open source world so i think we have to carefully consider the balance of what we are asking for, and what we offer. Otoh, it seems to me than maintaining stack.yaml's is no so hard. Most of times you forgot to update it when adding a dependency, circleci complains about and it is matter to add one or two lines in all files. Boring but easy. You dont have to worry about until the main work done is done (like hlint)
Dont see why an advanced user can't use and know about only one of both tools. Maybe the time saved from learn and fight bugs of one of them gave them more time to learn haskell :-P
@Ailrun was using stack and also some of contributors. @simonmichael if i am not wrong and and some more that I don't remember |
I definitely would. If I want to contribute to a project, the build system is no obstacle.
I'm not arguing against beginners, don't turn this around please. I am saying that asking them to use
I don't understand this point, but let's avoid turning this into a flame war.
Completely disagree. It's time consuming, there's just no good way to do it, feels wrong to have to do this by hand when there is an automated solution, requires extra CI, and quite frankly I doubt that anyone uses them. On that last point, I wonder if there is any way to obtain usage data. |
Just as input for sake of discussion, I use That being said I frequently swap between the two build systems for no particular reason. I think they are near identical in their user experience and forcing one option (in my opinion) shouldn't require extra effort from the developer. Also to reiterate what @pepeiborra said, I don't think using a different build tool will ever turn away a developer. If HLS required one or the other I would willingly switch to that tool. I also don't see a problem with maintaining at least one |
I'm still using stack, for both contribution and installation. Actually, I almost never use Cabal directly unless I'm forced to do so for some reasons. Surely, when the cons definitely outweigh the pros, and we decide to remove
I agree with this to some degree, but as @jneira said, it makes the process much easier and gives more motivations to the advanced users to try some contribution. Though this is definitely not a strong argument, as you already criticized. |
Among the main suggestions, 4 is maybe a good alternative, at least for me. The issues are often about the latest minor versions, and most of my projects are developed in those, so I found myself often install only the latest minor version for some major versions. If this is common for other maintainers/contributors, I think it is reasonable to remove other |
@Ailrun can you clarify why one single Also, would you still contribute to HLS if you were asked to migrate to |
Package versions for each stack.yaml is fixed, so if there is only one stack.yaml, then, for example, it would be quite tedious to make it work with for GHC 8.6.5 and GHC 9.0.1 from that one stack.yaml (and I'll eventually create two stack.yaml at least locally, which will make the package lists quickly out-of-sync). If I'm the only one with Stack, then sure, it's maybe better to deal with it from my side, but @jneira mentioned at least one other contributor (@simonmichael ), and there might be some other (possibly infrequent) contributors.
But, yes, as I said, I just want to avoid the situation if possible, but even if it is unavoidable, I'm still willing to contribute to HLS. |
Oh, while I wrote the above comment, I've come up with one another "alternative":
|
Sorry i did not want to mean you personally were arguing against beginners (i tried to make my sentences abstract and impersonal but still). Only wanted to stress my point: stack is more used by beginners/intermmediate haskellers and making easier hack with stack on hls will make more probable their possible contributions/became advanced users.
So there are maitainers using stack (maybe some others not participating here). |
Removing all but one NB: Simon Marlow is definitely not an HLS contributor. I don't even think he uses HLS currently (or any of the derivatives that we have at Meta). I think you are referring to @simonmichael |
ouch, thanks for noting it, will correct mentions |
If you dont mind i would wait some time to see we get more feedback. |
Interesting how would that differ from |
In that option, we may need more than one "nightly" versions; For example, if we add the support for GHC 9.2.1, we need at least three (LTS, 9.0.1, 9.2.1) IMO. |
ok, after some time to let users give their feedback I think it is time to try to reach a compromise: I think an intermediate alternative could be keep at minimum two stack.yaml: one for last lts and other for nightly, which will be updated periodically by contributors interested in keep it up-to-date. The actual install script depends on stack.yaml so I would ask to make the removal follow the install script deprecation plan outlined in #2491 |
thoughts about the previous comment @pepeiborra @wz1000 @Ailrun @drsooch?
|
Can you clarify what the last part means? I assume you are suggesting dropping the Circle CI, otherwise I don't see how updating the stack descriptors would be optional. |
I mean update the snapshot date in the |
Keeping only 2 or 3 Stack descriptors sounds like a welcome improvement to me. |
That plan sounds reasonable to me. |
Great, thanks all! i think we can start to do it then |
) * Review project stack descriptors according to haskell#2533 * adjust shake-bench cabal descriptor to work with gen-hie * Fix shake-bench to build with aeson 2.x * track also LTS 16
) * Review project stack descriptors according to haskell#2533 * adjust shake-bench cabal descriptor to work with gen-hie * Fix shake-bench to build with aeson 2.x * track also LTS 16
To reflect some recent discussions in the irc channel and get more broad feedback
Actually we have a stack.yaml for each supported ghc
Keeping them up-to-date needs some effort, most times mechanical and boring but sometimes tricky
The install script uses those stack.yaml's to define the list of supported/available ghcs to install hls, even if the script uses cabal underneath
Pros:
ghcup compile hls
only allow using cabal for the buildstack init
does not work for hls.Contras
Alternatives:
Keeping some of the stack.yamls makes pros and contras only vary quantitatively.
Personally i am for 4 or 5.
The text was updated successfully, but these errors were encountered: