Compare commits

..

472 Commits

Author SHA1 Message Date
df03513b8f Re-sign 2024-02-11 21:17:04 +08:00
805da33550 Update for stack 2.15.1 2024-02-11 21:16:51 +08:00
Mike Pilgrem
2bc225772c Add metadata on release of Stack 2.15.1 2024-02-11 21:14:28 +08:00
d7770f9e23 Fix FreeBSD stack 2024-02-10 14:12:26 +08:00
f8e0ec9b12 Remove cabal foo 2024-02-03 17:06:25 +08:00
6c6e2241bb Add FreeBSD to bindist install action 2024-02-03 17:03:45 +08:00
f6ef3672ba Re-sign 2024-01-29 13:30:46 +08:00
cf678f25a0 Update ghcup-prereleases-0.0.7.yaml as well 2024-01-29 13:30:29 +08:00
8d715cf0a5 Merge branch 'stack-2.15.0.1' into develop 2024-01-29 13:29:50 +08:00
Mike Pilgrem
0404f1bee5 Add Stack 2.15.0.1 pre-release to GHCup metadata 2024-01-28 17:42:37 +00:00
441cf7328f Merge branch 'hls-2.6.0.0-ghcup' into develop 2024-01-26 15:38:52 +08:00
5d2a8921b1 Update hls-metadata-0.0.1.json 2024-01-26 15:35:35 +08:00
66c91f75b1 Release HLS 2.6.0.0 2024-01-26 15:19:58 +08:00
wz1000
a6c8849dcb Merge pull request #166 from haskell/wip/hls-2.6.0.0
HLS 2.6.0.0
2024-01-15 22:57:36 +05:30
Zubin Duggal
3c173efdc4 HLS 2.6.0.0 2024-01-15 22:16:48 +05:30
487b049ae1 Re-sign 2024-01-10 00:43:08 +08:00
75abeb4731 Add stack-2.13.1 FreeBSD binary 2024-01-10 00:42:46 +08:00
ff8aa8a0dd Add GHC 9.6.4 2024-01-10 00:38:21 +08:00
wz1000
2bfdba63c9 Merge pull request #165 from haskell/9.6.4-release
Metadata for GHC 9.6.4
2024-01-09 15:09:10 +05:30
Zubin Duggal
3ecc0fb399 identifiers 2024-01-09 14:54:43 +05:30
Zubin Duggal
147e54ae6c Metadata for GHC 9.6.4 2024-01-09 14:28:55 +05:30
ec519eb080 Re-sign 2024-01-04 21:36:35 +08:00
4f3a14ed90 Fix format for older ghcup versions 2024-01-04 21:36:21 +08:00
703e930808 Re-sign 2024-01-04 20:19:20 +08:00
41fe6ba6f0 Optimize unknown_version to always use static binary 2024-01-04 20:18:53 +08:00
8ac41d2124 Re-sign 2024-01-04 20:14:15 +08:00
dd975d630a Distribute cabal-3.10.2.1 and set it as recommended 2024-01-04 20:12:21 +08:00
582ffbc09f Re-sign 2024-01-04 14:52:49 +08:00
0471ccf394 Set 3.10.2.0 as recommended to unbreak windows
Related:

* https://github.com/haskell/ghcup-hs/issues/966

We bump this, although 'cabal run' is known to be broken
on windows: https://github.com/haskell/cabal/issues/9334

However, backporting more patches to 3.6 is not sustainable.
Initially, I tried to backport
https://github.com/haskell/cabal/pull/8071,
but it's not clear whether that is the only thing that causes
compatibility issues with GHC 9.4 and might drive us into
an awkward situation as well.
2024-01-04 14:49:18 +08:00
fbc0843e53 Revert "Add cabal-3.6.2.0-p2"
This reverts commit 015db18a25.
2024-01-04 14:47:14 +08:00
cfa97b75bf Merge branch 'cabal-3.6.2.0-p2' into develop 2024-01-03 23:54:33 +08:00
0c2846b037 Re-sign 2024-01-03 23:53:24 +08:00
015db18a25 Add cabal-3.6.2.0-p2 2024-01-03 23:53:17 +08:00
9ebb937b37 Test that building hashable works 2024-01-03 23:49:21 +08:00
25f6f8cfad Re-sign 2023-12-26 23:00:37 +08:00
14d47470ca Merge branch 'recommended-stack-2.13.1' into develop 2023-12-26 23:00:20 +08:00
0bc52f0cf3 Re-sign 2023-12-26 22:21:59 +08:00
2b84274a65 Set stack 2.13.1 as recommended 2023-12-26 22:21:38 +08:00
c63fd65f90 Re-sign 2023-12-26 22:02:33 +08:00
a4fbe645e3 Bump GHC/HLS recommended versions 2023-12-26 22:02:12 +08:00
7e1a50cfff Re-sign 2023-12-03 23:22:12 +08:00
cb7d0c2f75 Switch alpine x86_64 bindists for GHC 9.2.8 and 9.6.3 to dynamic ones 2023-12-03 23:20:14 +08:00
e54435c057 Add missing alpine i386 bindists for GHC 9.2.8, 9.4.8, 9.6.3 and 9.8.1 2023-12-03 23:18:27 +08:00
95c57ba3e4 Sign 2023-12-02 02:53:15 +08:00
f2c6c71cf0 Update hls-metadata 2023-12-02 02:53:00 +08:00
2f761fc6fd Re-sign 2023-12-02 02:44:32 +08:00
a4bc77356f Release HLS 2.5.0.0 2023-12-02 02:44:08 +08:00
wz1000
f3264e2554 Merge pull request #159 from haskell/wip/hls-2.5.0.0
HLS 2.5.0.0
2023-12-01 05:27:50 -08:00
Zubin Duggal
54bd184feb HLS 2.5.0.0 2023-12-01 17:54:04 +05:30
Zubin Duggal
f413a1847b Update bindist job to use fedora 37 instead of 36 2023-11-30 13:34:26 +05:30
9a02e03efa Re-sign 2023-11-28 00:07:42 +08:00
aec5468b14 Fix GHC 9.6.1 test suite dlSubdir 2023-11-28 00:07:06 +08:00
69cec748d2 Re-sign 2023-11-28 00:00:16 +08:00
7f8a37de45 Add FreeBSD GHC 9.8.1 2023-11-27 23:59:59 +08:00
779120126e Re-sign 2023-11-27 22:49:05 +08:00
af900f6ff0 Add FreeBSD bindist for GHC-9.6.3 2023-11-27 22:47:17 +08:00
1fc03b2c69 Fix test bindist for GHC-9.8.1 2023-11-27 22:47:02 +08:00
dea08aac35 Fix GHC 9.6.3 test bindist 2023-11-27 22:42:41 +08:00
80b933b01b Fix test suite hast for GHC-9.4.8 2023-11-27 22:36:22 +08:00
82d1fda68b Add FreeBSD GHC 9.4.8 2023-11-27 22:07:10 +08:00
96bf980545 Add FreeBSD GHC 9.2.8 2023-11-27 21:38:06 +08:00
b20ad626e5 Fix source tarball hash for GHC 9.4.8 2023-11-27 21:34:52 +08:00
cb3428749a Fix cabal-install-3.10.2.0 on FreeBSD 2023-11-27 21:33:43 +08:00
178aaaaa23 Fix ghcup-0.0.7.yaml 2023-11-18 00:28:01 +08:00
c489e5198e Merge branch 'cabal-3.6.2.1' into develop 2023-11-18 00:12:58 +08:00
1936f88d5f Sign 2023-11-17 23:03:57 +08:00
578dc5e6d2 Use 3.6.2.0-p1 to mark it a distributor release 2023-11-17 23:03:31 +08:00
286d447f3d Sign 2023-11-17 22:34:16 +08:00
68b424fff3 Add cabal distributor release 3.6.2.1
And warn when installing vulnerable cabal versions.
2023-11-17 22:32:55 +08:00
dc6d43ddba Update ghcup-gen 2023-11-17 22:24:19 +08:00
174ff702a5 Set cabal version for installation to 3.6.2.0 2023-11-17 21:31:15 +08:00
6e3fef8e15 Build armv7 bindists for deb10 2023-11-17 21:25:24 +08:00
fae0dc57ee Fix release scripts 2023-11-17 21:23:02 +08:00
befd7b563e Add cabal release scripts 2023-11-17 21:00:12 +08:00
15dec1bfe8 Fix cirrus 2023-11-17 20:46:41 +08:00
bbd150a777 Comment 2023-11-17 20:27:56 +08:00
567fdeba31 Cirrus task is manual 2023-11-17 20:23:13 +08:00
44c4df7024 Merge branch 'wip/cabal-install-v3.6.2.0-p1' into develop 2023-11-17 20:21:53 +08:00
f755827e5e Add cirrus 2023-11-17 20:21:35 +08:00
a5bc56c914 Build clock for GHC bindist test 2023-11-17 19:05:41 +08:00
601b3e8d33 Sign 2023-11-17 18:26:19 +08:00
eb717c5a12 Add GHC 9.2.8 armv7 2023-11-17 18:25:45 +08:00
48e58345b0 Revert 9.2.8 armv7 for now, since linking is broken 2023-11-17 01:56:25 +08:00
407cc0fafe Sign 2023-11-17 01:41:41 +08:00
6b3f8f0732 Distribute 9.2.8 armv7 bindists that actually work 2023-11-17 01:41:31 +08:00
f6de249dc1 Re-sign 2023-11-16 22:13:18 +08:00
b928b5e0dd Add armv7 for GHC 9.2.8 2023-11-16 22:10:51 +08:00
999be172de Try to bump GHC versions for cabal build 2023-11-16 21:45:09 +08:00
67885734c9 Allow our own cabal-install bindist builds 2023-11-16 21:13:08 +08:00
988dcdac63 Improve metadata docs 2023-11-14 21:24:26 +08:00
0f13265d12 Merge remote-tracking branch 'origin/pr/152' into develop 2023-11-13 17:49:31 +08:00
Bryan Richter
967d4a81ab Point to the user guide re: cross compiling 2023-11-13 11:30:51 +02:00
b81e05d21e Sign 2023-11-13 14:36:20 +08:00
a586bd5dba Fix anchors in ghcup-cross-0.0.8 2023-11-13 14:35:49 +08:00
a1a80e41c9 Update ghcup prereleases yaml version 2023-11-12 18:24:08 +08:00
e9cc5626cb Remove ghcup from prereleases 2023-11-12 18:23:36 +08:00
cb09653a1b Update wasm cross bindists wrt #149 2023-11-12 18:20:39 +08:00
7bf64b363e Merge branch 'debian-unstable' into develop 2023-11-12 15:55:48 +08:00
f1f8eb8d7c Test all sigs, not just the main yaml 2023-11-12 15:52:28 +08:00
772e54b936 Re-sign 2023-11-12 15:47:23 +08:00
10ae84aa7b Test debian:unstable in bindist tests 2023-11-12 15:46:09 +08:00
0ae75a25ef Use deb11 for unknown debian version
See https://github.com/haskell/ghcup-metadata/pull/150
2023-11-12 15:44:54 +08:00
16fb138bbe Update toolRequirements 2023-11-12 15:43:46 +08:00
wz1000
6786ac32c0 Merge pull request #148 from haskell/wip/9.4.8-release
9.4.8 release
2023-11-10 07:49:17 -08:00
Zubin Duggal
9d6836aa76 Release 9.4.8 2023-11-10 20:33:54 +05:30
0239166c31 Re-sign 2023-11-10 21:39:27 +08:00
025f276131 Update 0.0.8 yamls 2023-11-10 21:39:04 +08:00
cae42448a0 Add ghcup 0.1.20.0 2023-11-10 21:38:49 +08:00
56d759176e Re-sign 2023-11-06 22:18:42 +08:00
df143e226f Backport fix to vanilla 2023-11-06 22:18:27 +08:00
e914259ed7 Merge remote-tracking branch 'origin/pr/144' into develop 2023-11-06 22:17:14 +08:00
Arjun Kathuria
48cae51c31 fix incorrect link to 32-bit(A_32) Linux_Debian cabal-install-3.10.2.0
* The link for 32-bit (A_32) Linux_Debian cabal-install under
  version 3.10.2.0 points to the 64-bit (x64-64) version.

* The hash for this however was found to be correct here, so
  it was left unchanged.

* Fixes the link to point to the 32-bit (i386) version.
2023-11-06 16:42:41 +05:30
173d03ef56 Add cabal-install 3.10.2.0 2023-11-05 11:50:38 +01:00
c806339f69 Add missing sigs 2023-10-21 19:42:28 +08:00
68633d49a5 Update sigs 2023-10-21 19:42:15 +08:00
7625d4bf83 Update system requirements for Ubuntu 23 2023-10-21 19:41:58 +08:00
2efadd4588 Re-sign 2023-10-21 19:29:53 +08:00
4917c671bf Update system requirements 2023-10-21 19:28:50 +08:00
Ben Gamari
dd4f6ff001 ghcup-vanilla: Add GHC 9.8.1 2023-10-11 13:24:22 -04:00
wz1000
70eccfe8d6 Merge pull request #141 from haskell/wip/hls-2.4.0.0
HLS 2.4.0.0
2023-10-10 10:52:31 -07:00
Zubin Duggal
0fde7e8686 Resign 2023-10-10 22:44:05 +05:30
Zubin Duggal
c1764cadab Update metadata for HLS 2.4.0.0 2023-10-10 22:38:35 +05:30
Ben Gamari
1a5a7f3db4 Merge pull request #140 from bgamari/wip/ghc-9.8
Add GHC 9.8.1
2023-10-09 18:01:41 -04:00
Ben Gamari
43f4782658 Add GHC 9.8.1 2023-10-09 17:43:57 -04:00
374a68e074 Merge branch 'issue-99' into develop 2023-10-01 17:47:51 +08:00
493c2c81f4 Re-sign 2023-10-01 16:44:02 +08:00
041f8b1421 Bump recommended GHC to 9.4.7 2023-10-01 16:43:47 +08:00
b62f7ffa3b Re-sign 2023-10-01 16:41:08 +08:00
6ee7342fe3 Merge remote-tracking branch 'origin/pr/119' into develop 2023-10-01 16:40:09 +08:00
1d43217082 Re-sign 2023-10-01 16:17:54 +08:00
4ffadfdda4 Fix ghcup-prereleases yaml issues 2023-10-01 16:17:38 +08:00
3e2ab12988 Merge branch 'issue-135' into develop 2023-10-01 16:17:18 +08:00
68731892cc Validate all tags in CI, wrt #135 2023-10-01 15:55:02 +08:00
b2843da016 Re-sign 2023-10-01 14:51:03 +08:00
53ef921fe1 Add stack to vanilla channel as well 2023-10-01 14:50:44 +08:00
20916def87 Merge remote-tracking branch 'origin/pr/132' into develop 2023-10-01 14:47:27 +08:00
335bc378aa Document tags wrt #136 2023-10-01 14:41:34 +08:00
Ben Gamari
1d366edea6 Merge pull request #133 from haskell/wip/ghc-9.8
Update tags of 9.8.1-rc1
2023-09-30 10:49:43 -04:00
Ben Gamari
971e013861 Update tags of 9.8.1-rc1
I had overlooked this when initially adding the release.
2023-09-30 10:30:07 -04:00
Mike Pilgrem
397fd411af Fix #131 Add Stack 2.13.1 ('official' bindists only) 2023-09-30 12:02:03 +01:00
Ben Gamari
124f62c0a2 Merge pull request #130 from bgamari/wip/ghc-9.8
Add ghc-9.8.1-rc1
2023-09-29 17:52:38 -04:00
Ben Gamari
e93e21835e Add ghc-9.8.1-rc1 2023-09-29 17:32:06 -04:00
2d5701d480 Improve README 2023-09-30 00:34:13 +08:00
d9fe82364c Move signatures to separate file 2023-09-30 00:05:30 +08:00
Hécate Moonlight
ac43fb74c8 Add Hécate's PGP key 2023-09-30 00:00:14 +08:00
wz1000
5013094656 Merge pull request #129 from haskell/wip/hls-2.3.0.0
Metadata for HLS 2.3.0.0
2023-09-29 16:49:34 +05:30
Zubin Duggal
fe6ad60f1d Resign 2023-09-29 16:46:44 +05:30
Zubin Duggal
5e077005e6 Add freebsd bindists 2023-09-29 16:46:22 +05:30
Zubin Duggal
ad3f8f9507 Resign 2023-09-29 14:52:31 +05:30
Zubin Duggal
97553d92cc Add metadata for HLS 2.3.0.0 2023-09-29 14:52:11 +05:30
Zubin Duggal
4f4e82f3a7 Resign 2023-09-26 20:52:39 +05:30
wz1000
9f5f9d0d40 Merge pull request #126 from haskell/stack-2.13.0.1
Add Stack 2.13.0.1 pre-release to GHCup metadata
2023-09-26 20:52:02 +05:30
Mike Pilgrem
0e394642f1 Add 'official' Stack 2.13.0.1 for macOS/AArch64 2023-09-26 16:12:26 +01:00
Mike Pilgrem
977147b65a Add Stack 2.13.0.1 pre-release to GHCup metadata 2023-09-26 16:12:26 +01:00
Zubin Duggal
67de4cb8db Resign 2023-09-26 00:36:53 +05:30
wz1000
9946e32869 Merge pull request #124 from haskell/b/ghc-9.6.3
Add GHC-9.6.3
2023-09-26 00:34:32 +05:30
Bryan Richter
7aa3b26848 Add GHC-9.6.3 2023-09-25 21:54:05 +03:00
Ben Gamari
c8cfd2717f Merge pull request #122 from bgamari/wip/fix-keys
test-sigs: Fix key validation
2023-09-22 10:54:01 -04:00
Ben Gamari
62c55a1893 test-sigs: Fix key validation
My personal key was added here instead of the ben@well-typed.com key
which I use for signing GHC-related things.
2023-09-22 10:43:02 -04:00
Ben Gamari
0972ffb4c9 Merge pull request #121 from bgamari/wip/ghc-9.8
Add ghc-9.8.1-alpha4
2023-09-22 10:18:46 -04:00
Ben Gamari
73a6c8c0cf Add ghc-9.8.1-alpha4 2023-09-22 09:52:28 -04:00
Mike Pilgrem
cca4a2386d Fix #118 Recommend the latest version of Stack 2023-09-09 17:09:32 +01:00
44cad536cf Re-sign 2023-09-04 15:09:40 +08:00
392c3879da Merge remote-tracking branch 'origin/pr/115' into develop 2023-09-04 14:58:49 +08:00
Arjun Kathuria
0702ea6eac fix(docs): Adds new docs generation code that takes OS-versions into account
* Adds new docs generation code that takes OS/distro version into
  account when generating dependency list for that platform.

