-
Notifications
You must be signed in to change notification settings - Fork 809
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
Discussion: GHC 7.10.3 and LTS #1029
Comments
After GHC 8 comes out, it would be a shame to freeze the major versions of everything in Stackage for people using GHC 7.10. An alternatively would be to have two nightlies, one targeting GHC 8.0 and one targeting 7.10. To reduce the work, you could imagine a rule that GHC 8.0 must be a superset of packages, and all versions must be the same between the two nightly snapshots. |
How about making a custom snapshot based on LTS-2.22? That's basically what we've done at Silk. We then upgrade it every month. We are also using GHC-7.8 but we also allow new major versions keeping us closer to nightly. Our instructions for bumping the snapshot:
For all packages in the diff that can be upgraded, update the snapshot yaml. Then, in the stack.yaml, change the snapshot name (bump the month, probably) since snapshots shouldn't be changed. I find this process takes very little time, something like an hour a month. |
@bergmark yes, some tooling to decide what to upgrade is still needed, but I just hope that With sufficient tooling around custom snapshots, our private developments could be almost independent of the official Stackage snapshots. Almost, because we'd probably continue to base them on Stackage snapshots, and bump versions of packages in our transitive closure only. But as said, I have no time to do that right now. But would like to help, eventually, if someone else finds this kind of tooling valuable too. |
To answer some various questions:
While we could theoretically continue running old LTS releases, we've never done so, and unless there's strong reason, I doubt we will. I definitely don't want to start running multiple Nightlies simultaneously: we did that in the past, and it created lots of confusion and difficulty for package authors. |
Could you elaborate on the reason for not running multiple Nightlies simultaneously? Were the confusions fundamental, or an issue in the particular policy that time or mindshare at that point? With my |
Personally I'd like to see:
|
There's no meaning to "nightly-2015-12-09" anymore, you have to clarify "the nightly from that date using that GHC version." That was the biggest user-facing confusion. I think the author-facing frustration is well understood. I think if you work through the various trade-offs long enough, you'll end up pretty close to what LTS Haskell provides. |
Yes, you would need to name them ghc-7.10-2015-10-10. Working through the trade offs I arrived at ditch LTS entirely and have only nightly. At the moment there is no GHC 7.8 with the latest version of all packages. That's what I really want for work (for home, I barely care at all - packdeps + Travis sorts it all out). Of course, you have more practice at this than me, so I may just be misguided. |
It sounds like @bergmark is periodically creating the "snapshots" you seek already. Perhaps we should publish these and update stack to accept resolver strings like |
I think it would be good if we could continue updating more than one LTS release (maybe monthly for older releases). I think I agree with Dan that bumping lts for ghc-7.10.3 probably makes sense. In the long term it would be nice to have a Nightly Stackage "ghc matrix" but I agree with Michael that it would be too complicated and too much work for everyone now without more automation. |
It sounds like @bergmark is already doing the GHC 7.8.4 nightly snapshots (at a lower frequency)? Having older nightlies be weekly would be fine, and still very useful. (In fact, having normal nightlies be only weekly would be fine, as long as you managed to spot constraint breakages before then.) |
It would be of little use to share our snapshots as-is since we sometimes hold back package upgrades because we don't feel like updating all our code yet or a combination of packages cause segfaults because one of them is using manually implemented reference counting in C ;-) We've also removed a lot of packages we don't use. How about doing a ~weekly build for 7.8 and upper bounding packages that drop 7.8 support or removing them if they prevent newer versions of other packages? This way stackage curators would not have to report every issue. This is a type of snapshot I could see us using. The tradeoff here is that we would get newer versions of packages but packages could be removed. |
@bergmark yes, I could imagine a new subsection in |
Bump. Now as LTS4 is released, will LTS3 be still updated for some time? |
As I understand it, the tech is in place so that updating LTS 3 is possible. I don't think we're promising any more updates to LTS 3, but it could happen. |
Yup, correct. I'm planning on kicking the tires to ensure it all works, so On Wed, Jan 6, 2016, 9:52 PM Dan Burton notifications@github.com wrote:
|
Motivation: GHC 7.10.3 is just released. GHC 8.0 will soon enter RC cycle as well, if I understood right.
I guess that nightly will try to migrate to 7.10.3 shortly; but I'm more interested in what happens with LTS lines. I remember some comment that multiple LTS majors could be alive simultaneously. I.e. LTS4 will probably based on GHC-8.0.1, but LTS3 will be still updated for some time, won't it, how long? Are there any concrete plan for this?
A bit related, I'd also like to see LTS-2.23 release.
Related stack issue commercialhaskell/stack#1265. It would solve most of our needs, as we could have patched LTS-2.22 for our needs for example. Unfortunately I don't have time this year to even consider working on that myself :(
The text was updated successfully, but these errors were encountered: