Commit ccc9250
committed
Merge branch 'develop-versions-dependencies'. Close #716.
**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, `ogma-extra` has seen release 1.12, but `copilot-visualizer`
needs versions strictly lower than 1.10.
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.
The following Dockerfile installs all Copilot libraries forcing the
version of what4 and ogma-extra to be the latest major currently
available, after which it prints the message "Success":
```
FROM ubuntu:noble
ENV DEBIAN_FRONTEND=noninteractive
SHELL ["/bin/bash", "-c"]
RUN apt-get update
RUN apt-get install --yes \
build-essential \
curl \
git \
libffi-dev \
libgmp3-dev \
libncurses-dev \
libz-dev \
pkg-config \
wget
RUN mkdir -p $HOME/.ghcup/bin
RUN curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_MINIMAL=1 BOOTSTRAP_HASKELL_NONINTERACTIVE=1 sh
ENV PATH=$PATH:/root/.ghcup/bin/
RUN ghcup install ghc 9.8
RUN ghcup install cabal 3.16
RUN ghcup set ghc 9.8.4
RUN cabal update
ENV PATH=$PATH:/root/.cabal/bin/
CMD git clone $REPO \
&& cd $NAME \
&& git checkout $COMMIT \
&& echo " copilot-verifier/copilot-verifier.cabal" >> cabal.project \
&& echo " copilot-visualizer/copilot-visualizer.cabal" >> cabal.project \
&& cabal install --lib \
copilot/ \
copilot-bluespec/ \
copilot-c99/ \
copilot-core/ \
copilot-prettyprinter/ \
copilot-interpreter/ \
copilot-language/ \
copilot-libraries/ \
copilot-theorem/ \
copilot-verifier/ \
copilot-visualizer/ \
--constraint="ogma-extra>=1.12" \
--constraint="what4>=1.7" \
&& 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-716
```
**Solution implemented**
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.4 files changed
Lines changed: 8 additions & 2 deletions
File tree
- copilot-verifier
- copilot-visualizer
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
1 | 4 | | |
2 | 5 | | |
3 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
| 65 | + | |
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
1 | 4 | | |
2 | 5 | | |
3 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
64 | | - | |
| 64 | + | |
65 | 65 | | |
66 | 66 | | |
67 | 67 | | |
| |||
0 commit comments