* Moves away from old hard-coded approach to a new approach
  that reads Distro/OS version from the yaml file and
  generates the dependecy list taking distro/OS versions
  from the yaml file into account

* Fixes a very commonly reported bug
  - https://github.com/haskell/ghcup-hs/issues/777
2023-09-02 20:52:45 +05:30
Arjun Kathuria
88882cc757 refactor: Upgrade "ghcup-hs" dependency version in cabal.project
* Upgrade `ghcup-hs` project version to a new one that has
  new pretty-print instances needed, after my previous PR
  got merged.

* PR - fd6ff9f8ec
2023-09-02 20:48:28 +05:30
b2d276cd43 Add WT keys 2023-09-01 13:14:24 +08:00
4be5f2a861 Sign 2023-08-29 18:21:02 +08:00
76bbc57292 Merge remote-tracking branch 'origin/pr/114' into hls-2.2.0.0 2023-08-29 18:20:35 +08:00
Fendor
7c3d976be2 Add VSCode hls metadata for 2.2.0.0 2023-08-27 14:18:49 +02:00
Fendor
4543dbe628 Update metadata for HLS 2.2.0.0 2023-08-27 13:34:47 +02:00
0dd813c3bc Test keys 2023-08-26 14:12:35 +08:00
9cda41867d Fix undocumented keys 2023-08-26 13:21:16 +08:00
wz1000
3fb3d65717 Merge pull request #110 from haskell/wip/9.4.7-release
Metadata for GHC 9.4.7
2023-08-25 20:44:38 +05:30
Ben Gamari
a66c722d9c Merge pull request #111 from bgamari/wip/ghc-9.8
Add GHC 9.8.1-alpha3
2023-08-23 21:28:20 -04:00
Ben Gamari
228b60092e Add GHC 9.8.1-alpha3 2023-08-23 15:22:20 -04:00
Zubin Duggal
236a679e1f Metadata for GHC 9.4.7 2023-08-23 17:45:51 +05:30
69dd66bfb8 Fix prerelease tags 2023-08-17 19:51:31 +08:00
Ben Gamari
fab0629aab Fix release date of 9.8.1-alpha2 2023-08-15 08:06:52 -04:00
dff3e395c0 Merge remote-tracking branch 'origin/pr/103' into develop 2023-08-14 17:52:46 +08:00
8faa5a00a4 Re-sign with proper key 2023-08-14 17:51:52 +08:00
Zubin Duggal
44c6e2b5d0 Sign metadata 2023-08-11 22:38:28 +05:30
wz1000
9332b5c3b6 Merge pull request #109 from fendor/hls-metadata-2.1.0.0
Update metadata for HLS 2.1.0.0
2023-08-11 22:35:17 +05:30
Fendor
6dc4112b03 Do not promote to recommended 2023-08-11 18:32:17 +02:00
Fendor
f40933da42 Promote to recommended 2023-08-11 18:22:56 +02:00
Fendor
9137f4b994 Update metadata for HLS 2.1.0.0 2023-08-11 18:20:39 +02:00
Ben Gamari
ae0c031c78 Merge pull request #108 from bgamari/wip/ghc-9.8
Add GHC-9.8.1-alpha2
2023-08-10 11:05:38 -04:00
Ben Gamari
309ceffb43 Add GHC-9.8.1-alpha2 2023-08-09 21:52:28 -04:00
Ben Gamari
a239e448fa Sign ghcup-0.0.7.yaml 2023-08-07 12:07:38 -04:00
Ben Gamari
5c735e8478 Merge pull request #106 from wz1000/wip/9.4.6-release
9.4.6 release
2023-08-07 11:51:20 -04:00
Zubin Duggal
fb1e1a8f7d 9.4.6 release 2023-08-07 15:54:20 +05:30
Arjun Kathuria
803b2cfd1b fix: Upgrade to newest ghcup-hs master
* Upgrades ghcup-metadata to use newest master branch commit.
  - updates cabal.project

* fixes breaking changes when upgrading to new ghcup-hs
  - `listVersions` function changed type-signature, fixed useages
  - needed some GHCTargetVersion -> Version type conversions
2023-07-30 12:30:49 +05:30
Ben Gamari
dac7e22520 Add metadata for GHC 9.8.1-alpha1 2023-07-29 14:25:30 -04:00
0759634d3c Update dlOutput 2023-07-14 21:21:44 +08:00
7312daf7da Re-sign 2023-07-14 21:16:36 +08:00
8fa3fc6f6f Add wasm32-wasi-9.6.2.20230523 to cross 2023-07-14 21:15:54 +08:00
8550a086b4 Fix ghcup prerelease 2023-07-14 00:46:53 +08:00
b2aaecac07 Re-sign 2023-07-14 00:22:04 +08:00
fd29f96559 Add darwin GHCJS 2023-07-14 00:20:15 +08:00
6aa90ff5dd Fix tags on prereleases 2023-07-13 22:04:25 +08:00
046205bdc0 Introduce cross channel 2023-07-12 17:57:06 +08:00
737cc346db Merge branch '0.1.19.5-prerelease' into develop 2023-07-12 17:52:26 +08:00
7ab3419345 Add ghcup 0.1.19.5 prerelease 2023-07-12 17:49:30 +08:00
c88802ea8c Re-sign 2023-07-02 18:53:14 +08:00
5a85e7f735 Bump GHCup to 0.1.19.4 2023-07-02 18:52:54 +08:00
cdd58df6a4 Re-sign 2023-07-02 15:28:15 +08:00
b089af6578 Fix yaml 2023-07-02 15:28:02 +08:00
909e64ae8b Re-sign 2023-07-02 15:11:09 +08:00
9cff00364a Fix alpine 32bit cabal 2023-07-02 15:09:46 +08:00
e34b095e99 Re-sign 2023-07-02 14:41:49 +08:00
1a10c6d2e2 Fix fdlock error on cabal armv7 2023-07-02 14:41:38 +08:00
f5cf930de3 Merge branch 'ghcup-0.1.19.3' into develop 2023-06-29 20:11:40 +08:00
3ff8cf172d Re-sign 2023-06-29 20:07:22 +08:00
2b0f9134e9 Update to ghcup 0.1.19.3 2023-06-29 20:07:07 +08:00
4854047dc9 Merge branch 'hls-2.0.0.1' into develop 2023-06-28 21:14:57 +08:00
9266021236 Re-sign 2023-06-28 20:56:30 +08:00
8defb9068a Update for HLS 2.0.0.1 2023-06-28 20:56:16 +08:00
b88e461c7c Update HLS metadata 2023-05-27 11:56:05 +08:00
bb94c7445a Re-sign 2023-05-26 23:47:20 +08:00
27325db7c0 Add 9.2.8 to vanilla channel 2023-05-26 23:47:02 +08:00
3459025d6f Merge remote-tracking branch 'origin/pr/95' into develop 2023-05-26 23:41:03 +08:00
Zubin Duggal
62c05e25c6 Add metadata for GHC 9.2.8 2023-05-26 17:30:50 +05:30
e2102511b1 Fix tags in vanilla 2023-05-24 22:36:55 +08:00
508f52dfb1 Remove debian 9 from CI 2023-05-24 22:27:03 +08:00
ec29b4bcc3 Sign 2023-05-24 22:22:37 +08:00
52f4dde1ee Fix test DL 2023-05-24 22:22:21 +08:00
4cf9867563 Merge remote-tracking branch 'origin/pr/94' into develop 2023-05-24 22:22:04 +08:00
Ben Gamari
e9426c246d ghcup-vanilla: Add 9.6.2 2023-05-24 08:59:44 -04:00
Ben Gamari
5cba359c78 Add ghc-9.6.2 2023-05-23 17:14:48 -04:00
66a24ec9aa Re-sign 2023-05-19 19:02:17 +08:00
d7d93a85c2 Add stack-2.11.1for main channil 2023-05-19 19:02:07 +08:00
13fad50ca2 Add stack-2.11.1 for vanilla channel 2023-05-19 19:02:07 +08:00
484dd1084c Add GHC-9.4.5 for FreeBSD 2023-05-19 17:42:21 +08:00
c58fe8aaef Update to HLS 2.0.0.0 2023-05-19 16:18:37 +08:00
407d47a2ba Merge remote-tracking branch 'origin/pr/92' into develop 2023-05-19 16:13:04 +08:00
Zubin Duggal
d643f9f84e Add freebsd and fix aarch64-darwin 2023-05-19 13:40:17 +05:30
Zubin Duggal
0540871277 Add metadata for HLS 2.0.0.0 2023-05-18 17:05:42 +05:30
49063b09ba Add M1 binaries for stack-2.11.0.1 2023-05-12 22:05:19 +08:00
d6e7b29250 Re-sign 2023-05-07 00:16:37 +08:00
ffc8c38074 Merge remote-tracking branch 'origin/pr/90' into develop 2023-05-07 00:04:46 +08:00
Mike Pilgrem
e7a1ac0c15 Update ghcup-prereleases-0.0.7.yaml for Stack 2.11.0.1 2023-05-06 12:07:15 +01:00
9459d1cb08 Re-sign 2023-05-05 21:35:51 +08:00
d97d4fb8d7 Merge branch 'redhat8' into develop 2023-05-05 21:35:35 +08:00
d35571f02d Fix RedHat 8 support 2023-05-02 22:52:42 +08:00
2dbfc84ef6 Fix RedHat 8 support 2023-05-02 18:54:41 +08:00
92efb732ac Re-sign 2023-04-20 18:04:28 +08:00
6474e0e7de Add 9.4.5 to vanilla channel 2023-04-20 18:04:05 +08:00
5f1802aee7 Fixup test DL 2023-04-20 18:03:57 +08:00
7a5ffc84ff Merge remote-tracking branch 'origin/pr/88' into develop 2023-04-20 17:56:12 +08:00
Zubin Duggal
b37a8ca419 Add metadata for GHC 9.4.5 2023-04-18 13:24:36 +05:30
309dcd0344 Mark more HLS versions as old 2023-03-30 23:34:07 +08:00
16ca788725 Mark more GHC versions as old 2023-03-30 23:33:03 +08:00
86526f6015 Set GHC-9.2.7 and HLS-1.10.0.0 as recommended 2023-03-30 23:23:18 +08:00
1d00d31730 Fix HLS bindist CI 2023-03-30 22:39:34 +08:00
c975203b5e Sign 2023-03-30 22:28:40 +08:00
5c692ab9ec Generate hls metadata 2023-03-30 22:28:17 +08:00
7c1bf39704 Fix yaml anchors in ghcup-vanilla 2023-03-30 22:18:04 +08:00
673a49bcc1 Fixup HLS 1.10.0.0 2023-03-30 22:17:22 +08:00
6926df6a00 Merge remote-tracking branch 'origin/pr/86' into develop 2023-03-30 22:07:00 +08:00
874f9a52f8 Re-sign 2023-03-30 20:52:33 +08:00
Zubin Duggal
cb19cf7a20 Fix anchors and unknown linux 2023-03-29 11:03:11 +05:30
Zubin Duggal
59ea5163ce Add metadata for HLS 1.10.0.0 2023-03-29 10:52:49 +05:30
b0a026f6a0 Fix cabal arm binaries 2023-03-15 00:01:08 +08:00
5700321a7d Fix armv7/aarch64 ghcup binaries 2023-03-14 22:49:31 +08:00
c58f03c71d Add GHC 9.6.1 proper 2023-03-12 18:40:57 +08:00
96b1c8e3e9 Fix armv7 2023-03-12 18:25:52 +08:00
60a30d8522 Fix CI 2023-03-12 18:17:00 +08:00
7de9fd3a8c Fix CI for cabal 2023-03-12 18:10:21 +08:00
b8606ec3b7 Sign 2023-03-12 18:02:59 +08:00
d19cc1d0f0 Clean up empty dlSubdir 2023-03-12 18:02:44 +08:00
b703c55991 Add cabal 3.10.1.0 proper 2023-03-12 18:02:35 +08:00
8b95d10664 Make latest and recommended match in vanilla channel 2023-03-12 16:25:10 +08:00
d5c7e708d8 Add GHC-9.6.1 to vanilla channel 2023-03-12 16:24:06 +08:00
fea14b9a06 Add cabal-3.10.1.0 to vanilla channel 2023-03-11 23:32:30 +08:00
eadf9b61ba Fixup prereleases 2023-03-04 12:19:44 +08:00
594bd5490d Merge remote-tracking branch 'origin/pr/82' into develop 2023-03-03 23:51:25 +08:00
Ben Gamari
1fa98afb67 Add ghc-9.6.1-rc1 2023-03-03 10:36:30 -05:00
9a262dc451 Fix CI 2023-02-27 23:38:50 +08:00
d4f085edf4 Add FreeBSD 9.4.4 bindist 2023-02-27 22:46:29 +08:00
9c4b70f495 Sign 2023-02-27 21:11:47 +08:00
3e05dee7bf Add FreeBSD stack 2.9.3 binary 2023-02-27 21:11:36 +08:00
f8d0da5743 Make stack 2.9.3 the recommended 2023-02-27 20:42:40 +08:00
dfe477c1b7 Re-sign 2023-02-27 16:00:21 +08:00
f752a23491 Merge branch 'ghc-9.2.7' into develop 2023-02-27 16:00:09 +08:00
df38f4edf2 Add unofficial FreeBSD 9.2.7 bindist 2023-02-27 15:58:21 +08:00
ad42891618 Fix FreeBSD ghcup binary 2023-02-27 13:59:59 +08:00
Zubin Duggal
fe5f56580b Add metadata for GHC 9.2.7 2023-02-27 13:35:18 +08:00
4f8635e560 Fix test 2023-02-24 20:44:47 +08:00
8501a6d4b2 Mark a couple of prereleases as old 2023-02-24 20:22:02 +08:00
94b469197d Update ghcup tag 2023-02-24 20:03:57 +08:00
b1c5e84b42 Fix ghcup-bindist for installing ghcup 2023-02-24 20:02:07 +08:00
51aa203205 Set LatestPrerelease tags 2023-02-24 20:00:08 +08:00
0b98de04cc Bump GHCup to 0.1.19.2 2023-02-24 19:32:15 +08:00
3e07ac0a20 Merge branch 'hls-ci' into develop 2023-02-21 22:38:53 +08:00
d819571955 Fix HLS CI 2023-02-21 22:20:01 +08:00
d33b26a495 Update ghcup-hs subrepo 2023-02-19 23:54:59 +08:00
0ba569e44c Update GHCup to 0.1.19.1 2023-02-19 23:53:05 +08:00
ea9b67d5d0 Fixup prereleases 2023-02-18 01:02:49 +08:00
f47527468b Merge remote-tracking branch 'origin/pr/72' into develop 2023-02-18 00:57:45 +08:00
Ben Gamari
0939170115 Add GHC 9.6.1-alpha3 2023-02-17 09:49:37 -05:00
2941394cb1 Merge branch 'hls-1.9.1.0' into develop 2023-02-15 00:40:14 +08:00
152f531e31 Add HLS 1.9.1.0 2023-02-15 00:25:44 +08:00
033fcb7f19 Add unofficial FreeBSD 9.2.5 GHC bindist 2023-02-11 19:12:47 +08:00
c3d3804e12 Sign 2023-02-11 13:10:43 +08:00
1b5713af8f Remove recommended from 9.2.6 for now 2023-02-11 13:07:07 +08:00
8544b1bd49 Add M1 and aarch to bindist tests 2023-02-11 13:01:36 +08:00
cd5ff36ece Fix bindist test 2023-02-11 12:30:56 +08:00
3520430cd5 Add rocky:8 test 2023-02-11 12:27:48 +08:00
95b6a0a455 Change mappings for Ubuntu and Mint on 9.2.6 2023-02-11 12:27:31 +08:00
a68345fa44 Fix src hast on 9.2.6 and rm ghc-post-remove 2023-02-11 12:02:59 +08:00
98ca9d2f37 Merge remote-tracking branch 'origin/pr/70' into develop 2023-02-11 12:00:43 +08:00
Zubin Duggal
f45f8c6061 Add metadata for GHC 9.2.6 2023-02-10 18:46:39 +05:30
12cb639ca1 Fix remaining issues for ghc-9.6.0.20230128 2023-02-01 00:06:29 +08:00
eeb1e14e37 Merge remote-tracking branch 'origin/pr/69' into develop 2023-01-31 23:29:20 +08:00
3d85d4d78a Oh, shoot 2023-01-30 18:36:12 +08:00
61f49e0992 Sign 2023-01-30 18:12:29 +08:00
7a709a22a4 Add testDL to vanilla 2023-01-30 18:12:11 +08:00
b0004fb0e3 Remove postRemove from vanilla 2023-01-30 18:11:55 +08:00
4b30ea60c0 Add viTestDL 2023-01-30 18:06:03 +08:00
bcc2ced30a Fix subdir validation 2023-01-30 18:05:47 +08:00
Ben Gamari
510f1f281d Address review comments for 9.6.1-alpha2 metadata 2023-01-29 12:23:03 -05:00
Ben Gamari
1b182831ae Add GHC 9.6.1-alpha2 metadata 2023-01-29 11:36:11 -05:00
7acba3cd1e Sign 2023-01-27 21:56:52 +08:00
023f6b1a74 Merge remote-tracking branch 'origin/pr/68' into develop 2023-01-27 21:56:28 +08:00
Mikolaj Konarski
f9977b5a25 Add cabal 3.9.0.0 prerelease from tag unofficial-prerelease-of-3.10 2023-01-27 10:56:56 +01:00
727ed6a374 Sign 2023-01-19 10:21:26 +08:00
f595461414 Merge remote-tracking branch 'origin/pr/67' into develop 2023-01-19 10:21:15 +08:00
Matthew Pickering
0daacd0fb3 Fix duplicate yaml anchors (cabal-3810-32) 2023-01-18 20:49:28 +00:00
0306776a0b Remove GHC postlog
This is already done in GHCup itself.
2023-01-16 22:14:57 +08:00
9e14e6c736 Fix 32bit 3.8 cabal binaries 2023-01-16 00:12:50 +08:00
25b231442a Fixup 9.6.0.20230111 subdirs 2023-01-15 23:02:13 +08:00
dde651c769 Fix cabal-3.8.1.0 bindists 2023-01-15 22:35:52 +08:00
a05354bbc8 Add missing bindists for cabal-3.8.1.0 2023-01-15 21:57:59 +08:00
27c82dc3f7 Sign 2023-01-14 23:27:08 +08:00
e85fc30d6c Merge remote-tracking branch 'origin/pr/66' into develop 2023-01-14 23:23:08 +08:00
Ben Gamari
93204da7fa Add GHC 9.6.1-alpha1 2023-01-13 18:16:06 -05:00
adae303354 Fix windows GHCup 0.1.19.0 binary
Fixes https://github.com/haskell/ghcup-hs/issues/745
2023-01-14 01:45:34 +08:00
b6698d1d2b Update ghcup to 0.1.19.0 2023-01-13 12:58:23 +08:00
7e08589078 Update ghcup build 2023-01-13 12:58:23 +08:00
e6b0a8086a Add armv7 for GHC 9.2.2 2023-01-12 15:36:02 +08:00
7fe858c762 Merge branch 'yamllint' into develop 2023-01-11 23:19:00 +08:00
c8fc5fb44e Implement yaml linting, fixes #63 2023-01-11 22:52:03 +08:00
0b92651bcc Sign 2023-01-11 21:40:26 +08:00
bcfe45ad6b Merge remote-tracking branch 'origin/pr/62' into develop 2023-01-11 21:39:05 +08:00
Matthew Pickering
ae180380b5 Fix duplicated cabal-3620-32 anchor 2023-01-10 09:00:25 +00:00
11aa850e1c Add vanilla metadata, fixes #43 2023-01-08 15:38:13 +08:00
e86689a03b Sign 2023-01-02 19:27:17 +08:00
053d4fe216 Merge remote-tracking branch 'origin/pr/58' into develop 2023-01-02 19:27:06 +08:00
Takahiro HIMURA
173dc63375 Fix a reference for HLS 1.9.0.0 Debian. 2023-01-02 19:49:11 +09:00
9061e416ce Sign 2023-01-01 17:30:11 +08:00
e3cdf35f45 Test bindists on fedora:27 as well 2023-01-01 17:02:52 +08:00
f45500e82a Fix 9.4.4 bindist for fedora <33 2023-01-01 16:03:45 +08:00
c42bb4a2ff Sign 2022-12-29 11:56:46 +08:00
Zubin Duggal
7601d79710 Fix hashes for HLS 1.9 2022-12-29 02:38:13 +05:30
Zubin Duggal
11cb83955f Add metadata for HLS 1.9.0.0 2022-12-26 20:18:38 +05:30
0a1655fbb2 Sign 2022-12-25 23:39:37 +08:00
4bccb92d3f Fix bindist CI 2022-12-25 23:33:21 +08:00
Ben Gamari
c3f824ddc3 Add GHC 9.4.4 2022-12-24 14:53:30 -05:00
9abf634f8c Improve stack post install 2022-12-19 00:15:27 +08:00
5d50438a4c Merge branch 'stack-2.9.3' into develop 2022-12-18 02:27:10 +08:00
22867158fa Add stack-2.9.3 2022-12-18 02:24:52 +08:00
d309865d02 Allow to trigger workflow via comment 2022-12-18 02:22:57 +08:00
af5688633d Fix build for Fedora <33 2022-12-16 12:23:55 +08:00
3b98df479a Fix CI 2022-12-14 22:37:57 +08:00
93514e964f Update sig 2022-12-14 20:57:07 +08:00
4466b7ce4d Merge branch 'develop' 2022-12-13 19:42:05 +08:00
1ba37946e1 Fix Linux Mint shenanigans with HLS 2022-12-13 19:10:08 +08:00
f37840f592 Merge branch 'develop' 2022-11-25 21:20:47 +08:00
Mike Pilgrem
5b58beb3bd Add Stack 2.9.2.1 pre-release to GHCup metadata 2022-11-24 05:56:33 +01:00
8f0e82ef06 Fix 2022-11-12 23:32:13 +08:00
de7b919c4f Fx 8.10.3 alpine bindist 2022-11-12 22:53:26 +08:00
1b9f1fc804 Add subcommand to output system requirements in markdown
Related: https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/411
2022-11-12 11:13:56 +08:00
32a75b482a Sign 2022-11-08 01:00:37 +08:00
6290ad816c Add GHC 9.2.5 2022-11-08 00:56:11 +08:00
2d705bf10a Sign 2022-11-06 23:56:24 +08:00
5da8fa8ea0 Add GHC 9.4.3 2022-11-06 23:08:19 +08:00
c3f3321617 Merge branch 'prof-libs' into develop 2022-10-10 13:30:11 +08:00
45db7a6349 Improve bindist install script
Test HLS and cabal better. Test profiling.
2022-10-10 12:56:43 +08:00
b29358a3ce Add Linux Mint bindist installations to github actions 2022-10-08 21:37:57 +08:00
448e6b65a1 Sign 2022-09-26 23:02:33 +08:00
f79a614842 Set GHC 9.2.4 as recommended
Fixes #402
2022-09-26 23:00:49 +08:00
38af24534d Add stack 2.9.1 2022-09-26 22:48:25 +08:00
70f6aa4112 Fix libffi install on ubuntu18.04 2022-09-16 17:16:51 +08:00
34414b4a6b Add ubuntu 18.04 2022-09-16 17:14:11 +08:00
cea865595a Fix ubuntu HLS 1.8.0.0 2022-09-16 17:04:42 +08:00
3f891cc56a Allow to set arbitrary tools in bindist action
Fixes #35
2022-09-15 22:25:22 +08:00
fd71594ee6 Add linux aarch64 HLS 2022-09-15 22:20:01 +08:00
8a0fcd3172 Enable tests on develop branch 2022-09-15 19:58:05 +08:00
c5d3930c8f Fix windows HLS 1.8 2022-09-15 19:46:08 +08:00
36dd18eeb5 Sign 2022-09-14 19:18:04 +08:00
4f8ca555fd Merge remote-tracking branch 'origin/pr/33' 2022-09-14 19:01:18 +08:00
Pepe Iborra
03e9916d24 Update ghcup-0.0.7.yaml
Co-authored-by: wz1000 <zubin@cmi.ac.in>
2022-09-14 12:05:57 +02:00
Pepe Iborra
7737f5decf use SHA256 hashes 2022-09-14 11:56:26 +02:00
Pepe Iborra
ba07fa8baa yaml syntax fix 2022-09-14 11:46:30 +02:00
Pepe Iborra
e8336c3093 Fixes for Windows and Arm linux binaries 2022-09-14 11:45:29 +02:00
Pepe Iborra
7381149b4e remove recommended tags from 1.7.0.0 2022-09-14 11:43:45 +02:00
Pepe Iborra
ca7416674e fix Windows dlSubdir 2022-09-14 11:32:30 +02:00
Pepe Iborra
ab7231f10f fix Windows dlUri 2022-09-14 11:30:31 +02:00
Pepe Iborra
99133d949a add ghcup metadata 2022-09-14 11:29:05 +02:00
Pepe Iborra
02588b8025 Added metadata for HLS 1.8.0.0 2022-09-14 11:06:35 +02:00
9c78f17415 Sign 2022-08-26 08:38:31 +08:00
33cb0e8708 Mark 9.4.1 as old 2022-08-24 23:29:47 +08:00
bc72af60ca Add g++ to requirements 2022-08-24 23:05:29 +08:00
320f96acf7 Merge remote-tracking branch 'origin/pr/31' 2022-08-24 23:05:13 +08:00
Taylor Fausak
f013568183 Add GHC 9.4.2 2022-08-23 07:00:40 -05:00
86da8c3dfe Merge remote-tracking branch 'origin/pr/30' 2022-08-12 18:55:39 +08:00
amesgen
0bdb62c58e Consolidate and isolate bindist installation
In particular, this now ensure that we actually use the ghcup version we
installed as well as a separate installation directory, instead of any
potentially previously installed versions/files.
2022-08-11 03:29:47 +02:00
amesgen
0c0736526a Bindist CI: add windows 2022-08-10 19:50:04 +02:00
ff79db284a Merge remote-tracking branch 'origin/pr/29' 2022-08-10 20:03:27 +08:00
86c7f4374a Fix Red Hat 2022-08-10 19:58:48 +08:00
25a2382694 Merge branch 'cabal-3.8.1.0' 2022-08-10 08:39:11 +08:00
amesgen
928375fa74 Add CI for bindist installation 2022-08-09 21:44:47 +02:00
29c04ab231 Add cabal-3.8.1.0 2022-08-10 00:06:10 +08:00
1a87f77dda Sign 2022-08-09 23:38:55 +08:00
fc911e1099 Merge remote-tracking branch 'origin/pr/27' 2022-08-09 23:33:52 +08:00
amesgen
2cc783fcab Fix GHC 9.4.1 (e.g. on Ubuntu 20.04) 2022-08-09 13:58:58 +02:00
548aa90553 GPG sign 2022-08-09 19:02:59 +08:00
90571cee09 Fix darwin bindists
https://discourse.haskell.org/t/ghc-9-4-1-is-now-available/4901/6
2022-08-09 19:02:20 +08:00
540ee16e8e Merge remote-tracking branch 'origin/pr/26' 2022-08-09 14:13:53 +08:00
amesgen
19bc7f338e Add ghc-9.4.1 2022-08-09 00:38:30 +02:00
7ec72168b0 Mark more stuff as old 2022-08-06 15:47:26 +08:00
d819e05b93 Fix red hat HLS bindist 2022-07-30 18:01:10 +08:00
42f43a6b2d Update ghcup to 0.1.18.0 2022-07-30 10:45:10 +08:00
012fbb3f13 Sign 2022-07-29 21:54:53 +08:00
3fe6f8d804 Merge branch 'pr/25' 2022-07-29 21:54:38 +08:00
Cheng Shao
bbcf300e90 Add ghc-9.2.4 2022-07-28 17:40:46 +00:00
38062b4b0d Mark old prereleases as old 2022-07-27 23:36:15 +08:00
81e04c51f1 Update gpg signatures 2022-07-27 23:33:07 +08:00
ab64d11db6 Add GHC 9.4.1-rc1 2022-07-27 23:25:00 +08:00
4b22e690e7 Update HLS docs link 2022-07-27 21:47:45 +08:00
a81cfd135b Fix source tarball for GHC-9.2.3 2022-07-06 11:19:52 +02:00
a8f55748cd Fix bindists not respecting DESTDIR 2022-06-26 23:04:55 +02:00
2abf4f081b Fix viPostRemove 2022-06-26 19:43:22 +02:00
1819b160ee Add GHC 9.4.0.20220623 2022-06-26 18:10:26 +02:00
437a84e8d9 Fix 3.8.0.20220526 on windows
See https://github.com/haskell/cabal/issues/8210
2022-06-17 17:07:16 +02:00
ac3cfb6193 Add deb9 bindist to 9.4.1-alpha2 2022-06-05 00:23:53 +02:00
2c562f8eec Add cabal 3.8.0.20220526 prerelease 2022-06-02 19:02:18 +02:00
a47c62ab54 Add 9.4.1-alpha2 pre-release 2022-05-28 16:35:54 +02:00
d54710d917 Add GHC 9.2.3 2022-05-28 15:02:16 +02:00
1eb6f3f256 Update signature 2022-05-12 18:31:17 +02:00
3a9d5453fc Update windows bindist 2022-05-12 18:28:25 +02:00
366153c3c6 Update signature 2022-05-11 23:46:49 +02:00
85d1172440 Bump ghcup to 0.1.17.8 2022-05-11 23:43:49 +02:00
f7e62e1061 Update ghcup ref 2022-05-11 23:43:36 +02:00
7d8f7eaf66 Fix GHC 9.2.2 bindist on windows
By copying some DLLs, see https://gitlab.haskell.org/haskell/ghcup-hs/-/issues/359
2022-05-05 22:15:07 +02:00
26e6477f3c Add 9.4.1-alpha1 GHC prerelease 2022-05-03 15:40:10 +02:00
855a7a9bcf Fix yaml 2022-05-01 18:40:16 +02:00
abf57dbe8c Fix bindists for Linux Mint < 20 2022-05-01 17:34:27 +02:00
fbf06cc9ee Fix HLS 1.7.0.0 bindist again 2022-04-27 14:55:36 +08:00
5f4cd00631 Fix HLS 1.7.0.0 windows bindist 2022-04-27 09:16:40 +08:00
ff2b373807 Release HLS 1.7.0.0 2022-04-27 02:07:29 +08:00
ac808aebbd Fix darwin hash wrt #23 2022-04-24 10:41:38 +08:00
bb8c6b8d34 Bump ghcup to 0.1.17.7 2022-04-21 22:57:48 +02:00
88696a0cc5 Fix some bindists not providing profiling libs 2022-04-09 13:15:35 +02:00
c9384767ac Add pre-release channel 2022-04-07 20:16:07 +02:00
359ed3103a Bump ghcup to 0.1.17.6 2022-03-18 23:23:03 +01:00
ba42ed295f Update ghcup ref 2022-03-18 21:28:31 +01:00
7ab9f62645 Fixup html generation 2022-03-18 18:51:55 +01:00
9d2ebcb74d Fix hls-metadata for windows 2022-03-13 00:28:55 +01:00
4c23f6a49e Generate tool tables for docs 2022-03-08 22:22:36 +01:00
3683db0155 Update README 2022-03-08 15:25:17 +01:00
cc4bf53a23 Generate hls-metadata-0.0.1.json 2022-03-08 14:59:58 +01:00
40bf6cd44b Improve generate subcommand 2022-03-08 14:59:14 +01:00
3ad280534b Add armv7 stack 2.7.5 2022-03-07 00:34:38 +01:00
40be6ebe7a Fix tags for 9.2.1 2022-03-07 00:24:33 +01:00
7eac30f2d9 Backport stuff to ghcup-0.0.6.yaml 2022-03-07 00:19:59 +01:00
afcb5ff508 Add GHC 9.2.2 2022-03-07 00:17:16 +01:00
b8907c7c14 Add stack 2.7.5 2022-03-07 00:01:29 +01:00
df8ab38e1f Bump ghcup version 2022-03-07 00:01:29 +01:00
6fae2f7bc2 Update sig 2022-03-02 18:44:34 +01:00
0371870d77 Update darwin M1 ghcup exe 2022-03-02 13:52:46 +01:00
03f047e369 Try to fix darwin M1 ghcup binaries 2022-03-02 13:27:28 +01:00
51 changed files with 29630 additions and 416 deletions

28
.github/scripts/brew.sh vendored Normal file
View File

@@ -0,0 +1,28 @@
#!/bin/sh
set -eux
# shellcheck disable=SC1091
. .github/scripts/env.sh
if [ -e "$HOME/.brew" ] ; then
(
cd "$HOME/.brew"
git fetch --depth 1
git reset --hard origin/master
)
else
git clone --depth=1 https://github.com/Homebrew/brew "$HOME/.brew"
fi
export PATH="$HOME/.brew/bin:$HOME/.brew/sbin:$PATH"
mkdir -p "$CI_PROJECT_DIR/.brew_cache"
export HOMEBREW_CACHE="$CI_PROJECT_DIR/.brew_cache"
mkdir -p "$CI_PROJECT_DIR/.brew_logs"
export HOMEBREW_LOGS="$CI_PROJECT_DIR/.brew_logs"
mkdir -p /private/tmp/.brew_tmp
export HOMEBREW_TEMP=/private/tmp/.brew_tmp
#brew update
brew install ${1+"$@"}

66
.github/scripts/build.sh vendored Normal file
View File

@@ -0,0 +1,66 @@
#!/bin/bash
set -eux
# shellcheck disable=SC1091
. .github/scripts/env.sh
# shellcheck disable=SC1091
. .github/scripts/common.sh
uname -a
uname -p
uname
pwd
env
# ensure ghcup
install_ghcup
# build
ghcup install ghc "${GHC_VERSION}"
ghcup set ghc "${GHC_VERSION}"
sed -i.bak -e '/DELETE MARKER FOR CI/,/END DELETE/d' cabal.project # see comment in cabal.project
ecabal update
ecabal user-config diff
ecabal user-config init -f
"ghc-${GHC_VERSION}" --info
"ghc" --info
# https://github.com/haskell/cabal/issues/7313#issuecomment-811851884
if [ "$(getconf LONG_BIT)" == "32" ] || [ "${DISTRO}" == "CentOS" ] ; then
echo 'constraints: lukko -ofd-locking' >> cabal.project.release.local
fi
# shellcheck disable=SC2206
args=(
-w "ghc-$GHC_VERSION"
--disable-profiling
--enable-executable-stripping
--project-file=cabal.project.release
${ADD_CABAL_ARGS}
)
run cabal v2-build "${args[@]}" cabal-install
mkdir -p "$CI_PROJECT_DIR/out"
# shellcheck disable=SC2154
cp "$(cabal list-bin "${args[@]}" cabal-install:exe:cabal)" "$CI_PROJECT_DIR/out/cabal$ext"
cp dist-newstyle/cache/plan.json "$CI_PROJECT_DIR/out/plan.json"
cd "$CI_PROJECT_DIR/out/"
# create tarball/zip
TARBALL_PREFIX="cabal-install-$("$CI_PROJECT_DIR/out/cabal" --numeric-version)"
case "${TARBALL_EXT}" in
zip)
zip "${TARBALL_PREFIX}-${ARTIFACT}.${TARBALL_EXT}" "cabal${ext}" plan.json
;;
tar.xz)
tar caf "${TARBALL_PREFIX}-${ARTIFACT}.${TARBALL_EXT}" "cabal${ext}" plan.json
;;
*)
fail "Unknown TARBALL_EXT: ${TARBALL_EXT}"
;;
esac
rm cabal plan.json

110
.github/scripts/common.sh vendored Normal file
View File

@@ -0,0 +1,110 @@
#!/bin/bash
# shellcheck disable=SC1091
. .github/scripts/env.sh
# Colors
RED="0;31"
LT_BROWN="1;33"
LT_BLUE="1;34"
ecabal() {
cabal "$@"
}
nonfatal() {
"$@" || "$* failed"
}
sha_sum() {
if [ "${RUNNER_OS}" = "FreeBSD" ] ; then
sha256 "$@"
else
sha256sum "$@"
fi
}
git_describe() {
git config --global --get-all safe.directory | grep '^\*$' || git config --global --add safe.directory "*"
git describe --always
}
install_ghcup() {
# find "$GHCUP_INSTALL_BASE_PREFIX"
mkdir -p "$GHCUP_BIN"
mkdir -p "$GHCUP_BIN"/../cache
if [ "${RUNNER_OS}" = "FreeBSD" ] ; then
curl -o ghcup https://downloads.haskell.org/ghcup/tmp/x86_64-portbld-freebsd-ghcup-0.1.18.1
chmod +x ghcup
mv ghcup "$HOME/.local/bin/ghcup"
else
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_MINIMAL=1 sh
source "$(dirname "${GHCUP_BIN}")/env"
ghcup install cabal --set "${BOOTSTRAP_HASKELL_CABAL_VERSION}"
fi
}
strip_binary() {
(
set -e
local binary=$1
case "$(uname -s)" in
"Darwin"|"darwin")
;;
MSYS_*|MINGW*)
;;
*)
strip -s "${binary}"
;;
esac
)
}
# GitLab Pipelines log section delimiters
# https://gitlab.com/gitlab-org/gitlab-foss/issues/14664
start_section() {
name="$1"
echo -e "section_start:$(date +%s):$name\015\033[0K"
}
end_section() {
name="$1"
echo -e "section_end:$(date +%s):$name\015\033[0K"
}
echo_color() {
local color="$1"
local msg="$2"
echo -e "\033[${color}m${msg}\033[0m"
}
error() { echo_color "${RED}" "$1"; }
warn() { echo_color "${LT_BROWN}" "$1"; }
info() { echo_color "${LT_BLUE}" "$1"; }
fail() { error "error: $1"; exit 1; }
run() {
info "Running $*..."
"$@" || ( error "$* failed"; return 1; )
}
emake() {
if command -v gmake >/dev/null 2>&1 ; then
gmake "$@"
else
make "$@"
fi
}
mktempdir() {
case "$(uname -s)" in
"Darwin"|"darwin")
mktemp -d -t cabal_ci.XXXXXXX
;;
*)
mktemp -d
;;
esac
}

38
.github/scripts/env.sh vendored Normal file
View File

@@ -0,0 +1,38 @@
#!/bin/bash
mkdir -p "$HOME"/.local/bin
if [ "${RUNNER_OS}" = "Windows" ] ; then
ext=".exe"
else
# shellcheck disable=SC2034
ext=''
fi
export PATH="$HOME/.local/bin:$PATH"
export BOOTSTRAP_HASKELL_NONINTERACTIVE=1
export BOOTSTRAP_HASKELL_CABAL_VERSION="${CABAL_VER:-3.6.2.0-p2}"
export BOOTSTRAP_HASKELL_ADJUST_CABAL_CONFIG=no
export BOOTSTRAP_HASKELL_INSTALL_NO_STACK=yes
export BOOTSTRAP_HASKELL_ADJUST_BASHRC=1
if [ "${RUNNER_OS}" = "Windows" ] ; then
# on windows use pwd to get unix style path
CI_PROJECT_DIR="$(pwd)"
export CI_PROJECT_DIR
export GHCUP_INSTALL_BASE_PREFIX="/c"
export GHCUP_BIN="$GHCUP_INSTALL_BASE_PREFIX/ghcup/bin"
export PATH="$GHCUP_BIN:$PATH"
export CABAL_DIR="C:\\Users\\runneradmin\\AppData\\Roaming\\cabal"
else
export CI_PROJECT_DIR="${GITHUB_WORKSPACE}"
export GHCUP_INSTALL_BASE_PREFIX="$CI_PROJECT_DIR"
export GHCUP_BIN="$GHCUP_INSTALL_BASE_PREFIX/.ghcup/bin"
export PATH="$GHCUP_BIN:$PATH"
export CABAL_DIR="$CI_PROJECT_DIR/cabal"
export CABAL_CACHE="$CI_PROJECT_DIR/cabal-cache"
fi
export DEBIAN_FRONTEND=noninteractive
export TZ=Asia/Singapore

233
.github/workflows/bindists.yaml vendored Normal file
View File

@@ -0,0 +1,233 @@
name: Bindist installation
defaults:
run:
shell: bash
on:
workflow_dispatch:
inputs:
tool:
description: Tool
required: true
type: string
version:
description: Version
required: true
type: string
metadataFile:
description: Metadata file
required: true
default: ghcup-0.0.8.yaml
type: string
channel:
description: Distribution channel (main|prerelease|nightly)
required: true
default: Main
type: string
env:
BOOTSTRAP_HASKELL_NONINTERACTIVE: 1
BOOTSTRAP_HASKELL_MINIMAL: 1
BOOTSTRAP_HASKELL_ADJUST_BASHRC: 1
TOOL: ${{ github.event.inputs.tool }}
VERSION: ${{ github.event.inputs.version }}
METADATA_FILE: ${{ github.event.inputs.metadataFile }}
CHANNEL: ${{ github.event.inputs.channel }}
jobs:
bindist-install:
name: linux-${{ matrix.image }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- image: alpine:latest
installCmd: apk update && apk add
toolRequirements: binutils-gold curl gcc g++ gmp-dev libc-dev libffi-dev make musl-dev ncurses-dev perl tar xz
- image: debian:10
installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 libnuma-dev
- image: debian:11
installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 libnuma-dev
- image: debian:unstable
installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses6 libtinfo6 libnuma-dev
- image: ubuntu:18.04
installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
- image: ubuntu:20.04
installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
- image: ubuntu:22.04
installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
- image: archlinux:latest
installCmd: pacman -Syu --noconfirm
toolRequirements: which gcc gmp libffi make ncurses perl tar xz
- image: fedora:27
installCmd: dnf install -y
toolRequirements: which findutils gcc gcc-c++ gmp gmp-devel make ncurses ncurses-compat-libs xz perl
- image: fedora:37
installCmd: dnf install -y
toolRequirements: which gcc g++ gmp gmp-devel make ncurses ncurses-compat-libs xz perl
- image: rockylinux:8
installCmd: dnf install -y
toolRequirements: which findutils gcc gcc-c++ gmp gmp-devel make ncurses ncurses-compat-libs xz perl
- image: rockylinux:9
installCmd: dnf install -y --allowerasing
toolRequirements: which findutils gcc gcc-c++ gmp gmp-devel make ncurses xz perl
- image: linuxmintd/mint19.3-amd64
installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
- image: linuxmintd/mint20.2-amd64
installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
- image: linuxmintd/mint21.1-amd64
installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
container:
image: ${{ matrix.image }}
steps:
- name: Install requirements
shell: sh
run: |
${{ matrix.installCmd }} curl bash git ${{ matrix.toolRequirements }}
- uses: actions/checkout@v3
- name: Install ghcup and bindist
run: .github/workflows/install-bindist.sh
bindist-install-mac-win:
name: Build non-linux
strategy:
fail-fast: false
matrix:
include:
- os: [self-hosted, macOS, ARM64]
- os: macos-11
- os: macos-12
- os: windows-latest
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- if: ${{ github.event_name == 'workflow_dispatch' }}
name: Install ghcup and bindist
run: .github/workflows/install-bindist.sh
bindist-install-arm:
name: Build ARM binary
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: [self-hosted, Linux, ARM64]
ARCH: ARM
- os: [self-hosted, Linux, ARM64]
ARCH: ARM64
steps:
- uses: docker://arm64v8/ubuntu:focal
name: Cleanup (aarch64 linux)
with:
args: "find . -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +"
- name: git config
run: |
git config --global --get-all safe.directory | grep '^\*$' || git config --global --add safe.directory "*"
shell: bash
- uses: actions/checkout@v3
- if: matrix.ARCH == 'ARM'
uses: docker://hasufell/arm32v7-ubuntu-haskell:focal
name: Run build (armv7 linux)
with:
args: sh -c '.github/workflows/install-bindist.sh'
- if: matrix.ARCH == 'ARM64'
uses: docker://hasufell/arm64v8-ubuntu-haskell:focal
name: Run build (aarch64 linux)
with:
args: sh -c '.github/workflows/install-bindist.sh'
bindist-install-freebsd:
name: Install FreeBSD binary
runs-on: [self-hosted, FreeBSD, X64]
steps:
- uses: actions/checkout@v3
- name: Run build
run: .github/workflows/install-bindist.sh
validate:
name: ghcup-gen check
runs-on: ubuntu-latest
env:
GHC: 9.2.8
CABAL: 3.10.1.0
steps:
- name: create ~/.local/bin
run: mkdir -p "$HOME/.local/bin"
shell: bash
- name: Add ~/.local/bin to PATH
run: echo "$HOME/.local/bin" >> $GITHUB_PATH
shell: bash
- name: install yamllint
run: pip install yamllint
- name: Update cabal cache
run: cabal update
shell: bash
- name: Install requirements
shell: sh
run: |
export DEBIAN_FRONTEND=noninteractive
export TZ=Asia/Singapore
sudo apt-get update && sudo apt-get install -y curl bash git gnupg libarchive-dev
- uses: actions/checkout@v3
- name: Cache Cabal
uses: actions/cache@v2
env:
cache-name: cache-cabal
with:
path: |
~/.cabal/store
~/.cabal/packages
key: v2-${{ runner.os }}-${{ env.GHC }}-${{ env.CABAL }}-build-${{ hashFiles('cabal.project') }}
restore-keys: |
v2-${{ runner.os }}-${{ env.GHC }}-${{ env.CABAL }}-build-${{ hashFiles('cabal.project') }}
v2-${{ runner.os }}-${{ env.GHC }}-${{ env.CABAL }}-build-
v2-${{ runner.os }}-${{ env.GHC }}
- name: Install ghcup-gen
run: |
ghcup run --cabal 3.10.1.0 --ghc 9.2.8 --install -- cabal install --installdir="$HOME/.local/bin" --overwrite-policy=always --install-method=copy ghcup-gen
shell: bash
- name: Check yaml
run: |
ghcup-gen -- check -f ${{ env.METADATA_FILE }} --channel ${{ env.CHANNEL }}
yamllint ${{ env.METADATA_FILE }}
python3 -c "import yaml ; stream = open('${{ env.METADATA_FILE }}', 'r') ; yaml.safe_load(stream)"
shell: bash
signature-test:
name: Test signatures
runs-on: ubuntu-latest
steps:
- name: Install requirements
shell: sh
run: |
sudo apt-get update && sudo apt-get install -y curl bash git gnupg
- uses: actions/checkout@v3
- name: Test signatures
run: .github/workflows/test-sigs.sh

30
.github/workflows/common.sh vendored Normal file
View File

@@ -0,0 +1,30 @@
#!/bin/bash
if [ "${RUNNER_OS}" = "Windows" ] ; then
ext=".exe"
else
ext=''
fi
echo_color() {
local color="$1"
local msg="$2"
echo -e "\033[${color}m${msg}\033[0m"
}
error() { echo_color "${RED}" "$1"; }
warn() { echo_color "${LT_BROWN}" "$1"; }
info() { echo_color "${LT_BLUE}" "$1"; }
fail() { error "error: $1"; exit 1; }
mktempdir() {
case "$(uname -s)" in
"Darwin"|"darwin")
mktemp -d -t hls_ci.XXXXXXX
;;
*)
mktemp -d
;;
esac
}

124
.github/workflows/install-bindist.sh vendored Executable file
View File

@@ -0,0 +1,124 @@
#!/usr/bin/env bash
set -x
set -eo pipefail
. .github/workflows/common.sh
export GHCUP_INSTALL_BASE_PREFIX=$RUNNER_TEMP/foobarbaz
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
source "$GHCUP_INSTALL_BASE_PREFIX"/.ghcup/env || source "$HOME/.bashrc"
ghcup --version
which ghcup | grep foobarbaz
ghcup_fun() {
ghcup -v --url-source="file:$METADATA_FILE" "$@"
}
case $TOOL in
ghcup)
ghcup_fun upgrade --force
;;
*) ghcup_fun install "$TOOL" --set "$VERSION"
;;
esac
mkdir -p /tmp/install-bindist-ci
cp "$METADATA_FILE" /tmp/install-bindist-ci/
cd /tmp/install-bindist-ci
trap 'rm -rf -- /tmp/install-bindist-ci' EXIT
cat <<EOF > main.hs
{- cabal:
build-depends: base
-}
main = print $ 1 + 1
EOF
case $TOOL in
ghcup)
ghcup_fun list
;;
hls)
ghcup_fun install cabal latest
ghcup_fun install ghc --set recommended
cabal update
test_package="bytestring-0.11.1.0"
test_module="Data/ByteString.hs"
create_cradle() {
echo "cradle:" > hie.yaml
echo " cabal:" >> hie.yaml
}
enter_test_package() {
local tmp_dir
tmp_dir=$(mktempdir)
cd "$tmp_dir"
cabal unpack "${test_package}"
cd "${test_package}"
cp "/tmp/install-bindist-ci/${METADATA_FILE}" .
}
# For all HLS GHC versions and the wrapper, run 'typecheck'
# over the $test_module
test_all_hls() {
local bin
local bin_noexe
local bindir
local hls
bindir=$1
for hls in "${bindir}/"haskell-language-server-* ; do
bin=${hls##*/}
bin_noexe=${bin/.exe/}
if ! [[ "${bin_noexe}" =~ "haskell-language-server-wrapper" ]] && ! [[ "${bin_noexe}" =~ "~" ]] && ! [[ "${bin_noexe}" =~ ".shim" ]] ; then
if ghcup_fun install ghc --set "${bin_noexe/haskell-language-server-/}" ; then
"${hls}" typecheck "${test_module}" || fail "failed to typecheck with HLS for GHC ${bin_noexe/haskell-language-server-/}"
else
fail "GHCup failed to install GHC ${bin_noexe/haskell-language-server-/}"
fi
ghcup_fun rm ghc "${bin_noexe/haskell-language-server-/}"
fi
done
"$bindir/haskell-language-server-wrapper${ext}" typecheck "${test_module}" || fail "failed to typecheck with HLS wrapper"
}
enter_test_package
create_cradle
case "$(uname -s)" in
MSYS_*|MINGW*)
test_all_hls "$(dirname "$(which ghcup)")"
;;
*)
test_all_hls "$(ghcup whereis bindir)"
;;
esac
;;
ghc)
ghc --version
ghc --info
ghc -prof main.hs
[[ $(./main +RTS -s) -eq 2 ]]
ghcup_fun install cabal recommended
cabal --version
cabal update
cabal install --lib --package-env=. clock
# https://github.com/haskell/ghcup-hs/issues/966
cabal install --lib --package-env=. hashable
;;
cabal)
ghcup_fun install ghc --set "$(ghcup_fun list -t ghc -r -c available | tail -1 | awk '{ print $2 }')"
cabal --version
cabal update
[[ $(cabal --verbose=0 run --enable-profiling ./main.hs -- +RTS -s) -eq 2 ]]
;;
*)
$TOOL --version
;;
esac

6
.github/workflows/sigs vendored Normal file
View File

@@ -0,0 +1,6 @@
keys=(
7D1E8AFD1D4A16D71FADA2F2CCC85C0E40C06A8C # Julian Ospald <maerwald@hasufell.de>
FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD # Ben Gamari <ben@well-typed.com>
88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4 # Zubin Duggal <zubin@well-typed.com>
EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF # Hécate <hecate@glitchbra.in>
)

