Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/bootstrap.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest]
ghc: ["8.10.7", "9.0.2", "9.2.7", "9.4.4"]
ghc: ["8.10.7", "9.0.2", "9.2.8", "9.4.8", "9.6.4", "9.8.1"]
include:
- os: macos-latest
ghc: "9.2.7"
ghc: "9.2.8"
name: Bootstrap ${{ matrix.os }} ghc-${{ matrix.ghc }}
runs-on: ${{ matrix.os }}
steps:
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,8 @@ jobs:
strategy:
matrix:
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
ghc: ["9.8.1", "9.6.3", "9.4.8", "9.2.8", "9.0.2", "8.10.7", "8.8.4", "8.6.5", "8.4.4"]
# If you remove something from here.. then add it to the old-ghcs job.
ghc: ["9.8.1", "9.6.3", "9.4.8", "9.2.8", "9.0.2", "8.10.7", "8.8.4", "8.6.5"]
exclude:
# corrupts GHA cache or the fabric of reality itself, see https://github.com/haskell/cabal/issues/8356
- os: "windows-latest"
Expand Down Expand Up @@ -236,7 +237,7 @@ jobs:
# they are not available in ppa/hvr. The ghcup installation
# needs `sudo` which is not available in the xenial container
ghc: ["8.8.4"]
extra-ghc: ["7.10.3", "7.8.4", "7.6.3", "7.4.2", "7.2.2", "7.0.4"]
extra-ghc: ["8.4.4", "8.2.2", "8.0.2", "7.10.3", "7.8.4", "7.6.3", "7.4.2", "7.2.2", "7.0.4"]

steps:

Expand Down
10 changes: 10 additions & 0 deletions bootstrap/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,13 @@ in the same way as it is shown for Linux above. On a system with functional `cab

There are rules in the top-level `Makefile` for generation of these files.

# Updating Bootstrap Plans

In order to update the bootstrap plans on linux there is the convenient `./generate_bootstrap_plans`
script. You can modify this script with the GHC versions you want to generate the plans for and
then run it to generate the plans.

```
./generate_bootstrap_plans
```

2 changes: 1 addition & 1 deletion bootstrap/cabal-bootstrap-gen.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ executable cabal-bootstrap-gen
, aeson ^>=1.5.2.0 || ^>=2.0.3.0 || ^>=2.1.0.0
, base ^>=4.12.0.0 || ^>=4.13.0.0 || ^>=4.14.0.0 || ^>=4.15.0.0 || ^>=4.16.0.0 || ^>=4.17.0.0
, bytestring ^>=0.10.8.2 || ^>=0.11.0.0
, Cabal ^>=3.2.0.0 || ^>=3.4.1.0 || ^>=3.6.3.0 || ^>=3.10.1.0
, Cabal ^>=3.4.1.0 || ^>=3.6.3.0 || ^>=3.10.1.0
, Cabal-syntax ^>=3.10.1.0
, cabal-install-parsers ^>=0.3.0.1 || ^>=0.4.5 || ^>=0.6
, cabal-plan ^>=0.7.0.0
Expand Down
23 changes: 23 additions & 0 deletions bootstrap/generate_bootstrap_plans
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
nix build nixpkgs#jq.bin -o jq
PATH+=:$PWD/jq-bin/bin

ghcs_nix="https://gitlab.haskell.org/bgamari/ghcs-nix/-/archive/master/ghcs-nix-master.tar.gz"

nix build -f "$ghcs_nix" ghc-8_10_7 -o boot_ghc

run() {
local ver="$1"
local drv="ghc-$ver"
echo "$ver"
nix build -f "$ghcs_nix" $drv
(cd ../; rm -r dist-bootstrap; cabal --distdir=dist-bootstrap build --project-file=cabal.project.release --dry-run cabal-install:exe:cabal -w bootstrap/result/bin/ghc)
jq --sort-keys < ../dist-bootstrap/cache/plan.json > "plan-$ver.json"
cabal run --with-ghc-pkg $PWD/boot_ghc/bin/ghc-pkg -w $PWD/boot_ghc/bin/ghc -v0 cabal-bootstrap-gen -- "plan-$ver.json" | jq --sort-keys | tee "linux-$(echo $ver | tr "_" ".").json"
}

run "8_10_7"
run "9_0_2"
run "9_2_8"
run "9_4_8"
run "9_6_4"
run "9_8_1"
Loading