diff --git a/.github/workflows/cabal.off b/.github/workflows/cabal.off
new file mode 100644
index 000000000..491a24ad7
--- /dev/null
+++ b/.github/workflows/cabal.off
@@ -0,0 +1,60 @@
+on:
+ push:
+ branches:
+ - master
+ pull_request:
+ branches:
+ - master
+name: Cabal
+jobs:
+ build:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ matrix:
+ ghc: ['9.8', '9.6', '9.4', '9.2']
+ cabal: ['latest']
+ os: [ubuntu-latest]
+ name: Cabal with GHC ${{ matrix.ghc }}
+ steps:
+ - uses: actions/checkout@v4
+ - name: Setup Haskell
+ uses: haskell-actions/setup@v2
+ with:
+ ghc-version: ${{ matrix.ghc }}
+ cabal-version: ${{ matrix.cabal }}
+ - name: Install dependencies
+ run: sudo apt install -y libbrotli-dev libgd-dev
+ - name: Build
+ run: cabal build all --enable-tests
+ - name: Test
+ run: cabal test all --enable-tests
+ - name: Haddock
+ run: cabal haddock all
+
+ ## Andreas, 2023-08-03: mtl-2.3 is covered by GHC 9.6
+ #
+ # build_with_mtl_2_3:
+ # runs-on: ${{ matrix.os }}
+ # strategy:
+ # fail-fast: false
+ # matrix:
+ # ghc: ['9.4.4']
+ # cabal: ['3.8.1.0']
+ # os: [ubuntu-latest]
+ # name: Cabal with GHC ${{ matrix.ghc }} and mtl >= 2.3.1
+ # steps:
+ # - uses: actions/checkout@v4
+ # - name: Setup Haskell
+ # uses: haskell/actions/setup@v2
+ # with:
+ # ghc-version: ${{ matrix.ghc }}
+ # cabal-version: ${{ matrix.cabal }}
+ # - name: Install dependencies
+ # run: sudo apt install -y libbrotli-dev libgd-dev
+ # - name: Build dependencies with mtl >= 2.3.1
+ # # 2022-12-30: 'transformers >= 0.6' is needed because of happstack-server
+ # run: cabal build all --disable-tests --dependencies-only -O0 --constraint 'mtl >= 2.3.1' --constraint 'transformers >= 0.6' --allow-newer='Cabal:mtl' --allow-newer='Cabal:transformers'
+ # - name: Build with mtl >= 2.3.1
+ # # 2022-12-30: 'transformers >= 0.6' is needed because of happstack-server
+ # run: cabal build all --disable-tests -O0 --constraint 'mtl >= 2.3.1' --constraint 'transformers >= 0.6' --allow-newer='Cabal:mtl' --allow-newer='Cabal:transformers'
diff --git a/.github/workflows/cabal.yml b/.github/workflows/cabal.yml
deleted file mode 100644
index 2f49c5b5b..000000000
--- a/.github/workflows/cabal.yml
+++ /dev/null
@@ -1,59 +0,0 @@
-on:
- push:
- branches:
- - master
- - ci*
- pull_request:
- branches:
- - master
- - ci*
-name: Cabal
-jobs:
- build:
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- ghc: ['9.4.4', '9.2.7', '9.0.2']
- cabal: ['3.8.1.0']
- os: [ubuntu-latest]
- name: Cabal with GHC ${{ matrix.ghc }}
- steps:
- - uses: actions/checkout@v3
- - name: Setup Haskell
- uses: haskell/actions/setup@v2
- with:
- ghc-version: ${{ matrix.ghc }}
- cabal-version: ${{ matrix.cabal }}
- - name: Install dependencies
- run: sudo apt install -y libbrotli-dev libgd-dev
- - name: Build
- run: cabal build all --enable-tests
- - name: Test
- run: cabal test all --enable-tests
- - name: Haddock
- run: cabal haddock all
- build_with_mtl_2_3:
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- ghc: ['9.4.4']
- cabal: ['3.8.1.0']
- os: [ubuntu-latest]
- name: Cabal with GHC ${{ matrix.ghc }} and mtl >= 2.3.1
- steps:
- - uses: actions/checkout@v3
- - name: Setup Haskell
- uses: haskell/actions/setup@v2
- with:
- ghc-version: ${{ matrix.ghc }}
- cabal-version: ${{ matrix.cabal }}
- - name: Install dependencies
- run: sudo apt install -y libbrotli-dev libgd-dev
- - name: Build dependencies with mtl >= 2.3.1
- # 2022-12-30: 'transformers >= 0.6' is needed because of happstack-server
- run: cabal build all --disable-tests --dependencies-only -O0 --constraint 'mtl >= 2.3.1' --constraint 'transformers >= 0.6' --allow-newer='Cabal:mtl' --allow-newer='Cabal:transformers'
- - name: Build with mtl >= 2.3.1
- # 2022-12-30: 'transformers >= 0.6' is needed because of happstack-server
- run: cabal build all --disable-tests -O0 --constraint 'mtl >= 2.3.1' --constraint 'transformers >= 0.6' --allow-newer='Cabal:mtl' --allow-newer='Cabal:transformers'
diff --git a/.github/workflows/haskell-ci.yml b/.github/workflows/haskell-ci.yml
index 6a7215dfe..7385d546c 100644
--- a/.github/workflows/haskell-ci.yml
+++ b/.github/workflows/haskell-ci.yml
@@ -6,22 +6,20 @@
#
# haskell-ci regenerate
#
-# For more information, see https://github.com/haskell-CI/haskell-ci
+# For more information, see https://github.com/andreasabel/haskell-ci
#
-# version: 0.15.20230321
+# version: 0.17.20231012
#
-# REGENDATA ("0.15.20230321",["github","hackage-server.cabal"])
+# REGENDATA ("0.17.20231012",["github","hackage-server.cabal"])
#
name: Haskell-CI
on:
push:
branches:
- master
- - ci*
pull_request:
branches:
- master
- - ci*
jobs:
linux:
name: Haskell-CI - Linux - ${{ matrix.compiler }}
@@ -34,19 +32,24 @@ jobs:
strategy:
matrix:
include:
- - compiler: ghc-9.6.1
+ - compiler: ghc-9.8.1
compilerKind: ghc
- compilerVersion: 9.6.1
+ compilerVersion: 9.8.1
setup-method: ghcup
allow-failure: false
- - compiler: ghc-9.4.4
+ - compiler: ghc-9.6.3
compilerKind: ghc
- compilerVersion: 9.4.4
+ compilerVersion: 9.6.3
setup-method: ghcup
allow-failure: false
- - compiler: ghc-9.2.7
+ - compiler: ghc-9.4.7
compilerKind: ghc
- compilerVersion: 9.2.7
+ compilerVersion: 9.4.7
+ setup-method: ghcup
+ allow-failure: false
+ - compiler: ghc-9.2.8
+ compilerKind: ghc
+ compilerVersion: 9.2.8
setup-method: ghcup
allow-failure: false
- compiler: ghc-9.0.2
@@ -71,8 +74,9 @@ jobs:
apt-get update
apt-get install -y --no-install-recommends gnupg ca-certificates dirmngr curl git software-properties-common libtinfo5
mkdir -p "$HOME/.ghcup/bin"
- curl -sL https://downloads.haskell.org/ghcup/0.1.19.2/x86_64-linux-ghcup-0.1.19.2 > "$HOME/.ghcup/bin/ghcup"
+ curl -sL https://downloads.haskell.org/ghcup/0.1.19.5/x86_64-linux-ghcup-0.1.19.5 > "$HOME/.ghcup/bin/ghcup"
chmod a+x "$HOME/.ghcup/bin/ghcup"
+ "$HOME/.ghcup/bin/ghcup" config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml;
"$HOME/.ghcup/bin/ghcup" install ghc "$HCVER" || (cat "$HOME"/.ghcup/logs/*.* && false)
"$HOME/.ghcup/bin/ghcup" install cabal 3.10.1.0 || (cat "$HOME"/.ghcup/logs/*.* && false)
apt-get update
@@ -88,10 +92,12 @@ jobs:
echo "CABAL_DIR=$HOME/.cabal" >> "$GITHUB_ENV"
echo "CABAL_CONFIG=$HOME/.cabal/config" >> "$GITHUB_ENV"
HCDIR=/opt/$HCKIND/$HCVER
- HC=$HOME/.ghcup/bin/$HCKIND-$HCVER
+ HC=$("$HOME/.ghcup/bin/ghcup" whereis ghc "$HCVER")
+ HCPKG=$(echo "$HC" | sed 's#ghc$#ghc-pkg#')
+ HADDOCK=$(echo "$HC" | sed 's#ghc$#haddock#')
echo "HC=$HC" >> "$GITHUB_ENV"
- echo "HCPKG=$HOME/.ghcup/bin/$HCKIND-pkg-$HCVER" >> "$GITHUB_ENV"
- echo "HADDOCK=$HOME/.ghcup/bin/haddock-$HCVER" >> "$GITHUB_ENV"
+ echo "HCPKG=$HCPKG" >> "$GITHUB_ENV"
+ echo "HADDOCK=$HADDOCK" >> "$GITHUB_ENV"
echo "CABAL=$HOME/.ghcup/bin/cabal-3.10.1.0 -vnormal+nowrap" >> "$GITHUB_ENV"
HCNUMVER=$(${HC} --numeric-version|perl -ne '/^(\d+)\.(\d+)\.(\d+)(\.(\d+))?$/; print(10000 * $1 + 100 * $2 + ($3 == 0 ? $5 != 1 : $3))')
echo "HCNUMVER=$HCNUMVER" >> "$GITHUB_ENV"
@@ -142,14 +148,14 @@ jobs:
- name: install cabal-plan
run: |
mkdir -p $HOME/.cabal/bin
- curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.6.2.0/cabal-plan-0.6.2.0-x86_64-linux.xz > cabal-plan.xz
- echo 'de73600b1836d3f55e32d80385acc055fd97f60eaa0ab68a755302685f5d81bc cabal-plan.xz' | sha256sum -c -
+ curl -sL https://github.com/haskell-hvr/cabal-plan/releases/download/v0.7.3.0/cabal-plan-0.7.3.0-x86_64-linux.xz > cabal-plan.xz
+ echo 'f62ccb2971567a5f638f2005ad3173dba14693a45154c1508645c52289714cb2 cabal-plan.xz' | sha256sum -c -
xz -d < cabal-plan.xz > $HOME/.cabal/bin/cabal-plan
rm -f cabal-plan.xz
chmod a+x $HOME/.cabal/bin/cabal-plan
cabal-plan --version
- name: checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
path: source
- name: initial cabal.project for sdist
diff --git a/.github/workflows/nix-flake.yml b/.github/workflows/nix-flake.yml
index ebb68cb58..e036875cc 100644
--- a/.github/workflows/nix-flake.yml
+++ b/.github/workflows/nix-flake.yml
@@ -9,16 +9,16 @@ on:
jobs:
nix:
strategy:
- fail-fast: true
+ fail-fast: false
matrix:
os:
- ubuntu-latest
- # - macos-latest
+ - macos-latest
name: Nix on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- - uses: actions/checkout@v3.1.0
- - uses: cachix/install-nix-action@v21
+ - uses: actions/checkout@v4
+ - uses: cachix/install-nix-action@v23
with:
extra_nix_config: |
trusted-public-keys = hydra.iohk.io:f/Ea+s+dFdN+3Y/G+FDgSq+a5NEWhJGzdjvKNGv0/EQ= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= hackage-server.cachix.org-1:iw0iRh6+gsFIrxROFaAt5gKNgIHejKjIfyRdbpPYevY=
@@ -29,4 +29,6 @@ jobs:
name: hackage-server
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- run: nix build
- # - run: nix flake check
+
+ - continue-on-error: false
+ run: nix flake check
diff --git a/cabal.haskell-ci b/cabal.haskell-ci
index 8f39d5cf4..391b2ebbf 100644
--- a/cabal.haskell-ci
+++ b/cabal.haskell-ci
@@ -1,4 +1,4 @@
-branches: master ci*
+branches: master
installed: +all -Cabal -Cabal-syntax -text -parsec -process
diff --git a/cabal.project b/cabal.project
index c3e6d24b7..f387f2c52 100644
--- a/cabal.project
+++ b/cabal.project
@@ -1,3 +1,9 @@
+packages:
+ .
+
+-- This comment moved below "packages" to fix parsing of this file
+-- by flake.nix
+
-- This project config requires cabal 2.4 or later
-- If in doubt, use GHC 8.8 to build hackage-server; see
@@ -6,8 +12,7 @@
--
-- with-compiler: ghc-8.8
-packages: .
-
+
allow-newer: rss:time, rss:base
-- Andreas, 2022-10-28: `Cabal-3.8.1.0` wants `process >= 1.6.14`
diff --git a/datafiles/static/browse.js b/datafiles/static/browse.js
index 868768a44..4c79adcbe 100644
--- a/datafiles/static/browse.js
+++ b/datafiles/static/browse.js
@@ -133,7 +133,7 @@ const replaceRows = (response) => {
tr.appendChild(createSimpleText(row.description));
tr.appendChild(createTags(row.tags));
tr.appendChild(createLastUpload(row.lastUpload));
- tr.appendChild(createSimpleText(row.lastVersion));
+ tr.appendChild(createSimpleText(row.referenceVersion));
tr.appendChild(createMaintainers(row.maintainers));
l.appendChild(tr);
}
diff --git a/datafiles/templates/Html/browse.html.st b/datafiles/templates/Html/browse.html.st
index 8f79ce634..ddc240e75 100644
--- a/datafiles/templates/Html/browse.html.st
+++ b/datafiles/templates/Html/browse.html.st
@@ -212,7 +212,7 @@
Description
Tags
Last U/L
- Last Version
+ Reference Version
Maintainers
diff --git a/datafiles/templates/Html/candidate-page.html.st b/datafiles/templates/Html/candidate-page.html.st
index 412591585..c7006d9c0 100644
--- a/datafiles/templates/Html/candidate-page.html.st
+++ b/datafiles/templates/Html/candidate-page.html.st
@@ -14,6 +14,8 @@
+
+
diff --git a/datafiles/templates/Html/revisions.html.st b/datafiles/templates/Html/revisions.html.st
index 72fd5acc4..ed8587275 100644
--- a/datafiles/templates/Html/revisions.html.st
+++ b/datafiles/templates/Html/revisions.html.st
@@ -28,7 +28,7 @@ refer to the
$revisions:{revision|
- -r$revision.number$
+ -r$revision.number$ ($pkgid$-r$revision.number$ )
$revision.htmltime$
$revision.user$
$revision.sha256$
diff --git a/datafiles/templates/Html/vouch.html.st b/datafiles/templates/Html/vouch.html.st
new file mode 100644
index 000000000..cb34cd855
--- /dev/null
+++ b/datafiles/templates/Html/vouch.html.st
@@ -0,0 +1,27 @@
+
+
+
+$hackageCssTheme()$
+Endorse user | Hackage
+
+
+
+$hackagePageHeader()$
+
+
+
Endorse user
+
+
$msg$
+
+
+
+
Endorsing cannot be undone! When the user has $requiredNumber$ endorsements, the user
+will be added to the uploaders group, and allowed to upload packages. Only endorse people who you trust to upload packages responsibly.
+
+
+
+
diff --git a/datafiles/templates/UserSignupReset/SignupConfirm.html.st b/datafiles/templates/UserSignupReset/SignupConfirm.html.st
index bc3fff397..d3a4d1a52 100644
--- a/datafiles/templates/UserSignupReset/SignupConfirm.html.st
+++ b/datafiles/templates/UserSignupReset/SignupConfirm.html.st
@@ -13,7 +13,9 @@ $hackagePageHeader()$
Email confirmation done!
-
Now you can set your password and create the account.
+
Now you can set your password and use the account. If you wish to
+ upload a package, please request to be added to the uploader group
+ by one of the mechanisms described in the email you were sent.