27
.github/workflows/test-sigs.sh vendored Executable file
View File

@@ -0,0 +1,27 @@
#!/usr/bin/env bash
set -x
set -eo pipefail
. .github/workflows/common.sh
get_key() {
local key=$1
local server=$2
gpg --batch --keyserver "${server}" --recv-keys "${key}"
echo -e "${key}:6:" | gpg --import-ownertrust
}
# verify signature
. .github/workflows/sigs
for key in "${keys[@]}" ; do
get_key "${key}" keys.openpgp.org || get_key "${key}" keyserver.ubuntu.com
done
unset key
gpg --verify "${METADATA_FILE}.sig"
for f in ghcup-*.json ghcup-*.yaml hls-metadata-*.json ; do
gpg --verify "${f}.sig"
done

View File

@@ -2,16 +2,16 @@ name: Tests
on:
push:
branches: [ master ]
branches: [ master, develop ]
pull_request:
branches: [ master ]
branches: [ master, develop ]
jobs:
test:
name: Test metadata
runs-on: ${{ matrix.os }}
env:
YAML_VER: 0.0.6
YAML_VER: 0.0.7
strategy:
matrix:
ghc:
@@ -19,7 +19,7 @@ jobs:
cabal:
- '3.6.2.0'
os:
- ubuntu-latest
- ubuntu-22.04
steps:
- name: Checkout code
uses: actions/checkout@v2
@@ -51,18 +51,30 @@ jobs:
run: echo "$HOME/.local/bin" >> $GITHUB_PATH
shell: bash
- name: install yamllint
run: pip install yamllint
- name: Update cabal cache
run: cabal update
shell: bash
- name: Install some deps
run: |
export DEBIAN_FRONTEND=noninteractive
export TZ=Asia/Singapore
sudo apt install -y libarchive-dev
shell: bash
- name: Install ghcup-gen
run: |
cabal install --installdir="$HOME/.local/bin" --overwrite-policy=always --install-method=copy ghcup-gen
shell: bash
- name: Check
- name: Check yaml
run: |
ghcup-gen -- check -f ghcup-${{ env.YAML_VER }}.yaml
yamllint ghcup-${{ env.YAML_VER }}.yaml
python3 -c "import yaml ; stream = open('ghcup-${{ env.YAML_VER }}.yaml', 'r') ; yaml.safe_load(stream)"
shell: bash
- name: Check tarballs

4
.gitignore vendored
View File

@@ -12,6 +12,6 @@ tags
TAGS
/tmp/
.entangled
release/
releases/
/release/
/releases/
site/

5
.yamllint Normal file
View File

@@ -0,0 +1,5 @@
extends: default
rules:
line-length: disable
indentation: disable

View File

@@ -1,12 +1,62 @@
# GHCup metadata
## Adding a new GHC version
## For end users
### Metadata variants (distribution channels)
* `ghcup-A.B.C.yaml`: this is the main metadata and what ghcup uses by default
* `ghcup-vanilla-A.B.C.yaml`: this is similar to `ghcup-A.B.C.yaml`, but only uses upstream bindists (no patches/fixes are applied, no missing platforms added)
* `ghcup-prereleases-A.B.C.yaml`: this contains pre-releases of all tools
* `ghcup-cross-A.B.C.yaml`: this contains experimental cross compilers. See https://www.haskell.org/ghcup/guide/#cross-support for details.
### Using the metadata
If you want access to both pre-releases and cross compilers, run:
```
ghcup config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml
ghcup config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-cross-0.0.8.yaml
```
If you want **only** vanilla upstream bindists and opt out of all unofficial stuff, you'd run:
```sh
ghcup config set url-source https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-vanilla-0.0.8.yaml
```
Also check the [config.yaml documentation](https://github.com/haskell/ghcup-hs/blob/master/data/config.yaml).
## For contributors
### Adding a new GHC version
1. open the latest `ghcup-<yaml-ver>.yaml`
2. find the latest ghc version (in yaml tree e.g. `ghcupDownloads -> GHC -> 8.10.7`)
3. copy-paste it
4. adjust the version, tags, changelog, source url
5. adjust the various bindist urls (make sure to also change the yaml anchors)
6. run `cabal run ghcup-gen -- check -f ghcup-<yaml-ver>.yaml`
7. run `cabal run ghcup-gen -- check-tarballs -f ghcup-<yaml-ver>.yaml -u 'ghc-8\.10\.8'`
6. run `cabal run ghcup-gen -- check -f ghcup-<yaml-ver>.yaml`
7. run `cabal run ghcup-gen -- check-tarballs -f ghcup-<yaml-ver>.yaml -u 'ghc-8\.10\.8'`
8. run `cabal run ghcup-gen -- generate-hls-ghcs -f ghcup-<yaml-ver>.yaml --format json -o hls-metadata-0.0.1.json`
9. run `cabal run ghcup-gen -- generate-table -f ghcup-<yaml-ver>.yaml --stdout` and adjust [docs/install](https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/docs/install.md) tables
### During a pull request
* make sure to always add new versions to both `ghcup-A.B.C.yaml` and `ghcup-vanilla-A.B.C.yaml`
* make sure to run the bindist action to check tool installation on all platforms: https://github.com/haskell/ghcup-metadata/actions/workflows/bindists.yaml
- this is a manual pipeline
- set the appropriate parameters
* make sure to sign the yaml files you edited, e.g.: `gpg --detach-sign -u <your-email> ghcup-0.0.7.yaml` or ask a GHCup developer to sign
- PGP pubkeys need to be cross-signed by the GHCup team
- they need to be added to the CI: https://github.com/haskell/ghcup-metadata/blob/develop/.github/workflows/sigs
- and need to be documented on the homepage
* https://github.com/haskell/ghcup-hs/blob/master/docs/guide.md#gpg-verification
* https://github.com/haskell/ghcup-hs/blob/master/docs/install.md#unix
### Understanding tags
Tags are documented [here](https://github.com/haskell/ghcup-hs/blob/master/lib/GHCup/Types.hs). Search for `data Tag`.
Some tags are unique. Uniqueness is checked by `cabal run ghcup-gen -- check -f ghcup-<yaml-ver>.yaml`.
If you want to check prereleases, do: `cabal run ghcup-gen -- check -f ghcup-prereleases-<yaml-ver>.yaml --channel=prerelease`

View File

@@ -2,19 +2,18 @@ packages: ./ghcup-gen/ghcup-gen.cabal
package ghcup
tests: False
flags: -tui +no-exe
flags: +tui +no-exe
source-repository-package
type: git
location: https://gitlab.haskell.org/haskell/ghcup-hs.git
tag: v0.1.17.4
location: https://github.com/haskell/ghcup-hs.git
tag: b1106985ec1173a0122f2781719e9bb1a85de257
constraints: http-io-streams -brotli,
any.Cabal ==3.6.2.0,
any.aeson >= 2.0.1.0
package libarchive
flags: -system-libarchive
flags: +system-libarchive
package aeson-pretty
flags: +lib-only
@@ -25,5 +24,5 @@ package cabal-plan
package aeson
flags: +ordered-keymap
allow-newer: base, ghc-prim, template-haskell, language-c
package streamly
flags: +use-unliftio

View File

@@ -2132,43 +2132,39 @@
}
},
"GHCup": {
"0.1.17.5": {
"0.1.19.0": {
"viTags": [
"Recommended",
"Latest"
],
"viChangeLog": "https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md",
"viChangeLog": "https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md",
"viSourceDL": null,
"viArch": {
"A_64": {
"Linux_UnknownLinux": {
"unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5",
"dlSubdir": null,
"dlHash": "7541bcf0b402f99d05cd1937f9fef69aec45c3153e42606671825be248484fb5"
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0",
"dlHash": "33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12"
}
},
"Darwin": {
"unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-apple-darwin-ghcup-0.1.17.5",
"dlSubdir": null,
"dlHash": "8b5159775de08a5f268f4be217fbb6f427ff8d8977197af209211b81ca0fe27f"
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0",
"dlHash": "416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7"
}
},
"FreeBSD": {
"unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-freebsd12-ghcup-0.1.17.5",
"dlSubdir": null,
"dlHash": "babb7366abb17bcb5d4fc1500039040f1b957073d618db3f1473b0bae6abc6bb"
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0",
"dlHash": "dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62"
}
}
},
"A_32": {
"Linux_UnknownLinux": {
"unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.17.5/i386-linux-ghcup-0.1.17.5",
"dlSubdir": null,
"dlHash": "5a2b1d2ceb32857866689ee1a1e29c5747333882a4e952d80eccf49482d3daab"
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0",
"dlHash": "0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53"
}
}
}

Binary file not shown.

View File

@@ -2674,51 +2674,51 @@
}
},
"GHCup": {
"0.1.16.2": {
"0.1.19.0": {
"viTags": [
"Recommended",
"Latest"
],
"viChangeLog": "https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md",
"viChangeLog": "https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md",
"viSourceDL": null,
"viArch": {
"A_64": {
"Linux_UnknownLinux": {
"unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2",
"dlHash": "d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893"
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0",
"dlHash": "33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12"
}
},
"Darwin": {
"unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-apple-darwin-ghcup-0.1.16.2",
"dlHash": "a334620ccce7705211b2142882dde544003e6030af4b91a44c890542a90f879f"
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0",
"dlHash": "416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7"
}
},
"FreeBSD": {
"unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-portbld-freebsd-ghcup-0.1.16.2",
"dlHash": "92359592a5694375e53b22628920086bf4bbf0faff5be018a0ed3e745a6426a9"
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0",
"dlHash": "dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62"
}
},
"Linux_Alpine": {
"unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2",
"dlHash": "d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893"
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0",
"dlHash": "33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12"
}
}
},
"A_32": {
"Linux_UnknownLinux": {
"unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/i386-linux-ghcup-0.1.16.2",
"dlHash": "01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38"
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0",
"dlHash": "0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53"
}
},
"Linux_Alpine": {
"unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/i386-linux-ghcup-0.1.16.2",
"dlHash": "01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38"
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0",
"dlHash": "0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53"
}
}
}

Binary file not shown.

View File

@@ -1384,32 +1384,32 @@ ghcupDownloads:
dlUri: https://oleg.fi/cabal-install-3.4.0.0-rc4/cabal-install-3.4.0.0-x86_64-freebsd-12.1-release.tar.xz
dlHash: 9705e16d03497b46be4ad477e6c64d10890af853eafa8a9adf6dba89aa9e05f7
GHCup:
0.1.17.5:
0.1.19.0:
viTags:
- Recommended
- Latest
viChangeLog: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md
viChangeLog: https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md
viSourceDL:
viArch:
A_64:
Linux_UnknownLinux:
unknown_versioning: &ghcup-64
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5
dlHash: 7541bcf0b402f99d05cd1937f9fef69aec45c3153e42606671825be248484fb5
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-apple-darwin-ghcup-0.1.17.5
dlHash: 8b5159775de08a5f268f4be217fbb6f427ff8d8977197af209211b81ca0fe27f
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
FreeBSD:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-freebsd12-ghcup-0.1.17.5
dlHash: babb7366abb17bcb5d4fc1500039040f1b957073d618db3f1473b0bae6abc6bb
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
Linux_Alpine:
unknown_versioning: *ghcup-64
A_32:
Linux_UnknownLinux:
unknown_versioning: &ghcup-32
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/i386-linux-ghcup-0.1.17.5
dlHash: 5a2b1d2ceb32857866689ee1a1e29c5747333882a4e952d80eccf49482d3daab
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
Linux_Alpine:
unknown_versioning: *ghcup-32

Binary file not shown.

View File

@@ -1451,33 +1451,33 @@ ghcupDownloads:
dlUri: https://oleg.fi/cabal-install-3.4.0.0-rc4/cabal-install-3.4.0.0-x86_64-freebsd-12.1-release.tar.xz
dlHash: 9705e16d03497b46be4ad477e6c64d10890af853eafa8a9adf6dba89aa9e05f7
GHCup:
0.1.17.5:
0.1.19.0:
viTags:
- Recommended
- Latest
viChangeLog: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md
viChangeLog: https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md
viSourceDL:
viArch:
A_64:
Linux_UnknownLinux:
unknown_versioning: &ghcup-64
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5
dlHash: 7541bcf0b402f99d05cd1937f9fef69aec45c3153e42606671825be248484fb5
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-apple-darwin-ghcup-0.1.17.5
dlHash: 8b5159775de08a5f268f4be217fbb6f427ff8d8977197af209211b81ca0fe27f
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
FreeBSD:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-freebsd12-ghcup-0.1.17.5
dlHash: babb7366abb17bcb5d4fc1500039040f1b957073d618db3f1473b0bae6abc6bb
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
Linux_Alpine:
unknown_versioning: *ghcup-64
A_32:
Linux_UnknownLinux:
unknown_versioning: &ghcup-32
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/i386-linux-ghcup-0.1.17.5
dlHash: 5a2b1d2ceb32857866689ee1a1e29c5747333882a4e952d80eccf49482d3daab
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
Linux_Alpine:
unknown_versioning: *ghcup-32
HLS:

Binary file not shown.

Binary file not shown.

View File

@@ -1868,49 +1868,49 @@ ghcupDownloads:
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.4.0.0/cabal-install-3.4.0.0-armv7-linux-bootstrapped.tar.xz
dlHash: 16c0d1eaba24bed14f3e152970179a45d9f9bb5cc839b2c210ad06eb7d4826ed
GHCup:
0.1.17.5:
0.1.19.0:
viTags:
- Recommended
- Latest
viChangeLog: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md
viChangeLog: https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md
viSourceDL:
viArch:
A_64:
Linux_UnknownLinux:
unknown_versioning: &ghcup-64
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5
dlHash: 7541bcf0b402f99d05cd1937f9fef69aec45c3153e42606671825be248484fb5
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-apple-darwin-ghcup-0.1.17.5
dlHash: 8b5159775de08a5f268f4be217fbb6f427ff8d8977197af209211b81ca0fe27f
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
FreeBSD:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-freebsd12-ghcup-0.1.17.5
dlHash: babb7366abb17bcb5d4fc1500039040f1b957073d618db3f1473b0bae6abc6bb
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
Linux_Alpine:
unknown_versioning: *ghcup-64
A_32:
Linux_UnknownLinux:
unknown_versioning: &ghcup-32
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/i386-linux-ghcup-0.1.17.5
dlHash: 5a2b1d2ceb32857866689ee1a1e29c5747333882a4e952d80eccf49482d3daab
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
Linux_Alpine:
unknown_versioning: *ghcup-32
A_ARM64:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/aarch64-linux-ghcup-0.1.17.5
dlHash: 35899ab2338b52fac84d49f16edbbb7701498e93ee8012309c7d6f2f138bb993
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-linux-ghcup-0.1.19.0
dlHash: a546dcd23a7e56f31bc4d6afad0276f88d3f0b850a3d3c36369721797dc3c3d5
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/aarch64-apple-darwin-ghcup-0.1.17.5-2
dlHash: 54238c1db6f4101664b91190067549b8b13b250fd24eac1474b7b2c185222c73
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-apple-darwin-ghcup-0.1.19.0
dlHash: 69bd8e37cd07606d928dca9215c066564a264e0def3c81171b76d5747dc6507c
A_ARM:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/armv7-linux-ghcup-0.1.17.5
dlHash: e342532e29f592c8ef2f85645fb304d090e34523e6bac91c62e048a8483269f5
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/armv7-linux-ghcup-0.1.19.0
dlHash: 58a170c1fb0b4e701ebb40f90a23f6ababe9e61291726aad82e18d4649aed908
HLS:
1.1.0:
viTags:

Binary file not shown.

View File

@@ -2025,53 +2025,53 @@ ghcupDownloads:
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.4.0.0/cabal-install-3.4.0.0-armv7-linux-bootstrapped.tar.xz
dlHash: 16c0d1eaba24bed14f3e152970179a45d9f9bb5cc839b2c210ad06eb7d4826ed
GHCup:
0.1.17.5:
0.1.19.0:
viTags:
- Recommended
- Latest
viChangeLog: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md
viChangeLog: https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md
viSourceDL:
viArch:
A_64:
Linux_UnknownLinux:
unknown_versioning: &ghcup-64
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5
dlHash: 7541bcf0b402f99d05cd1937f9fef69aec45c3153e42606671825be248484fb5
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-apple-darwin-ghcup-0.1.17.5
dlHash: 8b5159775de08a5f268f4be217fbb6f427ff8d8977197af209211b81ca0fe27f
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
FreeBSD:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-freebsd12-ghcup-0.1.17.5
dlHash: babb7366abb17bcb5d4fc1500039040f1b957073d618db3f1473b0bae6abc6bb
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
Windows:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-mingw64-ghcup-0.1.17.5.exe
dlHash: 7a6f0264c097044ede7d4208e153cf9fc6e06e49525e237dc32e2abd87ad3430
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-mingw64-ghcup-0.1.19.0.exe
dlHash: c4e4a764b0844e351eb6939ff236452f33c34808aaca69f973ea82e18d3aa1ac
Linux_Alpine:
unknown_versioning: *ghcup-64
A_32:
Linux_UnknownLinux:
unknown_versioning: &ghcup-32
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/i386-linux-ghcup-0.1.17.5
dlHash: 5a2b1d2ceb32857866689ee1a1e29c5747333882a4e952d80eccf49482d3daab
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
Linux_Alpine:
unknown_versioning: *ghcup-32
A_ARM64:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/aarch64-linux-ghcup-0.1.17.5
dlHash: 35899ab2338b52fac84d49f16edbbb7701498e93ee8012309c7d6f2f138bb993
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-linux-ghcup-0.1.19.0
dlHash: a546dcd23a7e56f31bc4d6afad0276f88d3f0b850a3d3c36369721797dc3c3d5
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/aarch64-apple-darwin-ghcup-0.1.17.5-2
dlHash: 54238c1db6f4101664b91190067549b8b13b250fd24eac1474b7b2c185222c73
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-apple-darwin-ghcup-0.1.19.0
dlHash: 69bd8e37cd07606d928dca9215c066564a264e0def3c81171b76d5747dc6507c
A_ARM:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/armv7-linux-ghcup-0.1.17.5
dlHash: e342532e29f592c8ef2f85645fb304d090e34523e6bac91c62e048a8483269f5
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/armv7-linux-ghcup-0.1.19.0
dlHash: 58a170c1fb0b4e701ebb40f90a23f6ababe9e61291726aad82e18d4649aed908
HLS:
1.1.0:
viTags: []

Binary file not shown.

View File

@@ -2089,7 +2089,7 @@ ghcupDownloads:
dlHash: b1fcab17fe48326d2ff302d70c12bc4cf4d570dfbbce68ab57c719cfec882b05
9.2.1:
viTags:
- Latest
- old
- base-4.16.0.0
viChangeLog: https://downloads.haskell.org/~ghc/9.2.1/docs/html/users_guide/index.html
viSourceDL:
@@ -2121,11 +2121,11 @@ ghcupDownloads:
'( >= 27 && < 28 )': *ghc-921-64-fedora
unknown_versioning: *ghc-921-64-fedora
Linux_CentOS:
'( >= 7 && < 8 )': &ghc-922-64-centos
'( >= 7 && < 8 )': &ghc-921-64-centos
dlUri: https://downloads.haskell.org/~ghc/9.2.1/ghc-9.2.1-x86_64-centos7-linux.tar.xz
dlSubdir: ghc-9.2.1
dlHash: 4b67324507f5d14c23db3ed83c57f4e25d877e97d2b93cfe8e1a9fdf65e4efa1
unknown_versioning: *ghc-922-64-centos
unknown_versioning: *ghc-921-64-centos
Linux_UnknownLinux:
unknown_versioning: *ghc-921-64-fedora
Darwin:
@@ -2178,6 +2178,86 @@ ghcupDownloads:
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/9.2.1/ghc-9.2.1-armv7-linux-deb10.tar.xz
dlSubdir: ghc-9.2.1
dlHash: 3bde9deeb6969ff0f5aea566d2602edc57f5f3ca158b4c03f039c44d8c51ea0f
9.2.2:
viTags:
- Latest
- base-4.16.1.0
viChangeLog: https://downloads.haskell.org/~ghc/9.2.2/docs/html/users_guide/index.html
viSourceDL:
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-src.tar.xz
dlSubdir: ghc-9.2.2
dlHash: 902463a4cc6ee479af9358b9f8b2ee3237b03e934a1ea65b6d1fcf3e0d749ea6
viPostRemove: *ghc-post-remove
viArch:
A_64:
Linux_Debian:
'< 10': &ghc-922-64-deb9
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-x86_64-deb9-linux.tar.xz
dlSubdir: ghc-9.2.2
dlHash: 91052766a8bec6a1a8529eda9ff587ce821a071cf52705e1b8caa3d38d3913f4
'>= 10': &ghc-922-64-deb10
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-x86_64-deb10-linux.tar.xz
dlSubdir: ghc-9.2.2
dlHash: fb61dea556a2023dc2d50ee61a22144bb23e4229a378e533065124c218f40cfc
unknown_versioning: *ghc-922-64-deb10
Linux_Ubuntu:
unknown_versioning: &ghc-922-64-fedora
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-x86_64-fedora27-linux.tar.xz
dlSubdir: ghc-9.2.2
dlHash: eab2b4e3ca99eb7cc81aa3136e9e0b245ba6b3e9057f02a2d289fbf60856eb10
'( >= 16 && < 19 )': *ghc-922-64-deb9
Linux_Mint:
unknown_versioning: *ghc-922-64-deb10
Linux_Fedora:
'( >= 27 && < 28 )': *ghc-922-64-fedora
unknown_versioning: *ghc-922-64-fedora
Linux_CentOS:
'( >= 7 && < 8 )': &ghc-922-64-centos
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-x86_64-centos7-linux.tar.xz
dlSubdir: ghc-9.2.2
dlHash: 5100aa7dea87aaf2ed596be83c93165d7199492f6db431d874fcfa07e8ac76ab
unknown_versioning: *ghc-922-64-centos
Linux_UnknownLinux:
unknown_versioning: *ghc-922-64-fedora
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-x86_64-apple-darwin.tar.xz
dlSubdir: ghc-9.2.2-x86_64-apple-darwin
dlHash: 934abbd6083d3aeb5ff081955682d7711d9e79db57b1613eb229c325dd06f83f
Windows:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-x86_64-unknown-mingw32.zip
dlSubdir: ghc-9.2.2-x86_64-unknown-mingw32
dlHash: 5ca4b69e74e62ed57b737949fa8c4e991c24703f1477521f842a6297d36dab10
Linux_Alpine:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-x86_64-alpine3.12-linux-gmp.tar.xz
dlSubdir: ghc-9.2.2-x86_64-unknown-linux
dlHash: 624523826e24eae33c03490267cddecc1d80c047f2a3f4b03580f1040112d5c0
A_32:
Linux_Debian:
'< 10': &ghc-922-32-deb9
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-i386-deb9-linux.tar.xz
dlSubdir: ghc-9.2.2
dlHash: 24234486ed4508161c6f88f4750a36d38b135b0c6e5fe78efe2d85c612ecaf9e
unknown_versioning: *ghc-922-32-deb9
Linux_Ubuntu:
unknown_versioning: *ghc-922-32-deb9
Linux_Mint:
unknown_versioning: *ghc-922-32-deb9
Linux_UnknownLinux:
unknown_versioning: *ghc-922-32-deb9
A_ARM64:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-aarch64-deb10-linux.tar.xz
dlSubdir: ghc-9.2.2
dlHash: f3621ccba7ae48fcd67a9505f61bb5ccfb05c4cbfecd5a6ea65fe3f150af0e98
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-aarch64-apple-darwin.tar.xz
dlSubdir: ghc-9.2.2-aarch64-apple-darwin
dlHash: d1f04f7cc062ed134f863305c67dfe2c42df46ed658dd34f9dd552186f194e5c
Cabal:
2.4.1.0:
viTags:
@@ -2489,56 +2569,53 @@ ghcupDownloads:
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.6.2.0/cabal-install-3.6.2.0-armv7-linux-deb10.tar.xz
dlHash: 694ba7c14f8d720c6e790ab0488dbff2d8a07d9c6de97b4deeba31088f825bc2
GHCup:
0.1.17.5:
0.1.19.0:
viTags:
- Recommended
- Latest
viChangeLog: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md
viChangeLog: https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md
viSourceDL:
viArch:
A_64:
Linux_UnknownLinux:
unknown_versioning: &ghcup-64
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5
dlHash: 7541bcf0b402f99d05cd1937f9fef69aec45c3153e42606671825be248484fb5
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-apple-darwin-ghcup-0.1.17.5
dlHash: 8b5159775de08a5f268f4be217fbb6f427ff8d8977197af209211b81ca0fe27f
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
FreeBSD:
'( >= 12 && < 13 )':
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-freebsd12-ghcup-0.1.17.5
dlHash: babb7366abb17bcb5d4fc1500039040f1b957073d618db3f1473b0bae6abc6bb
'( >= 13 )':
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-freebsd13-ghcup-0.1.17.5
dlHash: fccffae46e8e7a97ac49ce1a6b1174ee11f58603da9345becd8021baa4439bb9
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
Windows:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-mingw64-ghcup-0.1.17.5.exe
dlHash: 7a6f0264c097044ede7d4208e153cf9fc6e06e49525e237dc32e2abd87ad3430
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-mingw64-ghcup-0.1.19.0.exe
dlHash: c4e4a764b0844e351eb6939ff236452f33c34808aaca69f973ea82e18d3aa1ac
Linux_Alpine:
unknown_versioning: *ghcup-64
A_32:
Linux_UnknownLinux:
unknown_versioning: &ghcup-32
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/i386-linux-ghcup-0.1.17.5
dlHash: 5a2b1d2ceb32857866689ee1a1e29c5747333882a4e952d80eccf49482d3daab
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
Linux_Alpine:
unknown_versioning: *ghcup-32
A_ARM64:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/aarch64-linux-ghcup-0.1.17.5
dlHash: 35899ab2338b52fac84d49f16edbbb7701498e93ee8012309c7d6f2f138bb993
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-linux-ghcup-0.1.19.0
dlHash: a546dcd23a7e56f31bc4d6afad0276f88d3f0b850a3d3c36369721797dc3c3d5
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/aarch64-apple-darwin-ghcup-0.1.17.5-2
dlHash: 54238c1db6f4101664b91190067549b8b13b250fd24eac1474b7b2c185222c73
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-apple-darwin-ghcup-0.1.19.0
dlHash: 69bd8e37cd07606d928dca9215c066564a264e0def3c81171b76d5747dc6507c
A_ARM:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/armv7-linux-ghcup-0.1.17.5
dlHash: e342532e29f592c8ef2f85645fb304d090e34523e6bac91c62e048a8483269f5
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/armv7-linux-ghcup-0.1.19.0
dlHash: 58a170c1fb0b4e701ebb40f90a23f6ababe9e61291726aad82e18d4649aed908
HLS:
1.1.0:
viTags:
@@ -2899,9 +2976,7 @@ ghcupDownloads:
Linux_Alpine:
unknown_versioning: *stack-271-64
2.7.3:
viTags:
- Latest
- Recommended
viTags: []
viChangeLog: https://github.com/commercialhaskell/stack/blob/master/ChangeLog.md#v273
viPostInstall: *stack-post
viArch:
@@ -2951,4 +3026,56 @@ ghcupDownloads:
unknown_versioning:
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.7.3/stack-2.7.3-linux-armv7.tar.gz
dlHash: 3e22c66ea38525ca2ee5b0d222c8aa193c50152a53ff2c80ae179a40592512fe
2.7.5:
viTags:
- Latest
- Recommended
viChangeLog: https://github.com/commercialhaskell/stack/blob/master/ChangeLog.md#v275
viPostInstall: *stack-post
viArch:
A_64:
Linux_UnknownLinux:
unknown_versioning: &stack-275-64
dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.7.5/stack-2.7.5-linux-x86_64-static.tar.gz
dlHash: 2a02fefefcc1758033d0aea566a521a290e3c68739ce9894bd6492a346af79c5
dlSubdir:
RegexDir: "stack-.*"
Darwin:
unknown_versioning:
dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.7.5/stack-2.7.5-osx-x86_64.tar.gz
dlHash: 94176b71425d76b94b088515103316ae1ff96d123344b1f4609c103d0d5bdcc4
dlSubdir:
RegexDir: "stack-.*"
Windows:
unknown_versioning:
dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.7.5/stack-2.7.5-windows-x86_64.tar.gz
dlHash: c9b07982590d63db2310a44bfcf33c9f8bd84a0828abc17b2a394e90fbf6a914
dlSubdir:
RegexDir: "stack-.*"
FreeBSD:
'>= 12':
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.7.5/stack-2.7.5-freebsd-x86_64.tar.gz
dlHash: fceb15b22d3dbd8d25cb84ad66a2eb71a5034f7e2c47a74f25141994feee7c36
Linux_Alpine:
unknown_versioning: *stack-275-64
A_32:
Linux_UnknownLinux:
unknown_versioning: &stack-275-32
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.7.5/stack-2.7.5-linux-i386.tar.gz
dlHash: a679eaebe627444fe17fc794ddfb3fe9ee4281a4e9e9137cb04318873e23a2f6
Linux_Alpine:
unknown_versioning: *stack-275-32
A_ARM64:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.7.5/stack-2.7.5-linux-aarch64.tar.gz
dlHash: f362fa4786b17252004b2619ec96b9687e561dc4e55c2612c53d60be767cabba
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.7.5/stack-2.7.5-osx-aarch64.tar.gz
dlHash: cea34367981ed6f5629d23d17957920b1a06cc0a00580ba62e960a64087f25fe
A_ARM:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.7.5/stack-2.7.5-linux-armv7.tar.gz
dlHash: 8be2342deea5309a32e28a0c5eb341ea9557401f08484676036471250ca12e21

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

6864
ghcup-0.0.8.yaml Normal file

File diff suppressed because it is too large Load Diff

BIN
ghcup-0.0.8.yaml.sig Normal file

Binary file not shown.

56
ghcup-cross-0.0.8.yaml Normal file
View File

@@ -0,0 +1,56 @@
---
globalTools:
ShimGen:
dlUri: https://downloads.haskell.org/~ghcup/shimgen/shim-2.exe
dlHash: 7c55e201f71860c5babea886007c8fa44b861abf50d1c07e5677eb0bda387a70
toolRequirements: {}
ghcupDownloads:
GHC:
javascript-unknown-ghcjs-9.6.2:
viTags:
- base-4.18.0.0
viArch:
A_64:
Linux_UnknownLinux:
unknown_versioning:
dlHash: 4e12b602869206830eef1aa6a17a5a00fa887d6c98c3a552269c418ee7f736f8
dlSubdir: ghc-9.6.2-javascript-unknown-ghcjs
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/javascript-unknown-ghcjs-9.6.2/ghc-javascript-unknown-ghcjs-9.6.2-x86_64-linux-unknown.tar.xz
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/javascript-unknown-ghcjs-9.6.2/ghc-javascript-unknown-ghcjs-9.6.2-x86_64-apple-darwin.tar.xz
dlHash: dddb0ee68857a79e67a52c4ab9b7230023a8684a5e826e9afbb9c5820abf47e1
dlSubdir: ghc-9.6.2-javascript-unknown-ghcjs
A_ARM64:
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/javascript-unknown-ghcjs-9.6.2/ghc-javascript-unknown-ghcjs-9.6.2-aarch64-apple-darwin.tar.xz
dlHash: 0d65bb3940a820d95b4b33ea0cd61bf39670d48c4d8f747153ded01a7ef34821
dlSubdir: ghc-9.6.2-javascript-unknown-ghcjs
wasm32-wasi-9.6.3.20230927:
viTags:
- base-4.18.1.0
viArch:
A_64:
Linux_UnknownLinux:
unknown_versioning: &ghc-wasm32-wasi-963-64-static
dlHash: 2e1d363320c03e35fd9048a252a0cfed8f7b87da76c063c7fc52122c390f42c3
dlSubdir: ghc-9.6.3.20230927-wasm32-wasi
dlUri: https://github.com/amesgen/ghc-wasm-bindists/releases/download/20231001T201511/wasm32-wasi-ghc-9.6.tar.xz
dlOutput: ghc-9.6.3.20230927-x86_64-linux-alpine3_12-cross_wasm32-wasi-release+fully_static.tar.xz
Linux_Alpine:
unknown_versioning: *ghc-wasm32-wasi-963-64-static
wasm32-wasi-9.8.0.20230927:
viTags:
- base-4.19.0.0
viArch:
A_64:
Linux_UnknownLinux:
unknown_versioning: &ghc-wasm32-wasi-980-64-static
dlHash: bad3393b6eba103230c62f050ffd9d458916c6238e5d5fa031d3eee5d995305a
dlSubdir: ghc-9.8.0.20230927-wasm32-wasi
dlUri: https://github.com/amesgen/ghc-wasm-bindists/releases/download/20231001T201511/wasm32-wasi-ghc-9.8.tar.xz
dlOutput: ghc-9.8.0.20230927-x86_64-linux-alpine3_12-cross_wasm32-wasi-release+fully_static.tar.xz
Linux_Alpine:
unknown_versioning: *ghc-wasm32-wasi-980-64-static

BIN
ghcup-cross-0.0.8.yaml.sig Normal file

Binary file not shown.

View File

