-
Notifications
You must be signed in to change notification settings - Fork 710
Backport #10650: add ghc 9.12.1 to sdist check list #10865
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
Conversation
@geekosaur could you advise on what this sdist-check job failure mean and how to go about it? https://github.com/haskell/cabal/actions/runs/14106035233/job/39512705909?pr=10865 |
Looks like it's just missing an import (it's exported from |
The more I think about this, the less sense it makes. The sdist check is intended to verify that a newer cabal-install builds with the Cabal that ships with released ghcs. But this is an import issue between cabal-install and cabal-install-solver, and both are provided as sdists because they don't ship with ghc. So any import problem should also show on |
Hm, right, I just checked the |
So what's the recommendation? |
I don't know. Someone higher up the ladder than me needs to decide if an API change in |
Oh, and the above won't make the sdist check succeed since we haven't released an updated |
Mmm, actually I think I could get away with |
That all sounds terribly complicated for a point release. Let's drop the backport in that case, shall we? |
We could drop it, but that would be sweeping the real problem under the rug. |
Oh, why would it? I can't see this problem on master branch? Or, do you mean, we'd get the same problem on 3.16 branch, etc.? |
No, I mean we would release 3.14.2 with an unexpected API change. We should decide what we want to do about that. My current thinking is that |
b4ba79a
to
1c74699
Compare
83ea33a
to
d24f731
Compare
Is there a PR fixing |
Looking more closely (I was in a bit of a rush at the time), it looks like the revbump hasn't landed yet so it's still using the older |
d24f731
to
624cf54
Compare
It just landed, in fact, so I've rebased and will let this go until morning. |
Argh! Apparently the solver is not considering things in the environment file??? I'll look into this tomorrow, it's past midnight here. |
Make a project file instead of environment? |
Sadly, the project file method would cause those versions to be tried first as far as I can tell, which would defeat the purpose. |
For 3.14 branch which ships with it. (cherry picked from commit bddd03f)
624cf54
to
c5c92f7
Compare
It sometimes happens that we have API updates that don't violate PVP (e.g. adding things). In those cases, we need the newer version available and cabal-install's dependencies must be updated to require it instead of the bootlib. We stash these in an environment file, since that's the most convenient way to get them into cabal-install's build environment.
c5c92f7
to
9aef702
Compare
@grayjay, do you know if the solver considers things in GHC environment files, or only from Hackage and other repos? Do I need to set up a local+noindex repo to do this? |
@geekosaur I'm not very familiar with GHC environment files, but I only know of cabal writing them (with |
The confusing thing here is, they should already be in the store; the environment file just exposes them to ghc. Where they aren't is in any declared repo, and I'm worried that the solver only looks at that (see also #10504 (comment)). |
Let me see if I understand the problem. This workflow is meant to check cases where we want to release cabal-install x.y.z where y > 1. We need the solver to both
Is this anywhere close to the rules we want to implement? I feel like I've never understood the spec for this workflow, so I struggle to understand what rules we are trying to implement. The workflow is called "sdist check" but what is our mission actually? Is it that Back to the rules. Can the second rule be implemented with If |
Okay, so the root of the problem So the idea is to try to ensure in CI that The problem we're running into here is that a (valid, apparently) non-API-breaking change is being depended on by I can't use the one from the build tree because if I use a project file to expose it, it will effectively lock us to the version in the build tree (vendoring overrides the solver's choice, by design since that's the whole point of vendoring), which gets us back to the original problem that we can't tell if users who don't have the full build tree will be able to build As far as I can tell, the solver doesn't consider versions already in the store or exposed via |
Copying from Matrix: geekosaur@geekosaur:matrix.org says: re #10865, I need to reimplement it and it should really be done on master and backported. for now I think the way forward for 3.14 is to remove it and its skip job (if that's still there) |
@geekosaur: what "skip job" do you mean? Is it a skipped test? If so, can we just let it be? |
I mean #10870 and its parent, they're part of the docs-only stuff that broke Mergify. |
Oh, I see. IIRC #10870 and it counterpart on master already reverted the "skip job" mechanism, so maybe 3.14 is fine? If not, what remains to be done? |
Again, the sdist check needs to be removed from this branch and my work to rewrite it needs to be continued on |
Right, now I understand what is missing: 9.12.1 support. For 3.14.2, let's leave it as is. If there's any other minor release of 3.14, we can do things properly as part of backporting for the release, then also using your new work on master. |
For 3.14 branch which ships with it.
Template B: This PR does not modify behaviour or interface
E.g. the PR only touches documentation or tests, does refactorings, etc.
Include the following checklist in your PR:
This is an automatic backport of pull request #10650 done by [Mergify](https://mergify.com).