You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**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, `filepath` has seen releases
in the 1.5.* series, but `copilot` and `copilot-c99` need versions strictly
lower than 1.5. The same is true for `containers`, of which we depend on
versions prior to 0.7 but version 0.7 has been released, and `data-default`, of
which we depend on versions prior to 0.8 but version 0.8.0.0 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**
- Jens Petersen.
**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.
The following Dockerfile checks that Copilot can be installed with the recent
versions of filepath, containers and data-default, as well as GHC (9.10 since
9.12 is not currently available in GHCUP), after which it prints the message
"Success":
```Dockerfile
FROM ubuntu:focal
ENV DEBIAN_FRONTEND=noninteractive
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
RUN apt-get install --yes pkg-config
SHELL ["/bin/bash", "-c"]
RUN ghcup install ghc 9.10
RUN ghcup install cabal 3.2
RUN ghcup set ghc 9.10
RUN cabal update
SHELL ["/bin/bash", "-c"]
CMD git clone $REPO && cd $NAME && git checkout $COMMIT && cd .. \
&& cabal v1-sandbox init \
&& cabal v1-install alex happy --constraint='happy <= 2' \
&& cabal v1-install $NAME/copilot**/ --constraint='filepath>=1.5' --constraint='containers>=0.7' --constraint='data-default>=0.8' \
&& echo "Success"
```
Command (substitute variables based on new path after merge):
```
$ docker run -e "REPO=https://github.com/Copilot-Language/copilot" -e "NAME=copilot" -e "COMMIT=<HASH>" -it copilot-verify-570
```
**Solution implemented**
Bump the version constraints on filepath, containers and data-default to
include the latest versions available on hackage.
**Further notes**
These issues have made Copilot drop out of GHC 9.10 Stackage Nightly. Stackage
is generally useful to get Copilot installed, and specially to facilitate
having packages on Fedora.
0 commit comments