@@ -6,76 +6,81 @@
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE ViewPatterns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE LambdaCase #-}
module Generate where
import GHCup
import GHCup.Download
import GHCup.Requirements
import GHCup.Errors
import GHCup.Types
import GHCup.Types.Optics
import GHCup.Utils
import GHCup.Utils.Logger
import GHCup.Utils.Version.QQ
import Codec.Archive
import Control.Applicative
import Control.Exception.Safe
import Control.DeepSeq
import Control.Exception ( evaluate )
import Control.Exception.Safe hiding ( handle )
import Control.Monad
import Control.Monad.IO.Class
import Control.Monad.Reader.Class
import Control.Monad.Trans.Class ( lift )
import Control.Monad.Trans.Reader ( runReaderT )
import Control.Monad.Trans.Resource ( runResourceT
, MonadUnliftIO
)
import Data.Containers.ListUtils ( nubOrd )
import qualified Data.Aeson.Encode.Pretty as Aeson
import Data.ByteString ( ByteString )
import Data.IORef
import Data.Either
import Data.Maybe
import Data.List
import Data.Map.Strict ( Map )
import Data.Versions
import Haskus.Utils.Variant.Excepts
import Optics
import System.FilePath
import System.Exit
import Text.ParserCombinators.ReadP
import Text.PrettyPrint.HughesPJClass ( prettyShow )
import System.FilePath
import System.IO
import Text.Regex.Posix
import GHCup.Utils.String.QQ
import GHCup.Prelude.String.QQ
import qualified Data.ByteString as BS
import qualified Data.ByteString.Lazy as BSL
import qualified Data.Map.Strict as M
import qualified Data.Text as T
import qualified Data.Version as V
import qualified Data.Yaml.Pretty as YAML
import qualified Text.Megaparsec as MP
import Data.Bifoldable (bifoldMap)
import Data.Foldable (traverse_)
import Data.Text (Text)
import Text.PrettyPrint.HughesPJClass (pPrint)
data GhcHlsVersions = GhcHlsVersions {
data Format = FormatJSON
| FormatYAML
}
data Output
= FileOutput FilePath -- optsparse-applicative doesn't handle ByteString correctly anyway
| StdOut
type HlsGhcVersions = Map Version (Map Architecture (Map Platform Version))
generate :: ( MonadFail m
, MonadMask m
, Monad m
, MonadReader env m
, HasSettings env
, HasDirs env
, HasLog env
, MonadThrow m
, MonadIO m
, MonadUnliftIO m
)
=> GHCupDownloads
-> M.Map GlobalTool DownloadInfo
-> m ExitCode
generate dls _ = do
generateHLSGhc :: ( MonadFail m
, MonadMask m
, Monad m
, MonadReader env m
, HasSettings env
, HasDirs env
, HasLog env
, MonadThrow m
, MonadIO m
, MonadUnliftIO m
, HasGHCupInfo env
)
=> Format
-> Output
-> m ExitCode
generateHLSGhc format output = do
GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo
let hlses = dls M.! HLS
r <- forM hlses $ \(_viArch -> archs) ->
forM archs $ \plats ->
@@ -86,16 +91,197 @@ generate dls _ = do
, DownloadFailed
, UnknownArchive
, ArchiveResult
, ContentLengthError
] $ do
fp <- liftE $ downloadCached dli Nothing
files <- liftE $ getArchiveFiles fp
let regex = makeRegexOpts compExtended execBlank ([s|^haskell-language-server-([0-9]+\.)*([0-9]+)$|] :: ByteString)
let ghcs = rights $ MP.parse version' ""
. T.pack
. fromJust
. stripPrefix "haskell-language-server-"
<$> filter (match regex) files
pure ghcs
pure r
liftIO $ BS.putStr $ YAML.encodePretty YAML.defConfig r
let subd = _dlSubdir dli
filesL <- liftE $ getArchiveFiles fp
files <- liftIO $ evaluate $ force filesL
case subd of
Just (RealDir d)
| d </> "GNUmakefile" `elem` files
-> do let regex = makeRegexOpts compExtended execBlank ([s|^haskell-language-server-([0-9]+\.)*([0-9]+)(\.in)$|] :: ByteString)
pure (rights $ MP.parse version' ""
. T.pack
. fromJust
. stripPrefix "haskell-language-server-"
. stripIn
<$> filter (match regex) (fromJust . stripPrefix (d <> "/") <$> files)
)
_ -> do let regex = makeRegexOpts compExtended execBlank ([s|^haskell-language-server-([0-9]+\.)*([0-9]+)(\.exe)?$|] :: ByteString)
pure (rights $ MP.parse version' ""
. T.pack
. fromJust
. stripPrefix "haskell-language-server-"
. stripExe
<$> filter (match regex) files
)
pure (sort r)
let w = case format of
FormatYAML -> BSL.fromStrict $ YAML.encodePretty YAML.defConfig r
FormatJSON -> Aeson.encodePretty r
case output of
StdOut -> liftIO $ BSL.putStr w
FileOutput f -> liftIO $ BSL.writeFile f w
pure ExitSuccess
where
stripExe :: String -> String
stripExe f = case reverse f of
('e':'x':'e':'.':r) -> reverse r
_ -> f
stripIn :: String -> String
stripIn f = case reverse f of
('n':'i':'.':r) -> reverse r
_ -> f
generateTable :: ( MonadFail m
, MonadMask m
, Monad m
, MonadReader env m
, HasSettings env
, HasDirs env
, HasLog env
, MonadThrow m
, MonadIO m
, HasPlatformReq env
, HasGHCupInfo env
, MonadUnliftIO m
)
=> Output
-> m ExitCode
generateTable output = do
handle <- case output of
StdOut -> pure stdout
FileOutput fp -> liftIO $ openFile fp WriteMode
forM_ [GHC,Cabal,HLS,Stack] $ \tool -> do
case tool of
GHC -> liftIO $ hPutStrLn handle $ "<details> <summary>Show all supported <a href='https://www.haskell.org/ghc/'>GHC</a> versions</summary>"
Cabal -> liftIO $ hPutStrLn handle $ "<details> <summary>Show all supported <a href='https://cabal.readthedocs.io/en/stable/'>cabal-install</a> versions</summary>"
HLS -> liftIO $ hPutStrLn handle $ "<details> <summary>Show all supported <a href='https://haskell-language-server.readthedocs.io/en/stable/'>HLS</a> versions</summary>"
Stack -> liftIO $ hPutStrLn handle $ "<details> <summary>Show all supported <a href='https://docs.haskellstack.org/en/stable/README/'>Stack</a> versions</summary>"
_ -> fail "no"
liftIO $ hPutStrLn handle $ "<table>"
liftIO $ hPutStrLn handle $ "<thead><tr><th>" <> show tool <> " Version</th><th>Tags</th></tr></thead>"
liftIO $ hPutStrLn handle $ "<tbody>"
vers <- reverse <$> listVersions (Just tool) [] False False (Nothing, Nothing)
forM_ (filter (\ListResult{..} -> not lStray) vers) $ \ListResult{..} -> do
liftIO $ hPutStrLn handle $
"<tr><td>"
<> T.unpack (prettyVer lVer)
<> "</td><td>"
<> intercalate ", " (filter (/= "") . fmap printTag $ sort lTag)
<> "</td></tr>"
pure ()
liftIO $ hPutStrLn handle $ "</tbody>"
liftIO $ hPutStrLn handle $ "</table>"
liftIO $ hPutStrLn handle $ "</details>"
liftIO $ hPutStrLn handle $ ""
pure ExitSuccess
where
printTag Recommended = "<span style=\"color:green\">recommended</span>"
printTag Latest = "<span style=\"color:blue\">latest</span>"
printTag Prerelease = "<span style=\"color:red\">prerelease</span>"
printTag (Base pvp'') = "base-" ++ T.unpack (prettyPVP pvp'')
printTag (UnknownTag t ) = t
printTag Old = ""
generateSystemInfo :: ( MonadFail m
, MonadMask m
, Monad m
, MonadReader env m
, HasSettings env
, HasDirs env
, HasLog env
, MonadThrow m
, MonadIO m
, HasPlatformReq env
, HasGHCupInfo env
, MonadUnliftIO m
)
=> Output
-> m ExitCode
generateSystemInfo output = do
handle <- case output of
StdOut -> pure stdout
FileOutput fp -> liftIO $ openFile fp WriteMode
forM_ [ Linux Debian
, Linux Ubuntu
, Linux Fedora
, Linux CentOS
, Linux Alpine
, Linux UnknownLinux
, Darwin
, FreeBSD
, Windows
] $ \plat -> do
GHCupInfo { .. } <- getGHCupInfo
(Just req) <- pure $ getCommonRequirements (PlatformResult plat Nothing) _toolRequirements
liftIO $ hPutStrLn handle $ "### " <> (prettyPlat plat) <> "\n"
liftIO $ hPutStrLn handle $ (T.unpack $ pretty' req) <> "\n"
pure ExitSuccess
where
pretty' Requirements {..} =
let d = if not . null $ _distroPKGs
then "The following distro packages are required: " <> "`" <> T.intercalate " " _distroPKGs <> "`"
else ""
n = if not . T.null $ _notes then _notes else ""
in if | T.null d -> n
| T.null n -> d
| otherwise -> d <> "\n" <> n
prettyPlat (Linux UnknownLinux) = "Linux (generic)"
prettyPlat p = show p
generateSystemInfoWithDistroVersion :: ( MonadFail m
, MonadMask m
, Monad m
, MonadReader env m
, HasSettings env
, HasDirs env
, HasLog env
, MonadThrow m
, MonadIO m
, HasPlatformReq env
, HasGHCupInfo env
, MonadUnliftIO m
)
=> Output
-> m ExitCode
generateSystemInfoWithDistroVersion output = do
handle <- case output of
StdOut -> pure stdout
FileOutput fp -> liftIO $ openFile fp WriteMode
GHCupInfo { _toolRequirements = tr } <- getGHCupInfo
let ghcInfo = M.lookup Nothing <$> M.lookup GHC tr
liftIO $ traverse_ (\(key, value) -> do
liftIO $ hPutStrLn handle $ "### " <> prettyPlat key <> "\n"
liftIO $ hPutStrLn handle $ T.unpack $ versionsAndRequirements value <> T.pack "\n")
$ M.toList $ fromJust (fromJust ghcInfo)
pure ExitSuccess
where
pretty' Requirements {..} =
let d = if not . null $ _distroPKGs
then "The following distro packages are required: " <> "`" <> T.intercalate " " _distroPKGs <> "`" <> "\n"
else ""
n = if not . T.null $ _notes then _notes else ""
in if | T.null d -> n
| T.null n -> d
| otherwise -> d <> "\n" <> n
versionsAndRequirements :: PlatformReqVersionSpec -> Text
versionsAndRequirements =
bifoldMap
( \case
Nothing -> T.pack $ "#### Generic" <> "\n"
Just verz -> T.pack "#### Version " <> T.pack (show $ pPrint verz) <> "\n"
)
pretty'
prettyPlat (Linux UnknownLinux) = "Linux (generic)"
prettyPlat p = show p

View File

@@ -11,7 +11,7 @@ import GHCup.Types
import GHCup.Errors
import GHCup.Platform
import GHCup.Utils.Dirs
import GHCup.Utils.Logger
import GHCup.Prelude.Logger
import GHCup.Types.JSON ( )
import Control.Exception ( displayException )
@@ -43,11 +43,47 @@ data Options = Options
{ optCommand :: Command
}
formatParser :: Parser Format
formatParser =
option
(eitherReader formatP)
(long "format" <> metavar "FORMAT" <> help
"Which format to use (JSON | YAML). Yaml is default."
<> value FormatJSON
)
where
formatP :: String -> Either String Format
formatP s' | t == T.pack "json" = Right FormatJSON
| t == T.pack "yaml" = Right FormatYAML
| t == T.pack "yml" = Right FormatYAML
| otherwise = Left ("Unknown format value: " <> s')
where t = T.toLower (T.pack s')
data Command = ValidateYAML ValidateYAMLOpts
| ValidateTarballs ValidateYAMLOpts TarballFilter
| GenerateHlsGhc ValidateYAMLOpts
| GenerateHlsGhc ValidateYAMLOpts Format Output
| GenerateToolTable ValidateYAMLOpts Output
| GenerateSystemDepsInfo ValidateYAMLOpts Output
fileOutput :: Parser Output
fileOutput =
FileOutput
<$> strOption
(long "output-file" <> short 'o' <> metavar "FILENAME" <> help
"Output file to write to"
)
stdOutput :: Parser Output
stdOutput = flag'
StdOut
(short 'o' <> long "stdout" <> help "Output to stdout (default)")
outputP :: Parser Output
outputP = fileOutput <|> stdOutput
data Input
= FileInput FilePath -- optsparse-applicative doesn't handle ByteString correctly anyway
| StdInput
@@ -69,26 +105,43 @@ inputP :: Parser Input
inputP = fileInput <|> stdInput
data ValidateYAMLOpts = ValidateYAMLOpts
{ vInput :: Maybe Input
{ vChannel :: DistributionChannel
, vInput :: Maybe Input
}
validateYAMLOpts :: Parser ValidateYAMLOpts
validateYAMLOpts = ValidateYAMLOpts <$> optional inputP
validateYAMLOpts = ValidateYAMLOpts <$> channelParser <*> optional inputP
channelParser :: Parser DistributionChannel
channelParser =
option
(eitherReader chanP)
(long "channel" <> metavar "CHANNEL" <> help
"Signal which distribution channel the YAML denotes: (main | prerelease | nightly). Main is defaul."
<> value MainChan
)
where
chanP :: String -> Either String DistributionChannel
chanP s' | t == T.pack "main" = Right MainChan
| t == T.pack "prerelease" = Right PrereleaseChan
| t == T.pack "prereleases" = Right PrereleaseChan
| t == T.pack "nightly" = Right NightlyChan
| t == T.pack "nightlies" = Right NightlyChan
| otherwise = Left ("Unknown channel value: " <> s')
where t = T.toLower (T.pack s')
tarballFilterP :: Parser TarballFilter
tarballFilterP = option readm $
long "tarball-filter" <> short 'u' <> metavar "<tool>-<version>" <> value def
<> help "Only check certain tarballs (format: <tool>-<version>)"
where
def = TarballFilter (Right Nothing) (makeRegex ("" :: String))
def = TarballFilter Nothing (makeRegex ("" :: String))
readm = do
s <- str
case span (/= '-') s of
(_, []) -> fail "invalid format, missing '-' after the tool name"
(t, v) | [tool] <- [ tool | tool <- [minBound..maxBound], low (show tool) == low t ] ->
pure (TarballFilter $ Right $ Just tool) <*> makeRegexOptsM compIgnoreCase execBlank (drop 1 v)
(t, v) | [tool] <- [ tool | tool <- [minBound..maxBound], low (show tool) == low t ] ->
pure (TarballFilter $ Left tool) <*> makeRegexOptsM compIgnoreCase execBlank (drop 1 v)
pure (TarballFilter $ Just tool) <*> makeRegexOptsM compIgnoreCase execBlank (drop 1 v)
_ -> fail "invalid tool"
low = fmap toLower
@@ -113,9 +166,21 @@ com = subparser
<> command
"generate-hls-ghcs"
(info
((GenerateHlsGhc <$> validateYAMLOpts) <**> helper)
((GenerateHlsGhc <$> validateYAMLOpts <*> formatParser <*> outputP) <**> helper)
(progDesc "Generate a list of HLS-GHC support")
)
<> command
"generate-tool-table"
(info
((GenerateToolTable <$> validateYAMLOpts <*> outputP) <**> helper)
(progDesc "Generate a markdown table of available tool versions")
)
<> command
"generate-system-deps-info"
(info
((GenerateSystemDepsInfo <$> validateYAMLOpts <*> outputP) <**> helper)
(progDesc "Generate a markdown info for system dependencies")
)
)
@@ -129,7 +194,7 @@ main = do
, fancyColors = not no_color
}
dirs <- liftIO getAllDirs
let leanAppstate = LeanAppState (Settings True 0 False Never Curl True GHCupURL False GPGNone False) dirs defaultKeyBindings loggerConfig
let leanAppstate = LeanAppState (Settings True 0 Lax False Never Curl True GHCupURL False GPGNone True Nothing (DM mempty)) dirs defaultKeyBindings loggerConfig
pfreq <- (
flip runReaderT leanAppstate . runE @'[NoCompatiblePlatform, NoCompatibleArch, DistroNotFound] $ platformRequest
@@ -139,26 +204,29 @@ main = do
flip runReaderT leanAppstate $ logError $ T.pack $ prettyShow e
liftIO $ exitWith (ExitFailure 2)
let appstate = AppState (Settings True 0 False Never Curl True GHCupURL False GPGNone False) dirs defaultKeyBindings (GHCupInfo mempty mempty mempty) pfreq loggerConfig
let appstate = AppState (Settings True 0 Lax False Never Curl True GHCupURL False GPGNone True Nothing (DM mempty)) dirs defaultKeyBindings (GHCupInfo mempty mempty Nothing) pfreq loggerConfig
let withValidateYamlOpts vopts f = case vopts of
ValidateYAMLOpts { vInput = Nothing } ->
B.getContents >>= valAndExit f
ValidateYAMLOpts { vInput = Just StdInput } ->
B.getContents >>= valAndExit f
ValidateYAMLOpts { vInput = Just (FileInput file) } ->
B.readFile file >>= valAndExit f
valAndExit f contents = do
ginfo <- case Y.decodeEither' contents of
Right r -> pure r
Left e -> die (color Red $ displayException e)
r <- flip runReaderT appstate { ghcupInfo = ginfo } f
exitWith r
_ <- customExecParser (prefs showHelpOnError) (info (opts <**> helper) idm)
>>= \Options {..} -> case optCommand of
ValidateYAML vopts -> withValidateYamlOpts vopts (\dl m -> flip runReaderT appstate $ validate dl m)
ValidateTarballs vopts tarballFilter -> withValidateYamlOpts vopts (\dl m -> flip runReaderT appstate $ validateTarballs tarballFilter dl m)
GenerateHlsGhc vopts -> withValidateYamlOpts vopts (\dl m -> flip runReaderT appstate $ generate dl m)
ValidateYAML vopts@ValidateYAMLOpts{ .. } -> withValidateYamlOpts vopts (validate vChannel)
ValidateTarballs vopts tarballFilter -> withValidateYamlOpts vopts (validateTarballs tarballFilter)
GenerateHlsGhc vopts format output -> withValidateYamlOpts vopts (generateHLSGhc format output)
GenerateToolTable vopts output -> withValidateYamlOpts vopts (generateTable output)
GenerateSystemDepsInfo vopts output -> withValidateYamlOpts vopts (generateSystemInfoWithDistroVersion output)
pure ()
where
withValidateYamlOpts vopts f = case vopts of
ValidateYAMLOpts { vInput = Nothing } ->
B.getContents >>= valAndExit f
ValidateYAMLOpts { vInput = Just StdInput } ->
B.getContents >>= valAndExit f
ValidateYAMLOpts { vInput = Just (FileInput file) } ->
B.readFile file >>= valAndExit f
valAndExit f contents = do
(GHCupInfo _ av gt) <- case Y.decodeEither' contents of
Right r -> pure r
Left e -> die (color Red $ displayException e)
f av gt
>>= exitWith

View File

@@ -15,8 +15,8 @@ import GHCup.Errors
import GHCup.Types
import GHCup.Types.Optics
import GHCup.Utils
import GHCup.Utils.Logger
import GHCup.Utils.Version.QQ
import GHCup.Prelude.Logger
import GHCup.Prelude.Version.QQ
import Codec.Archive
import Control.Applicative
@@ -51,6 +51,11 @@ data ValidationError = InternalError String
instance Exception ValidationError
data DistributionChannel = MainChan
| PrereleaseChan
| NightlyChan
deriving (Show, Eq)
addError :: (MonadReader (IORef Int) m, MonadIO m, Monad m) => m ()
addError = do
@@ -58,11 +63,19 @@ addError = do
liftIO $ modifyIORef ref (+ 1)
validate :: (Monad m, MonadReader env m, HasLog env, MonadThrow m, MonadIO m, MonadUnliftIO m)
=> GHCupDownloads
-> M.Map GlobalTool DownloadInfo
validate :: ( Monad m
, MonadReader env m
, HasLog env
, MonadThrow m
, MonadIO m
, MonadUnliftIO m
, HasGHCupInfo env
)
=> DistributionChannel
-> m ExitCode
validate dls _ = do
validate distroChannel = do
GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo
ref <- liftIO $ newIORef 0
-- verify binary downloads --
@@ -74,7 +87,7 @@ validate dls _ = do
forM_ (M.toList dls) $ \(t, versions) ->
forM_ (M.toList versions) $ \(v, vi) ->
forM_ (M.toList $ _viArch vi) $ \(arch, pspecs) -> do
checkHasRequiredPlatforms t v (_viTags vi) arch (M.keys pspecs)
checkHasRequiredPlatforms t (_tvVersion v) (_viTags vi) arch (M.keys pspecs)
checkGHCVerIsValid
forM_ (M.toList dls) $ \(t, _) -> checkMandatoryTags t
@@ -88,35 +101,39 @@ validate dls _ = do
lift $ logInfo "All good"
pure ExitSuccess
where
checkHasRequiredPlatforms t v tags arch pspecs = do
let v' = prettyVer v
arch' = prettyShow arch
when (Linux UnknownLinux `notElem` pspecs) $ do
lift $ logError $
"Linux UnknownLinux missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
addError
when ((Darwin `notElem` pspecs) && arch == A_64) $ do
lift $ logError $ "Darwin missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
addError
when ((FreeBSD `notElem` pspecs) && arch == A_64) $ lift $ logWarn $
"FreeBSD missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
when (Windows `notElem` pspecs && arch == A_64) $ do
lift $ logError $ "Windows missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
addError
checkHasRequiredPlatforms t v tags arch pspecs
-- relax requirements for prerelease and nightly channels
| distroChannel `elem` [PrereleaseChan, NightlyChan] = pure ()
| otherwise = do
let v' = prettyVer v
arch' = prettyShow arch
when (Linux UnknownLinux `notElem` pspecs) $ do
lift $ logError $
"Linux UnknownLinux missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
addError
when ((Darwin `notElem` pspecs) && arch == A_64) $ do
lift $ logError $ "Darwin missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
addError
when ((FreeBSD `notElem` pspecs) && arch == A_64) $ lift $ logWarn $
"FreeBSD missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
when (Windows `notElem` pspecs && arch == A_64) $ do
lift $ logError $ "Windows missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
addError
-- alpine needs to be set explicitly, because
-- we cannot assume that "Linux UnknownLinux" runs on Alpine
-- (although it could be static)
when (Linux Alpine `notElem` pspecs) $
case t of
GHCup | arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError
Cabal | v > [vver|2.4.1.0|]
, arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError
GHC | Latest `elem` tags || Recommended `elem` tags
, arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch))
_ -> lift $ logWarn $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)
-- alpine needs to be set explicitly, because
-- we cannot assume that "Linux UnknownLinux" runs on Alpine
-- (although it could be static)
when (Linux Alpine `notElem` pspecs) $
case t of
GHCup | arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError
Cabal | v > [vver|2.4.1.0|]
, arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError
GHC | Latest `elem` tags || Recommended `elem` tags
, arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch))
_ -> lift $ logWarn $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)
checkUniqueTags tool = do
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
let allTags = _viTags =<< M.elems (availableToolVersions dls tool)
let nonUnique =
fmap fst
@@ -137,15 +154,19 @@ validate dls _ = do
lift $ logError $ "Tags not unique for " <> T.pack (prettyShow tool) <> ": " <> T.pack (prettyShow xs)
addError
where
isUniqueTag Latest = True
isUniqueTag Recommended = True
isUniqueTag Old = False
isUniqueTag Prerelease = False
isUniqueTag (Base _) = False
isUniqueTag (UnknownTag _) = False
isUniqueTag Latest = True
isUniqueTag Recommended = True
isUniqueTag Old = False
isUniqueTag Prerelease = False
isUniqueTag LatestPrerelease = True
isUniqueTag Nightly = False
isUniqueTag LatestNightly = True
isUniqueTag (Base _) = False
isUniqueTag (UnknownTag _) = False
checkGHCVerIsValid = do
let ghcVers = toListOf (ix GHC % to M.keys % folded) dls
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
let ghcVers = toListOf (ix GHC % to M.keys % to (map _tvVersion) % folded) dls
forM_ ghcVers $ \v ->
case [ x | (x,"") <- readP_to_S V.parseVersion (T.unpack . prettyVer $ v) ] of
[_] -> pure ()
@@ -155,19 +176,30 @@ validate dls _ = do
-- a tool must have at least one of each mandatory tags
checkMandatoryTags tool = do
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
let allTags = _viTags =<< M.elems (availableToolVersions dls tool)
forM_ [Latest, Recommended] $ \t -> case t `elem` allTags of
forM_ (mandatoryTags tool) $ \t -> case t `elem` allTags of
False -> do
lift $ logError $ "Tag " <> T.pack (prettyShow t) <> " missing from " <> T.pack (prettyShow tool)
addError
True -> pure ()
mandatoryTags tool
-- due to a quirk, even for ghcup prereleases we need the 'latest' tag
-- https://github.com/haskell/ghcup-hs/issues/891
| tool == GHCup = [Latest, Recommended]
| otherwise = case distroChannel of
MainChan -> [Latest, Recommended]
PrereleaseChan -> [LatestPrerelease]
NightlyChan -> [LatestNightly]
-- all GHC versions must have a base tag
checkGHCHasBaseVersion = do
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
let allTags = M.toList $ availableToolVersions dls GHC
forM allTags $ \(ver, _viTags -> tags) -> case any isBase tags of
False -> do
lift $ logError $ "Base tag missing from GHC ver " <> prettyVer ver
lift $ logError $ "Base tag missing from GHC ver " <> prettyVer (_tvVersion ver)
addError
True -> pure ()
@@ -175,7 +207,7 @@ validate dls _ = do
isBase _ = False
data TarballFilter = TarballFilter
{ tfTool :: Either GlobalTool (Maybe Tool)
{ tfTool :: Maybe Tool
, tfVersion :: Regex
}
@@ -190,20 +222,20 @@ validateTarballs :: ( Monad m
, MonadMask m
, Alternative m
, MonadFail m
, HasGHCupInfo env
)
=> TarballFilter
-> GHCupDownloads
-> M.Map GlobalTool DownloadInfo
-> m ExitCode
validateTarballs (TarballFilter etool versionRegex) dls gt = do
validateTarballs (TarballFilter mtool versionRegex) = do
GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo
ref <- liftIO $ newIORef 0
-- download/verify all tarballs
let dlis = either (const []) (\tool -> nubOrd $ dls ^.. each %& indices (maybe (const True) (==) tool) %> each %& indices (matchTest versionRegex . T.unpack . prettyVer) % (viSourceDL % _Just `summing` viArch % each % each % each)) etool
let gdlis = nubOrd $ gt ^.. each
let allDls = either (const gdlis) (const dlis) etool
when (null allDls) $ logError "no tarballs selected by filter" *> runReaderT addError ref
forM_ allDls (downloadAll ref)
let dlis = nubOrd $ dls ^.. each %& indices (maybe (const True) (==) mtool)
%> each %& indices (matchTest versionRegex . T.unpack . prettyVer . _tvVersion)
% (viTestDL % _Just `summing` viSourceDL % _Just `summing` viArch % each % each % each)
when (null dlis) $ logError "no tarballs selected by filter" *> runReaderT addError ref
forM_ dlis (downloadAll ref)
-- exit
e <- liftIO $ readIORef ref
@@ -234,32 +266,28 @@ validateTarballs (TarballFilter etool versionRegex) dls gt = do
, DownloadFailed
, UnknownArchive
, ArchiveResult
, ContentLengthError
]
$ do
case etool of
Right (Just GHCup) -> do
case mtool of
(Just GHCup) -> do
tmpUnpack <- lift mkGhcupTmpDir
_ <- liftE $ download (_dlUri dli) Nothing (Just (_dlHash dli)) tmpUnpack Nothing False
_ <- liftE $ download (_dlUri dli) Nothing (Just (_dlHash dli)) Nothing (fromGHCupPath tmpUnpack) Nothing False
pure Nothing
Right _ -> do
_ -> do
p <- liftE $ downloadCached dli Nothing
fmap (Just . head . splitDirectories . head)
. liftE
. getArchiveFiles
$ p
Left ShimGen -> do
tmpUnpack <- lift mkGhcupTmpDir
_ <- liftE $ download (_dlUri dli) Nothing (Just (_dlHash dli)) tmpUnpack Nothing False
pure Nothing
fmap Just $ liftE
. getArchiveFiles
$ p
case r of
VRight (Just basePath) -> do
VRight (Just entries) -> do
case _dlSubdir dli of
Just (RealDir prel) -> do
logInfo
$ " verifying subdir: " <> T.pack prel
when (basePath /= prel) $ do
when (normalise prel `notElem` fmap (normalise . takeDirectory) entries) $ do
logError $
"Subdir doesn't match: expected " <> T.pack prel <> ", got " <> T.pack basePath
"Subdir doesn't match: expected " <> T.pack prel
runReaderT addError ref
Just (RegexDir regexString) -> do
logInfo $
@@ -268,9 +296,9 @@ validateTarballs (TarballFilter etool versionRegex) dls gt = do
compIgnoreCase
execBlank
regexString
unless (match regex basePath) $ do
unless (or $ fmap (match regex. normalise) entries) $ do
logError $
"Subdir doesn't match: expected regex " <> T.pack regexString <> ", got " <> T.pack basePath
"Subdir doesn't match: expected regex " <> T.pack regexString
runReaderT addError ref
Nothing -> pure ()
VRight Nothing -> pure ()

