Skip to content

Extend range of versions of dependencies #603

Closed

Description

@ivanperez-keera

Description

In order to keep Copilot effectively working in the current Haskell ecosystem, as well as new versions of GHC, we need to extend the versions of dependencies that Copilot can be installed with. For example, containers has seen release 0.8, but copilot-language, copilot-libraries and copilot-theorem need versions strictly lower than 0.8. The same is true for random, of which we depend on versions prior to 1.3 but version 1.3 has been released.

For those libraries that have introduced no breaking changes affecting Copilot, we should extend the version bounds.

Type

  • Management: update versions of dependencies.

Additional context

None.

Requester

  • Ivan Perez.

Method to check presence of bug

Not applicable (not a bug).

Expected result

Copilot can be installed with the most recent version of all dependencies published on hackage that do not require a change to the Haskell code.

Desired result

Copilot can be installed with the most recent version of all dependencies published on hackage that do not require a change to the Haskell code.

Proposed solution

Copilot can be installed with the most recent version of all dependencies published on hackage that do not require a change to the Haskell code.

Further notes

None.

Activity

  1. added
    CR:Status:InitiatedAdmin only: Change request that has been initiated
    CR:Type:ManagementAdmin only: Change request for conformance with policies or procedures
    on Mar 7, 2025
  2. ivanperez-keera commented on Mar 7, 2025

    @ivanperez-keera
    MemberAuthor

    Change Manager: Confirmed that the issue exists.

  3. added
    CR:Status:ConfirmedAdmin only: Change request that has been acknowledged by the change manager
    and removed
    CR:Status:InitiatedAdmin only: Change request that has been initiated
    on Mar 7, 2025
  4. ivanperez-keera commented on Mar 7, 2025

    @ivanperez-keera
    MemberAuthor

    Technical Lead: Confirmed that the issue should be addressed.

  5. added
    CR:Status:AcceptedAdmin only: Change request accepted by technical lead
    and removed
    CR:Status:ConfirmedAdmin only: Change request that has been acknowledged by the change manager
    on Mar 7, 2025
  6. juhp commented on Jul 20, 2025

    @juhp

    Copying this here from current Stackage Nightly build-constraints (we just moved to ghc-9.12):

    • copilot < 0 # tried copilot-4.5, but its library requires optparse-applicative >=0.14 && < 0.19 and the snapshot contains optparse-applicative-0.19.0.0
    • copilot-language < 0 # tried copilot-language-4.5, but its library requires the disabled package: copilot-theorem
    • copilot-libraries < 0 # tried copilot-libraries-4.5, but its library requires the disabled package: copilot-language
    • copilot-theorem < 0 # tried copilot-theorem-4.5, but its library requires random >=1.1 && < 1.3 and the snapshot contains random-1.3.1
  7. ivanperez-keera commented on Jan 8, 2026

    @ivanperez-keera
    MemberAuthor

    Technical Lead: Issue scheduled for fixing in Copilot 4.6.1.

    Fix assigned to: @ivanperez-keera .

    EDIT (2026-01-08): Modified to adjust the actual version of Copilot after release.

  8. added
    CR:Status:ScheduledAdmin only: Change requested scheduled
    and removed
    CR:Status:AcceptedAdmin only: Change request accepted by technical lead
    on Jan 8, 2026
  9. added this to the 4.7 milestone on Jan 8, 2026
  10. 4 remaining items

  11. ivanperez-keera commented on Jan 8, 2026

    @ivanperez-keera
    MemberAuthor

    Implementor: Solution implemented, review requested.

  12. added
    CR:Status:VerificationAdmin only: Change request that is currently being verified
    and removed
    CR:Status:ImplementationAdmin only: Change request that is currently being implemented
    on Jan 8, 2026
  13. ivanperez-keera commented on Jan 8, 2026

    @ivanperez-keera
    MemberAuthor

    Change Manager: Verified that:

    • Solution is implemented:
      • The code proposed compiles and passes all tests. Details:
        Build log: https://app.travis-ci.com/github/Copilot-Language/copilot/builds/277192917
      • The solution proposed produces the expected result. Details:
        The following Dockerfile installs copilot forcing the version of random and optparse-applicative to be the latest major currently available, after which it prints the message "Success". We cannot check that Copilot can be installed iwth the latest major release of containers due to it being included with the compiler and causing issues when one attempts to constraint the version of containers during installation.
        FROM ubuntu:focal
        
        RUN apt-get update
        
        RUN apt-get install --yes libz-dev
        RUN apt-get install --yes git
        
        RUN apt-get install --yes wget
        RUN mkdir -p $HOME/.ghcup/bin
        RUN wget https://downloads.haskell.org/~ghcup/0.1.19.2/x86_64-linux-ghcup-0.1.19.2 -O $HOME/.ghcup/bin/ghcup
        
        RUN chmod a+x $HOME/.ghcup/bin/ghcup
        ENV PATH=$PATH:/root/.ghcup/bin/
        ENV PATH=$PATH:/root/.cabal/bin/
        RUN apt-get install --yes curl
        RUN apt-get install --yes gcc g++ make libgmp3-dev
        
        SHELL ["/bin/bash", "-c"]
        
        RUN ghcup install ghc 9.4
        RUN ghcup install cabal 3.8
        RUN ghcup set ghc 9.4.8
        RUN cabal update
        
        CMD git clone $REPO \
            && cd $NAME \
            && git checkout $COMMIT \
            && echo "  copilot-verifier/copilot-verifier.cabal" >> cabal.project \
            && cabal install --lib \
                    copilot/ \
                    copilot-bluespec/ \
                    copilot-c99/ \
                    copilot-core/ \
                    copilot-prettyprinter/ \
                    copilot-interpreter/ \
                    copilot-language/ \
                    copilot-libraries/ \
                    copilot-theorem/ \
                 --constraint="optparse-applicative>=0.19" \
                 --constraint="random>=1.3.1" \
            && echo Success
        Command (substitute variables based on new path after merge):
        $ docker run -e REPO=https://github.com/ivanperez-keera/copilot -e NAME=copilot -e COMMIT=c24a34c88cb1dbaf619ee533717aceaff591f732  copilot-verify-603
        
    • Implementation is documented. Details:
      No updates needed; change is to the dependencies.
    • Change history is clear.
    • Commit messages are clear.
    • Changelogs are updated.
    • Examples are updated. Details:
      No updates needed; change is to the dependencies.
    • Author is internal or has provided signed CLA.
    • Required version bumps are evaluated. Details:
      Bump not needed; relaxes version constraints but does not affect Copilot's public API.
  14. ivanperez-keera commented on Jan 8, 2026

    @ivanperez-keera
    MemberAuthor

    Change Manager: Implementation ready to be merged.

  15. added
    CR:Status:ClosedAdmin only: Change request that has been completed
    and removed
    CR:Status:VerificationAdmin only: Change request that is currently being verified
    on Jan 8, 2026
  16. added a commit that references this issue on Jan 8, 2026
    1b6ff90
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

CR:Status:ClosedAdmin only: Change request that has been completedCR:Type:ManagementAdmin only: Change request for conformance with policies or procedures

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions