Copilot-Language/copilot

`copilot-theorem`: Extend range of versions `what4` to include 1.6

ivanperez-keera opened this issue · 7 comments

Description

what4 has seen a new release 1.6, but copilot-theorem needs versions strictly lower than 1.6. This version is API-compatible for all features used by copilot-theorem, but it includes support for GHC 9.8, which we want to also support.

Type

  • Management: update versions of dependencies.

Additional context

None.

Requester

  • Ryan Scott.

Method to check presence of bug

Not applicable (not a bug).

Expected result

Copilot can be installed with what4-1.6.

Desired result

Copilot can be installed with what4-1.6.

Proposed solution

Modify copilot-theorem's cabal file to also accept what4 versions >= 1.6 and <1.7.

Adjust copilot-theorem as needed to work with that version of what4.

Further notes

None.

Change Manager: Confirmed that the issue exists.

Technical Lead: Confirmed that the issue should be addressed.

Technical Lead: Issue scheduled for fixing in Copilot 3.20.

Fix assigned to: @ivanperez-keera together with @fdedden .

Implementor: Solution implemented, review requested.

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/271304528

    • The solution proposed produces the expected result. Details:
      The following Dockerfile installs copilot forcing the version of what4 to be 1.6:

      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 \
          && cabal install --lib copilot**/ \
               --constraint="what4>=1.6" \
          && 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=4cf2dce291b7e111f76cba26c89a39d1b197f34a" -it copilot-verify-514
      
  • Implementation is documented. Details:
    No updates needed.
  • Change history is clear.
  • Commit messages are clear.
  • Changelogs are updated.
  • Examples are updated. Details:
    No updates needed.
  • Required version bumps are evaluated. Details:
    Bump not needed (relaxes version constraints).

Change Manager: Implementation ready to be merged.