View File

@@ -45,14 +45,16 @@ executable ghcup-gen
-fwarn-incomplete-record-updates -threaded
build-depends:
, aeson-pretty ^>=0.8.9
, base >=4.13 && <5
, bytestring ^>=0.10
, bytestring ^>=0.11
, containers ^>=0.6
, deepseq ^>=1.4
, filepath ^>=1.4.2.1
, ghcup ^>=0.1.17.3
, ghcup ^>=0.1.19.0
, haskus-utils-variant ^>=3.2
, libarchive ^>=3.0.3.0
, megaparsec ^>=9.0
, megaparsec >=8.0.0 && <9.3
, mtl ^>=2.2
, optics ^>=0.4
, optparse-applicative >=0.15.1.0 && <0.17
@@ -61,7 +63,7 @@ executable ghcup-gen
, regex-posix ^>=0.96
, resourcet ^>=1.2.2
, safe-exceptions ^>=0.1
, text ^>=1.2.4.0
, text ^>=2.0
, transformers ^>=0.5
, versions >=4.0.1 && <5.1
, versions >=6.0.0
, yaml-streamly ^>=0.12.0

1569
ghcup-prereleases-0.0.7.yaml Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

1569
ghcup-prereleases-0.0.8.yaml Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

6195
ghcup-vanilla-0.0.7.yaml Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

6195
ghcup-vanilla-0.0.8.yaml Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

1597
hls-metadata-0.0.1.json Normal file

File diff suppressed because it is too large Load Diff

BIN
hls-metadata-0.0.1.json.sig Normal file

Binary file not shown.

View File

@@ -0,0 +1,105 @@
#!/bin/bash
set -eu
set -o pipefail
RELEASE=$1
VERSION=${RELEASE#cabal-install-v}
cd "gh-release-artifacts/cabal-${VERSION}"
cat <<EOF > /dev/stdout
$VERSION:
viTags:
- Latest
viChangeLog: https://github.com/haskell/cabal/blob/master/release-notes/cabal-install-$VERSION.md
viArch:
A_64:
Linux_Debian:
'< 10': &cabal-${VERSION//./}-64-deb9
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-x86_64-linux-deb9.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-deb9.tar.xz" | awk '{ print $1 }')
'(>= 10 && < 11)': &cabal-${VERSION//./}-64-deb10
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-x86_64-linux-deb10.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-deb10.tar.xz" | awk '{ print $1 }')
unknown_versioning: &cabal-${VERSION//./}-64-deb11
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-x86_64-linux-deb11.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-deb11.tar.xz" | awk '{ print $1 }')
Linux_Ubuntu:
'( >= 16 && < 19 )': &cabal-${VERSION//./}-64-ubuntu18
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-x86_64-linux-ubuntu18.04.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-ubuntu18.04.tar.xz" | awk '{ print $1 }')
'( >= 20 && < 22 )': &cabal-${VERSION//./}-64-ubuntu20
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-x86_64-linux-ubuntu20.04.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-ubuntu20.04.tar.xz" | awk '{ print $1 }')
unknown_versioning: &cabal-${VERSION//./}-64-ubuntu22
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-x86_64-linux-ubuntu22.04.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-ubuntu22.04.tar.xz" | awk '{ print $1 }')
Linux_Mint:
'< 20':
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-x86_64-linux-mint19.3.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-mint19.3.tar.xz" | awk '{ print $1 }')
'(>= 20 && < 21)':
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-x86_64-linux-mint20.2.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-mint20.2.tar.xz" | awk '{ print $1 }')
'>= 21': *cabal-${VERSION//./}-64-ubuntu22
Linux_Fedora:
'< 33': &cabal-${VERSION//./}-64-fedora27
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-x86_64-linux-fedora27.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-fedora27.tar.xz" | awk '{ print $1 }')
'>= 33': &cabal-${VERSION//./}-64-fedora33
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-x86_64-linux-fedora33.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-fedora33.tar.xz" | awk '{ print $1 }')
unknown_versioning: *cabal-${VERSION//./}-64-fedora27
Linux_CentOS:
'( >= 7 && < 8 )': &cabal-${VERSION//./}-64-centos
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-x86_64-linux-centos7.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-centos7.tar.xz" | awk '{ print $1 }')
unknown_versioning: *cabal-${VERSION//./}-64-centos
Linux_RedHat:
unknown_versioning: *cabal-${VERSION//./}-64-centos
Linux_UnknownLinux:
unknown_versioning: &cabal-${VERSION//./}-64-unknown
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-x86_64-linux-unknown.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-unknown.tar.xz" | awk '{ print $1 }')
Linux_Rocky:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-x86_64-linux-rocky8.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-linux-rocky8.tar.xz" | awk '{ print $1 }')
Linux_Alpine:
unknown_versioning: *cabal-${VERSION//./}-64-unknown
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-x86_64-apple-darwin.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-apple-darwin.tar.xz" | awk '{ print $1 }')
Windows:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-x86_64-mingw64.zip
dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-mingw64.zip" | awk '{ print $1 }')
FreeBSD:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-x86_64-portbld-freebsd.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-x86_64-portbld-freebsd.tar.xz" | awk '{ print $1 }')
A_32:
Linux_UnknownLinux:
unknown_versioning: &cabal-${VERSION//./}-32-unknown
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-i386-linux-unknown.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-i386-linux-unknown.tar.xz" | awk '{ print $1 }')
Linux_Alpine:
unknown_versioning: *cabal-${VERSION//./}-32-unknown
A_ARM64:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-aarch64-linux-deb10.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-aarch64-linux-deb10.tar.xz" | awk '{ print $1 }')
Darwin:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-aarch64-apple-darwin.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-aarch64-apple-darwin.tar.xz" | awk '{ print $1 }')
A_ARM:
Linux_UnknownLinux:
unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/$VERSION/cabal-install-$VERSION-armv7-linux-deb10.tar.xz
dlHash: $(sha256sum "cabal-install-$VERSION-armv7-linux-deb10.tar.xz" | awk '{ print $1 }')
EOF

View File

@@ -0,0 +1,35 @@
#!/bin/bash
set -eu
set -o pipefail
RELEASE=$1
VERSION=${RELEASE#cabal-install-v}
SIGNER=$2
echo "RELEASE: $RELEASE"
echo "SIGNER: $SIGNER"
for com in gh gpg curl sha256sum ; do
command -V ${com} >/dev/null 2>&1
done
[ ! -e "gh-release-artifacts/cabal-${VERSION}" ]
mkdir -p "gh-release-artifacts/cabal-${VERSION}"
cd "gh-release-artifacts/cabal-${VERSION}"
# github
gh release download "$RELEASE"
# cirrus
curl --fail -L -o "cabal-install-${VERSION}-x86_64-portbld-freebsd.tar.xz" \
"https://api.cirrus-ci.com/v1/artifact/github/haskell/ghcup-metadata/build/binaries/out/cabal-install-${VERSION}-x86_64-portbld-freebsd.tar.xz?branch=develop"
sha256sum ./* > SHA256SUMS
gpg --detach-sign -u "${SIGNER}" SHA256SUMS
gh release upload "$RELEASE" "cabal-install-${VERSION}-x86_64-portbld-freebsd.tar.xz" SHA256SUMS SHA256SUMS.sig