Copilot-Language/copilot

`copilot`: Extend range of versions `optparse-applicative`

ivanperez-keera opened this issue · 6 comments

Description

optparse-applicative has seen a new release 0.18.1.0, but copilot needs versions strictly lower than 1.8. This could prevent copilot from being installed in certain systems or with certain LTSs.

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 optparse-applicative>=0.18.

Desired result

Copilot can be installed with optparse-applicative>=0.18.

Proposed solution

Modify copilot's cabal file to accept optparse-applicative versions >= 0.18 and <0.19.

Adjust copilot as needed to work with that version of optparse-applicative.

Further notes

None.

Change Manager: Confirmed that versions are overly constrained and upper bounds should be relaxed.

Technical Lead: Confirmed that the issue should be addressed.

Technical Lead: Issue scheduled for fixing in Copilot 3.18.

Fix assigned to: @ivanperez-keera.

Implementor: Solution implemented, review requested.

Change Manager: Verified that:

  • Solution is implemented:
    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="optparse-applicative>=0.18" \
        && 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=2f92b7f84e42e15b041f88e54656a4fdfa577072" -it copilot-verify-488
    
  • Implementation is documented. Details:
    No documentation 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 (new versions allowed but not required).

Change Manager: Implementation ready to be merged.