Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add version bounds to all dependencies in cabal packages. Refs #119. #193

Merged
merged 14 commits into from
Dec 26, 2024

Conversation

ivanperez-keera
Copy link
Member

Add version bounds to all dependencies in the cabal packages, as prescribed in the solution proposed for #119 .

The version bounds are chosen so that Ogma can be installed with GHC 8.4.4, the lowest version supported based on the existing constraints on base, and GHC 9.4.8, the highest version supported (based on constraints to other packages, as well as the specifics of the current implementation).

The cabal packages do not currently specify all version bounds. This
makes hackage complain when we upload packages, and can create stability
/ installation issues for users.

This commit adds lower and upper version bounds for all dependencies.
The cabal packages do not currently specify all version bounds. This
makes hackage complain when we upload packages, and can create stability
/ installation issues for users.

This commit adds lower and upper version bounds for all dependencies.
…asa#119.

The cabal packages do not currently specify all version bounds. This
makes hackage complain when we upload packages, and can create stability
/ installation issues for users.

This commit adds lower and upper version bounds for all dependencies.
…asa#119.

The cabal packages do not currently specify all version bounds. This
makes hackage complain when we upload packages, and can create stability
/ installation issues for users.

This commit adds lower and upper version bounds for all dependencies.
.

The cabal packages do not currently specify all version bounds. This
makes hackage complain when we upload packages, and can create stability
/ installation issues for users.

This commit adds lower and upper version bounds for all dependencies.
The cabal packages do not currently specify all version bounds. This
makes hackage complain when we upload packages, and can create stability
/ installation issues for users.

This commit adds lower and upper version bounds for all dependencies.
The cabal packages do not currently specify all version bounds. This
makes hackage complain when we upload packages, and can create stability
/ installation issues for users.

This commit adds lower and upper version bounds for all dependencies.
@ivanperez-keera ivanperez-keera changed the title Add version bounds to all dependencies in cabal packages Add version bounds to all dependencies in cabal packages. Refs #119. Dec 26, 2024
@ivanperez-keera
Copy link
Member Author

Change Manager: Verified that:

  • Solution is implemented:
     --- Dockerfile-ghc-8.4
     FROM ubuntu:trusty
     
     ENV DEBIAN_FRONTEND=noninteractive
     
     RUN apt-get update
     
     RUN apt-get install --yes software-properties-common
     RUN add-apt-repository ppa:hvr/ghc
     RUN apt-get update
     
     RUN apt-get install --yes ghc-8.4.4 cabal-install-2.4
     RUN apt-get install --yes libz-dev
     
     ENV PATH=/opt/ghc/8.4.4/bin:/opt/cabal/2.4/bin:$PWD/.cabal-sandbox/bin:$PATH
     
     RUN cabal update
     RUN cabal v1-sandbox init
     RUN cabal v1-install alex happy
     RUN apt-get install --yes git
     
     CMD git clone $REPO \
         && cd $NAME \
         && git checkout $COMMIT \
         && cd .. \
         && cabal v1-sandbox init \
         && cabal v1-install $NAME/$PAT**/ --constraint="aeson>=2.0.3.0" --enable-tests \
         && echo "Success"
    
     --- Dockerfile-ghc-9.4
     FROM ubuntu:focal
     
     RUN apt-get update
     
     RUN apt-get install --yes libz-dev
     RUN apt-get install --yes git
     
     # RUN curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
     RUN apt-get install --yes wget
     RUN mkdir -p $HOME/.ghcup/bin
     RUN wget https://downloads.haskell.org/~ghcup/0.1.17.7/x86_64-linux-ghcup-0.1.17.7 -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 ghcup install ghc 9.4
     RUN ghcup install cabal 3.2
     RUN ghcup set ghc 9.4.8
     RUN cabal update
     
     SHELL ["/bin/bash", "-c"]
     CMD git clone $REPO \
         && cd $NAME \
         && git checkout $COMMIT \
         && export PATH=$PATH:$PWD/.cabal-sandbox/bin/ \
         && cabal v1-sandbox init \
         && cabal v1-install alex happy --constraint="happy<2.0" \
         && cabal v1-install BNFC ogma-**/ --constraint="aeson>=2.0.3.0" \
         && cabal v1-install ogma-**/ --constraint="aeson>=2.0.3.0" --enable-tests \
         && echo "Success"
    Command (substitute variables based on new path after merge):
    $ docker run -e "REPO=https://github.com/ivanperez-keera/ogma" -e "NAME=ogma" -e "PAT=ogma"  -e "COMMIT=cc38a221e10bf85edde7b54b24720cb048aa8db9" -it ogma-verify-119-ghc-8.4
    $ docker run -e "REPO=https://github.com/ivanperez-keera/ogma" -e "NAME=ogma" -e "PAT=ogma"  -e "COMMIT=cc38a221e10bf85edde7b54b24720cb048aa8db9" -it ogma-verify-119-ghc-9.4
    
  • 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:
    No bump needed; although we are restricting versions of dependencies, the way they are set simply captures the current compatibility of Ogma with other libraries and does not restrict it further.

@ivanperez-keera ivanperez-keera merged commit 089ed5a into nasa:develop Dec 26, 2024
2 checks passed
@ivanperez-keera ivanperez-keera deleted the develop-version-bounds branch December 26, 2024 20:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant