Skip to content
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

ci: Version of cabal-install installed by setup-haskell should be specified precisely #10175

Open
mpickering opened this issue Jul 4, 2024 · 1 comment

Comments

@mpickering
Copy link
Collaborator

At the moment the latest version of cabal-install is installed for validate jobs.

       - name: Install primary compiler                                               
         uses: haskell-actions/setup@v2                                          
         id: setup-haskell                                                       
         with:                                                                   
           ghc-version: ${{ env.GHC_FOR_RELEASE }}                               
           cabal-version: latest 

This had the effect of completely breaking CI when the definition of "latest" changed. It would be better to explicitly pin a specific version of cabal-install here and update it in a controlled manner.

See #10172

@ulysses4ever
Copy link
Collaborator

ulysses4ever commented Jul 4, 2024

We went back and forth about it, see #8133 The reason is that we didn't quite understand (I think) the issue with cabal-testsuite's custom setup and in particular the versions of Cabal(-syntax) it requires. After reading your message I realized that the comment in the cabal file:

custom-setup
-- we only depend on even stable releases of lib:Cabal
-- and due to Custom complexity and ConstraintSetupCabalMaxVersion
-- it has to be the latest release version plus
-- you have to use the latest cabal-install release
setup-depends: Cabal == 3.12.*,
Cabal-syntax == 3.12.*,

is not quite precise: it claims that you have to use the latest versions of the library and the latest version of the tool for everything to work, whereas it appears to work with any version provided that it's the same version of the library and the tool. I just confirmed it by checking out master, reverting #10172 and reverting my local cabal-instlall to 3.10.

I used to argue for using latest in CI but after realizing the above, I'd support switching to explicit versioning as you propose. As for updating the version, perhaps the most natural would be to do it as part of the release process. So, whoever pursues it should also update the release wiki to say that after the release of the tool, we should both update the bound in cabal-testsuite custom-setup and update the version of the tool in CI.

geekosaur added a commit to geekosaur/cabal that referenced this issue Aug 8, 2024
geekosaur added a commit to geekosaur/cabal that referenced this issue Aug 8, 2024
geekosaur added a commit to geekosaur/cabal that referenced this issue Aug 8, 2024
geekosaur added a commit to geekosaur/cabal that referenced this issue Aug 8, 2024
geekosaur added a commit to geekosaur/cabal that referenced this issue Aug 8, 2024
geekosaur added a commit to geekosaur/cabal that referenced this issue Aug 8, 2024
mergify bot added a commit that referenced this issue Aug 11, 2024
mergify bot pushed a commit that referenced this issue Aug 30, 2024
(cherry picked from commit 273cb0a)
geekosaur added a commit that referenced this issue Sep 13, 2024
(cherry picked from commit 273cb0a)
mergify bot added a commit that referenced this issue Sep 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants