diff --git a/.devcontainer/VERSION_MATRIX.md b/.devcontainer/VERSION_MATRIX.md index afe16124f595a2e6fe0fa648ff3603515c91e4d7..31d959030d49de216ff374f83655861566b7f04e 100644 --- a/.devcontainer/VERSION_MATRIX.md +++ b/.devcontainer/VERSION_MATRIX.md @@ -4,7 +4,8 @@ | GHC | Cabal[^1] | Stack[^1] | HLS | |:----------------------------|:----------|:------------|:--------------------------------------------------- | -| latest<br>9.6.3<br>9.6<br>9 | 3.10.1.0 | ≥ 2.13.1 | latest<br>2.4.0.0<br>2.3.0.0<br>2.2.0.0 | +| latest<br>9.8.1<br>9.8<br>9 | 3.10.1.0 | ≥ 2.13.1 | latest<br>2.4.0.0 | +| 9.6.3<br>9.6 | 3.10.1.0 | ≥ 2.13.1 | 2.4.0.0<br>2.3.0.0<br>2.2.0.0 | | 9.4.7<br>9.4 | 3.8.1.0 | ≥ 2.13.1 | 2.4.0.0<br>2.3.0.0<br>2.2.0.0<br>2.1.0.0<br>2.0.0.1 | | 9.2.8<br>9.2 | 3.6.2.0 | ≥ 2.13.1 | 2.4.0.0<br>2.3.0.0<br>2.2.0.0<br>2.1.0.0<br>2.0.0.1 | diff --git a/.devcontainer/ghc-9.6/devcontainer.json b/.devcontainer/ghc-9.6/devcontainer.json index 8b52c0205ae18b047629f0680ac1173982fda9be..72502bb2867a667104149d45e56cbfc3ed15cdb5 100644 --- a/.devcontainer/ghc-9.6/devcontainer.json +++ b/.devcontainer/ghc-9.6/devcontainer.json @@ -1,5 +1,5 @@ { - "name": "GHC 9.6 (latest)", + "name": "GHC 9.6", "build": { "dockerfile": "../GHC.Dockerfile", "context": "..", diff --git a/.devcontainer/ghc-9.8/devcontainer.json b/.devcontainer/ghc-9.8/devcontainer.json new file mode 100644 index 0000000000000000000000000000000000000000..8db24a9834aa70c8b2ac296b8dce8253719031c5 --- /dev/null +++ b/.devcontainer/ghc-9.8/devcontainer.json @@ -0,0 +1,72 @@ +{ + "name": "GHC 9.8 (latest)", + "build": { + "dockerfile": "../GHC.Dockerfile", + "context": "..", + "args": { + "GHC_VERSION": "9.8", + "HLS_VERSION": "2.4.0.0", + "USE_ZSH_FOR_ROOT": "unset-to-use-ash", + "SET_LANG": "C.UTF-8", + "SET_TZ": "" + } + }, + + "onCreateCommand": "onCreateCommand.sh", + "postCreateCommand": "cabal update", + "postAttachCommand": "${HOME}/.local/bin/checkForUpdates.sh", + + "features": { + "ghcr.io/devcontainers/features/common-utils:2": { + "configureZshAsDefaultShell": true, + "upgradePackages": false, + "username": "vscode", + "userUid": "automatic", + "userGid": "automatic" + } + }, + + "customizations": { + "vscode": { + "extensions": [ + "alefragnani.project-manager", + "christian-kohler.path-intellisense", + "eamodio.gitlens@11.7.0", + "editorconfig.editorconfig", + "exiasr.hadolint", + "GitHub.vscode-pull-request-github", + "GitLab.gitlab-workflow", + "haskell.haskell", + "mhutchie.git-graph", + "ms-vscode.makefile-tools", + "mutantdino.resourcemonitor", + "piotrpalarz.vscode-gitignore-generator", + "timonwong.shellcheck" + ], + "settings": { + "gitlab.aiAssistedCodeSuggestions.enabled": false, + "gitlens.showWelcomeOnInstall": false, + "gitlens.showWhatsNewAfterUpgrades": false, + "haskell.manageHLS": "PATH", + "resmon.show.battery": false, + "resmon.show.cpufreq": false + } + } + }, + + // Set 'remoteUser' to 'root' to connect as root instead. + "remoteUser": "vscode", + "workspaceMount": "source=ghc-musl-ghc-9.8-home-vscode,target=/home/vscode,type=volume", + // "workspaceMount": "source=${localWorkspaceFolder}/.devcontainer/bind-mounts/ghc-musl-ghc-9.8-home-vscode,target=/home/vscode,type=bind", + "workspaceFolder": "/home/vscode", + + // "remoteUser": "root", + // "workspaceMount": "source=ghc-musl-ghc-9.8-root,target=/root,type=volume", + // // "workspaceMount": "source=${localWorkspaceFolder}/.devcontainer/bind-mounts/ghc-musl-ghc-9.8-root,target=/root,type=bind", + // "workspaceFolder": "/root", + + // Pip: Install packages to the user site + "remoteEnv": { + "PIP_USER": "1" + } +} diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c8fdf686b2438c058bd14065954f61e9d348c6a0..c910e5b00e2d9d9de6a626698d6637bb8d624927 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,6 @@ .env: variables: - GHC_VERSION: "9.6.3" + GHC_VERSION: "9.8.1" CABAL_VERSION: "3.10.1.0" STACK_VERSION: "2.13.1" HLS_VERSION: "2.4.0.0" @@ -223,13 +223,6 @@ build-manifest:version-linux-multiarch: $CI_APP_REPO:$CI_APP_TAG-linux-arm64v8 fi docker manifest push $CI_APP_REPO:$CI_APP_TAG - - | - docker manifest create $CI_APP_REPO:$VERSION_MAJ_MIN $CI_MANIFEST_LIST - if echo $OS_ARCH | grep "linux-arm64v8" >/dev/null ; then - docker manifest annotate --variant v8 $CI_APP_REPO:$VERSION_MAJ_MIN \ - $CI_APP_REPO:$CI_APP_TAG-linux-arm64v8 - fi - docker manifest push $CI_APP_REPO:$VERSION_MAJ_MIN rules: - if: $BUILD_GHC == "true" && $CI_COMMIT_BRANCH == "freeze-version" changes: @@ -380,13 +373,6 @@ build-package-hls-manifest:version-linux-multiarch: $CI_APP_REPO/$CI_APP_TAG/hls:$HLS_VERSION-linux-arm64v8 fi docker manifest push $CI_APP_REPO/$CI_APP_TAG/hls:$HLS_VERSION - - | - docker manifest create $CI_APP_REPO/$VERSION_MAJ_MIN/hls:$HLS_VERSION $CI_MANIFEST_LIST - if echo $OS_ARCH | grep "linux-arm64v8" >/dev/null ; then - docker manifest annotate --variant v8 $CI_APP_REPO/$VERSION_MAJ_MIN/hls:$HLS_VERSION \ - $CI_APP_REPO/$CI_APP_TAG/hls:$HLS_VERSION-linux-arm64v8 - fi - docker manifest push $CI_APP_REPO/$VERSION_MAJ_MIN/hls:$HLS_VERSION rules: - if: $BUILD_HLS == "true" && $CI_COMMIT_BRANCH == "freeze-version" changes: @@ -526,12 +512,5 @@ update-manifest:version-linux-multiarch: $CI_APP_REPO:$CI_APP_TAG-linux-arm64v8 fi docker manifest push $CI_APP_REPO:$CI_APP_TAG - - | - docker manifest create $CI_APP_REPO:$VERSION_MAJ_MIN $CI_MANIFEST_LIST - if echo $OS_ARCH | grep "linux-arm64v8" >/dev/null ; then - docker manifest annotate --variant v8 $CI_APP_REPO:$VERSION_MAJ_MIN \ - $CI_APP_REPO:$CI_APP_TAG-linux-arm64v8 - fi - docker manifest push $CI_APP_REPO:$VERSION_MAJ_MIN rules: - if: $UPDATE_STACK == "true" && $CI_COMMIT_BRANCH == "freeze-version" diff --git a/README.md b/README.md index f95f047d74eae4039d7db8135059edd9456b6609..74cb330474e57adf548d37bea434b0733b793ab6 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ To install docker, follow the instructions for your platform: ```bash docker build \ - --build-arg GHC_VERSION=9.6.3 \ + --build-arg GHC_VERSION=9.8.1 \ --build-arg CABAL_VERSION=3.10.1.0 \ --build-arg STACK_VERSION=2.13.1 \ -t ghc-musl \ diff --git a/VERSION_MATRIX.md b/VERSION_MATRIX.md index b4b355666a74614d270ac32002a26033462d3dcf..971401378a3929f06679479c83f6ab6c4a773ea9 100644 --- a/VERSION_MATRIX.md +++ b/VERSION_MATRIX.md @@ -4,6 +4,7 @@ Topmost entry = Tag `latest` | GHC | Cabal | Stack | LLVM | Linux distro | |:-----------|:---------|:-----------|:---- |:-------------| +| 9.8.1 | 3.10.1.0 | 2.13.1 | 14 | Alpine 3.18 | | 9.6.3 | 3.10.1.0 | 2.13.1 | 14 | Alpine 3.18 | | 9.6.2 | 3.10.1.0 | 2.11.1[^1] | 14 | Alpine 3.18 | | 9.6.1 | 3.10.1.0 | n/a | 14 | Alpine 3.18 | diff --git a/latest.Dockerfile b/latest.Dockerfile index c1a7d7a218e9dac1de082d9f590c75d75d516a49..963c2fc2f5af9c0a240ed3b9d9b0ba137fde75ff 100644 --- a/latest.Dockerfile +++ b/latest.Dockerfile @@ -5,7 +5,7 @@ ARG STACK_VERSION ARG GHC_VERSION_BUILD=${GHC_VERSION} ARG CABAL_VERSION_BUILD=${CABAL_VERSION} -FROM glcr.b-data.ch/ghc/ghc-musl:9.4.7 as bootstrap +FROM glcr.b-data.ch/ghc/ghc-musl:9.6.3 as bootstrap ARG GHC_VERSION_BUILD ARG CABAL_VERSION_BUILD @@ -36,9 +36,9 @@ RUN cd /tmp \ && curl -sSLO https://downloads.haskell.org/~ghc/"$GHC_VERSION"/ghc-"$GHC_VERSION"-src.tar.xz \ && curl -sSLO https://downloads.haskell.org/~ghc/"$GHC_VERSION"/ghc-"$GHC_VERSION"-src.tar.xz.sig \ && gpg --keyserver hkps://keyserver.ubuntu.com:443 \ - --receive-keys 33C3A599DB85EA9B8BAA1866B202264020068BFB || \ + --receive-keys FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD || \ gpg --keyserver hkp://keyserver.ubuntu.com:80 \ - --receive-keys 33C3A599DB85EA9B8BAA1866B202264020068BFB \ + --receive-keys FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD \ && gpg --verify "ghc-$GHC_VERSION-src.tar.xz.sig" "ghc-$GHC_VERSION-src.tar.xz" \ && tar -xJf "ghc-$GHC_VERSION-src.tar.xz" \ && cd "ghc-$GHC_VERSION" \ @@ -133,7 +133,7 @@ RUN cd /tmp \ && rm -rf /tmp/* ## Install Cabal -COPY --from=bootstrap /root/.cabal/bin/cabal /usr/local/bin/cabal +COPY --from=bootstrap /root/.local/bin/cabal /usr/local/bin/cabal FROM builder as tester