Compare commits

..

235 Commits

Author SHA1 Message Date
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
38 changed files with 9985 additions and 445 deletions

View File

@@ -3,10 +3,6 @@ defaults:
run: run:
shell: bash shell: bash
on: on:
pull_request:
types: [opened]
issue_comment:
types: [created]
workflow_dispatch: workflow_dispatch:
inputs: inputs:
tool: tool:
@@ -22,6 +18,11 @@ on:
required: true required: true
default: ghcup-0.0.7.yaml default: ghcup-0.0.7.yaml
type: string type: string
channel:
description: Distribution channel (main|prerelease|nightly)
required: true
default: Main
type: string
env: env:
BOOTSTRAP_HASKELL_NONINTERACTIVE: 1 BOOTSTRAP_HASKELL_NONINTERACTIVE: 1
BOOTSTRAP_HASKELL_MINIMAL: 1 BOOTSTRAP_HASKELL_MINIMAL: 1
@@ -29,6 +30,7 @@ env:
TOOL: ${{ github.event.inputs.tool }} TOOL: ${{ github.event.inputs.tool }}
VERSION: ${{ github.event.inputs.version }} VERSION: ${{ github.event.inputs.version }}
METADATA_FILE: ${{ github.event.inputs.metadataFile }} METADATA_FILE: ${{ github.event.inputs.metadataFile }}
CHANNEL: ${{ github.event.inputs.channel }}
jobs: jobs:
bindist-install: bindist-install:
name: linux-${{ matrix.image }} name: linux-${{ matrix.image }}
@@ -40,15 +42,12 @@ jobs:
- image: alpine:latest - image: alpine:latest
installCmd: apk update && apk add 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 toolRequirements: binutils-gold curl gcc g++ gmp-dev libc-dev libffi-dev make musl-dev ncurses-dev perl tar xz
- image: debian:9
installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
- image: debian:10 - image: debian:10
installCmd: apt-get update && apt-get install -y installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 libnuma-dev
- image: debian:11 - image: debian:11
installCmd: apt-get update && apt-get install -y installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 libnuma-dev
- image: ubuntu:18.04 - image: ubuntu:18.04
installCmd: apt-get update && apt-get install -y installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
@@ -61,15 +60,27 @@ jobs:
- image: archlinux:latest - image: archlinux:latest
installCmd: pacman -Syu --noconfirm installCmd: pacman -Syu --noconfirm
toolRequirements: which gcc gmp libffi make ncurses perl tar xz 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:36 - image: fedora:36
installCmd: dnf install -y installCmd: dnf install -y
toolRequirements: which gcc g++ gmp gmp-devel make ncurses ncurses-compat-libs xz perl 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 - image: linuxmintd/mint19.3-amd64
installCmd: apt-get update && apt-get install -y installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
- image: linuxmintd/mint20.2-amd64 - image: linuxmintd/mint20.2-amd64
installCmd: apt-get update && apt-get install -y installCmd: apt-get update && apt-get install -y
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 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: container:
image: ${{ matrix.image }} image: ${{ matrix.image }}
steps: steps:
@@ -78,182 +89,133 @@ jobs:
run: | run: |
${{ matrix.installCmd }} curl bash git ${{ matrix.toolRequirements }} ${{ matrix.installCmd }} curl bash git ${{ matrix.toolRequirements }}
- uses: shpingalet007/pull-request-comment-trigger@696de492b50cee0ba671934893c91c5805a403b9 - uses: actions/checkout@v3
id: check
with:
trigger: '@bindistTest ** ** **'
reaction: rocket
allow_arguments: true
env:
GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
- uses: shpingalet007/pull-request-comment-trigger@696de492b50cee0ba671934893c91c5805a403b9 - name: Install ghcup and bindist
id: checkRef run: .github/workflows/install-bindist.sh
with:
trigger: '@bindistTestRef ** ** ** **'
reaction: rocket
allow_arguments: true
env:
GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
- if: ${{ steps.checkRef.outputs.triggered == 'true' }} bindist-install-mac-win:
uses: actions/checkout@v3 name: Build non-linux
with:
ref: ${{ fromJson(steps.check.outputs.arguments)[3] }}
- if: ${{ steps.checkRef.outputs.triggered != 'true' }}
uses: actions/checkout@v3
- if: ${{ github.event_name != 'workflow_dispatch' || steps.check.outputs.triggered == 'true' }}
continue-on-error: true
name: Install ghcup and bindist
run: |
[ -z "${TOOL}" ] && export TOOL=${{ fromJson(steps.check.outputs.arguments)[0] }}
[ -z "${VERSION}" ] && export VERSION=${{ fromJson(steps.check.outputs.arguments)[1] }}
[ -z "${METADATA_FILE}" ] && export METADATA_FILE=${{ fromJson(steps.check.outputs.arguments)[2] }}
.github/workflows/install-bindist.sh
echo SUCCESS=true >> $GITHUB_ENV
- if: ${{ github.event_name != 'workflow_dispatch' && steps.check.outputs.triggered != 'true' && steps.checkRef.outputs.triggered == 'true' }}
continue-on-error: true
name: Install ghcup and bindist
run: |
[ -z "${TOOL}" ] && export TOOL=${{ fromJson(steps.checkRef.outputs.arguments)[0] }}
[ -z "${VERSION}" ] && export VERSION=${{ fromJson(steps.checkRef.outputs.arguments)[1] }}
[ -z "${METADATA_FILE}" ] && export METADATA_FILE=${{ fromJson(steps.checkRef.outputs.arguments)[2] }}
.github/workflows/install-bindist.sh
echo SUCCESS=true >> $GITHUB_ENV
- if: ${{ github.event_name == 'workflow_dispatch' }}
name: Install ghcup and bindist
run: |
.github/workflows/install-bindist.sh
echo SUCCESS=true >> $GITHUB_ENV
- run: |
if [ "${{ env.SUCCESS }}" = "true" ] ; then
echo "true" > message-linux.txt
else
echo "false" > message-linux.txt
fi
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: artifacts
path: |
./message-linux.txt
bindist-install-non-linux:
name: ${{ matrix.os }}
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: include:
- macos-11 - os: [self-hosted, macOS, ARM64]
- macos-12 - os: macos-11
- windows-latest - os: macos-12
- os: windows-latest
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- uses: shpingalet007/pull-request-comment-trigger@696de492b50cee0ba671934893c91c5805a403b9
id: check
with:
trigger: '@bindistTest ** ** **'
reaction: rocket
allow_arguments: true
env:
GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
- uses: shpingalet007/pull-request-comment-trigger@696de492b50cee0ba671934893c91c5805a403b9 - uses: actions/checkout@v3
id: checkRef
with:
trigger: '@bindistTestRef ** ** ** **'
reaction: rocket
allow_arguments: true
env:
GITHUB_TOKEN: '${{secrets.GITHUB_TOKEN}}'
- if: ${{ steps.checkRef.outputs.triggered == 'true' }}
uses: actions/checkout@v3
with:
ref: ${{ fromJson(steps.check.outputs.arguments)[3] }}
- if: ${{ steps.checkRef.outputs.triggered != 'true' }}
uses: actions/checkout@v3
- if: ${{ github.event_name != 'workflow_dispatch' || steps.check.outputs.triggered == 'true' }}
continue-on-error: true
name: Install ghcup and bindist
run: |
[ -z "${TOOL}" ] && export TOOL=${{ fromJson(steps.check.outputs.arguments)[0] }}
[ -z "${VERSION}" ] && export VERSION=${{ fromJson(steps.check.outputs.arguments)[1] }}
[ -z "${METADATA_FILE}" ] && export METADATA_FILE=${{ fromJson(steps.check.outputs.arguments)[2] }}
.github/workflows/install-bindist.sh
echo SUCCESS=true >> $GITHUB_ENV
- if: ${{ github.event_name != 'workflow_dispatch' && steps.check.outputs.triggered != 'true' && steps.checkRef.outputs.triggered == 'true' }}
continue-on-error: true
name: Install ghcup and bindist
run: |
[ -z "${TOOL}" ] && export TOOL=${{ fromJson(steps.checkRef.outputs.arguments)[0] }}
[ -z "${VERSION}" ] && export VERSION=${{ fromJson(steps.checkRef.outputs.arguments)[1] }}
[ -z "${METADATA_FILE}" ] && export METADATA_FILE=${{ fromJson(steps.checkRef.outputs.arguments)[2] }}
.github/workflows/install-bindist.sh
echo SUCCESS=true >> $GITHUB_ENV
- if: ${{ github.event_name == 'workflow_dispatch' }} - if: ${{ github.event_name == 'workflow_dispatch' }}
name: Install ghcup and bindist name: Install ghcup and bindist
run: | run: .github/workflows/install-bindist.sh
.github/workflows/install-bindist.sh
echo SUCCESS=true >> $GITHUB_ENV
- run: | bindist-install-arm:
if [ "${{ env.SUCCESS }}" = "true" ] ; then name: Build ARM binary
echo "true" > message.txt runs-on: ${{ matrix.os }}
else strategy:
echo "false" > message.txt fail-fast: false
fi matrix:
include:
- name: Upload artifact - os: [self-hosted, Linux, ARM64]
uses: actions/upload-artifact@v3 ARCH: ARM
- os: [self-hosted, Linux, ARM64]
ARCH: ARM64
steps:
- uses: docker://arm64v8/ubuntu:focal
name: Cleanup (aarch64 linux)
with: with:
name: artifacts args: "find . -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +"
path: |
./message.txt
comment: - name: git config
name: comment run: |
needs: ["bindist-install", "bindist-install-non-linux"] 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'
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 runs-on: ubuntu-latest
steps: steps:
- name: Download artifacts - name: Install requirements
uses: actions/download-artifact@v3 shell: sh
with:
name: artifacts
- run: |
if [ "$(cat message.txt)" == "true" ] && [ "$(cat message-linux.txt)" == "true" ] ; then
echo "SUCCESS=true" >> $GITHUB_ENV
else
echo "SUCCESS=false" >> $GITHUB_ENV
fi
- id: message
run: | run: |
if [ "${{ env.SUCCESS }}" = "true" ] ; then sudo apt-get update && sudo apt-get install -y curl bash git gnupg
echo 'MESSAGE=Bindist check success :+1:' >> $GITHUB_OUTPUT
else
echo 'MESSAGE=Bindist check failure :-1:' >> $GITHUB_OUTPUT
fi
- if: ${{ github.event_name == 'pull_request' }} - uses: actions/checkout@v3
name: Comment PR
uses: thollander/actions-comment-pull-request@v2
with:
message: |
${{ steps.message.outputs.MESSAGE }}
- name: Check on failures
if: env.SUCCESS != 'true'
run: exit 1
- 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
}

View File

@@ -2,23 +2,31 @@
set -x set -x
set -eo pipefail set -eo pipefail
. .github/workflows/common.sh
export GHCUP_INSTALL_BASE_PREFIX=$RUNNER_TEMP/foobarbaz export GHCUP_INSTALL_BASE_PREFIX=$RUNNER_TEMP/foobarbaz
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh
source $GHCUP_INSTALL_BASE_PREFIX/.ghcup/env || source ~/.bashrc source "$GHCUP_INSTALL_BASE_PREFIX"/.ghcup/env || source "$HOME/.bashrc"
ghcup --version ghcup --version
which ghcup | grep foobarbaz which ghcup | grep foobarbaz
# oh no ghcup_fun() {
if [ "${TOOL}" = "hls" ] ; then ghcup -v --url-source="file:$METADATA_FILE" "$@"
ghcup -v --url-source=file:$METADATA_FILE install ghc --set 9.2.4 }
fi
ghcup -v --url-source=file:$METADATA_FILE install $TOOL --set $VERSION case $TOOL in
ghcup)
ghcup_fun upgrade --force
;;
*) ghcup_fun install "$TOOL" --set "$VERSION"
;;
esac
mkdir /tmp/install-bindist-ci mkdir -p /tmp/install-bindist-ci
cp "$METADATA_FILE" /tmp/install-bindist-ci/
cd /tmp/install-bindist-ci cd /tmp/install-bindist-ci
cat <<EOF > main.hs cat <<EOF > main.hs
@@ -30,9 +38,65 @@ main = print $ 1 + 1
EOF EOF
case $TOOL in case $TOOL in
ghcup)
ghcup_fun list
;;
hls) hls)
haskell-language-server-wrapper --version ghcup_fun install cabal latest
haskell-language-server-wrapper typecheck main.hs 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)
ghc --version ghc --version
@@ -41,6 +105,7 @@ case $TOOL in
[[ $(./main +RTS -s) -eq 2 ]] [[ $(./main +RTS -s) -eq 2 ]]
;; ;;
cabal) cabal)
ghcup_fun install ghc --set "$(ghcup_fun list -t ghc -r -c available | tail -1 | awk '{ print $2 }')"
cabal --version cabal --version
cabal update cabal update
[[ $(cabal --verbose=0 run --enable-profiling ./main.hs -- +RTS -s) -eq 2 ]] [[ $(cabal --verbose=0 run --enable-profiling ./main.hs -- +RTS -s) -eq 2 ]]

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>
)

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

@@ -0,0 +1,23 @@
#!/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"

View File

@@ -11,7 +11,7 @@ jobs:
name: Test metadata name: Test metadata
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
env: env:
YAML_VER: 0.0.6 YAML_VER: 0.0.7
strategy: strategy:
matrix: matrix:
ghc: ghc:
@@ -19,7 +19,7 @@ jobs:
cabal: cabal:
- '3.6.2.0' - '3.6.2.0'
os: os:
- ubuntu-latest - ubuntu-22.04
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v2 uses: actions/checkout@v2
@@ -51,18 +51,30 @@ jobs:
run: echo "$HOME/.local/bin" >> $GITHUB_PATH run: echo "$HOME/.local/bin" >> $GITHUB_PATH
shell: bash shell: bash
- name: install yamllint
run: pip install yamllint
- name: Update cabal cache - name: Update cabal cache
run: cabal update run: cabal update
shell: bash 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 - name: Install ghcup-gen
run: | run: |
cabal install --installdir="$HOME/.local/bin" --overwrite-policy=always --install-method=copy ghcup-gen cabal install --installdir="$HOME/.local/bin" --overwrite-policy=always --install-method=copy ghcup-gen
shell: bash shell: bash
- name: Check - name: Check yaml
run: | run: |
ghcup-gen -- check -f ghcup-${{ env.YAML_VER }}.yaml 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 shell: bash
- name: Check tarballs - name: Check tarballs

5
.yamllint Normal file
View File

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

View File

@@ -1,6 +1,26 @@
# GHCup metadata # 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 (usually experimental) cross compilers
### 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
```
## For contributors
### Adding a new GHC version
1. open the latest `ghcup-<yaml-ver>.yaml` 1. open the latest `ghcup-<yaml-ver>.yaml`
2. find the latest ghc version (in yaml tree e.g. `ghcupDownloads -> GHC -> 8.10.7`) 2. find the latest ghc version (in yaml tree e.g. `ghcupDownloads -> GHC -> 8.10.7`)
@@ -11,3 +31,24 @@
7. run `cabal run ghcup-gen -- check-tarballs -f ghcup-<yaml-ver>.yaml -u 'ghc-8\.10\.8'` 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` 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 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 package ghcup
tests: False tests: False
flags: -tui +no-exe flags: +tui +no-exe
source-repository-package source-repository-package
type: git type: git
location: https://gitlab.haskell.org/haskell/ghcup-hs.git location: https://github.com/haskell/ghcup-hs.git
tag: v0.1.17.8 tag: e27fed09f3eb4b0b72ce7825c65f16a4202a2399
constraints: http-io-streams -brotli, constraints: http-io-streams -brotli,
any.Cabal ==3.6.2.0,
any.aeson >= 2.0.1.0 any.aeson >= 2.0.1.0
package libarchive package libarchive
flags: -system-libarchive flags: +system-libarchive
package aeson-pretty package aeson-pretty
flags: +lib-only flags: +lib-only
@@ -25,5 +24,5 @@ package cabal-plan
package aeson package aeson
flags: +ordered-keymap flags: +ordered-keymap
allow-newer: base, ghc-prim, template-haskell, language-c package streamly
flags: +use-unliftio

View File

@@ -2132,43 +2132,39 @@
} }
}, },
"GHCup": { "GHCup": {
"0.1.17.5": { "0.1.19.0": {
"viTags": [ "viTags": [
"Recommended", "Recommended",
"Latest" "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, "viSourceDL": null,
"viArch": { "viArch": {
"A_64": { "A_64": {
"Linux_UnknownLinux": { "Linux_UnknownLinux": {
"unknown_versioning": { "unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5", "dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0",
"dlSubdir": null, "dlHash": "33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12"
"dlHash": "7541bcf0b402f99d05cd1937f9fef69aec45c3153e42606671825be248484fb5"
} }
}, },
"Darwin": { "Darwin": {
"unknown_versioning": { "unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-apple-darwin-ghcup-0.1.17.5", "dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0",
"dlSubdir": null, "dlHash": "416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7"
"dlHash": "8b5159775de08a5f268f4be217fbb6f427ff8d8977197af209211b81ca0fe27f"
} }
}, },
"FreeBSD": { "FreeBSD": {
"unknown_versioning": { "unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-freebsd12-ghcup-0.1.17.5", "dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0",
"dlSubdir": null, "dlHash": "dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62"
"dlHash": "babb7366abb17bcb5d4fc1500039040f1b957073d618db3f1473b0bae6abc6bb"
} }
} }
}, },
"A_32": { "A_32": {
"Linux_UnknownLinux": { "Linux_UnknownLinux": {
"unknown_versioning": { "unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.17.5/i386-linux-ghcup-0.1.17.5", "dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0",
"dlSubdir": null, "dlHash": "0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53"
"dlHash": "5a2b1d2ceb32857866689ee1a1e29c5747333882a4e952d80eccf49482d3daab"
} }
} }
} }

Binary file not shown.

View File

@@ -2674,51 +2674,51 @@
} }
}, },
"GHCup": { "GHCup": {
"0.1.16.2": { "0.1.19.0": {
"viTags": [ "viTags": [
"Recommended", "Recommended",
"Latest" "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, "viSourceDL": null,
"viArch": { "viArch": {
"A_64": { "A_64": {
"Linux_UnknownLinux": { "Linux_UnknownLinux": {
"unknown_versioning": { "unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2", "dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0",
"dlHash": "d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893" "dlHash": "33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12"
} }
}, },
"Darwin": { "Darwin": {
"unknown_versioning": { "unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-apple-darwin-ghcup-0.1.16.2", "dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0",
"dlHash": "a334620ccce7705211b2142882dde544003e6030af4b91a44c890542a90f879f" "dlHash": "416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7"
} }
}, },
"FreeBSD": { "FreeBSD": {
"unknown_versioning": { "unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-portbld-freebsd-ghcup-0.1.16.2", "dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0",
"dlHash": "92359592a5694375e53b22628920086bf4bbf0faff5be018a0ed3e745a6426a9" "dlHash": "dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62"
} }
}, },
"Linux_Alpine": { "Linux_Alpine": {
"unknown_versioning": { "unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2", "dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0",
"dlHash": "d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893" "dlHash": "33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12"
} }
} }
}, },
"A_32": { "A_32": {
"Linux_UnknownLinux": { "Linux_UnknownLinux": {
"unknown_versioning": { "unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/i386-linux-ghcup-0.1.16.2", "dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0",
"dlHash": "01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38" "dlHash": "0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53"
} }
}, },
"Linux_Alpine": { "Linux_Alpine": {
"unknown_versioning": { "unknown_versioning": {
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/i386-linux-ghcup-0.1.16.2", "dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0",
"dlHash": "01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38" "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 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 dlHash: 9705e16d03497b46be4ad477e6c64d10890af853eafa8a9adf6dba89aa9e05f7
GHCup: GHCup:
0.1.17.5: 0.1.19.0:
viTags: viTags:
- Recommended - Recommended
- Latest - 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: viSourceDL:
viArch: viArch:
A_64: A_64:
Linux_UnknownLinux: Linux_UnknownLinux:
unknown_versioning: &ghcup-64 unknown_versioning: &ghcup-64
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
dlHash: 7541bcf0b402f99d05cd1937f9fef69aec45c3153e42606671825be248484fb5 dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
Darwin: Darwin:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-apple-darwin-ghcup-0.1.17.5 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
dlHash: 8b5159775de08a5f268f4be217fbb6f427ff8d8977197af209211b81ca0fe27f dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
FreeBSD: FreeBSD:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-freebsd12-ghcup-0.1.17.5 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
dlHash: babb7366abb17bcb5d4fc1500039040f1b957073d618db3f1473b0bae6abc6bb dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
Linux_Alpine: Linux_Alpine:
unknown_versioning: *ghcup-64 unknown_versioning: *ghcup-64
A_32: A_32:
Linux_UnknownLinux: Linux_UnknownLinux:
unknown_versioning: &ghcup-32 unknown_versioning: &ghcup-32
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/i386-linux-ghcup-0.1.17.5 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
dlHash: 5a2b1d2ceb32857866689ee1a1e29c5747333882a4e952d80eccf49482d3daab dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
Linux_Alpine: Linux_Alpine:
unknown_versioning: *ghcup-32 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 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 dlHash: 9705e16d03497b46be4ad477e6c64d10890af853eafa8a9adf6dba89aa9e05f7
GHCup: GHCup:
0.1.17.5: 0.1.19.0:
viTags: viTags:
- Recommended - Recommended
- Latest - 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: viSourceDL:
viArch: viArch:
A_64: A_64:
Linux_UnknownLinux: Linux_UnknownLinux:
unknown_versioning: &ghcup-64 unknown_versioning: &ghcup-64
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-linux-ghcup-0.1.17.5 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
dlHash: 7541bcf0b402f99d05cd1937f9fef69aec45c3153e42606671825be248484fb5 dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
Darwin: Darwin:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-apple-darwin-ghcup-0.1.17.5 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
dlHash: 8b5159775de08a5f268f4be217fbb6f427ff8d8977197af209211b81ca0fe27f dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
FreeBSD: FreeBSD:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/x86_64-freebsd12-ghcup-0.1.17.5 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
dlHash: babb7366abb17bcb5d4fc1500039040f1b957073d618db3f1473b0bae6abc6bb dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
Linux_Alpine: Linux_Alpine:
unknown_versioning: *ghcup-64 unknown_versioning: *ghcup-64
A_32: A_32:
Linux_UnknownLinux: Linux_UnknownLinux:
unknown_versioning: &ghcup-32 unknown_versioning: &ghcup-32
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.5/i386-linux-ghcup-0.1.17.5 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
dlHash: 5a2b1d2ceb32857866689ee1a1e29c5747333882a4e952d80eccf49482d3daab dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
Linux_Alpine: Linux_Alpine:
unknown_versioning: *ghcup-32 unknown_versioning: *ghcup-32
HLS: 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 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 dlHash: 16c0d1eaba24bed14f3e152970179a45d9f9bb5cc839b2c210ad06eb7d4826ed
GHCup: GHCup:
0.1.17.7: 0.1.19.0:
viTags: viTags:
- Recommended - Recommended
- Latest - 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: viSourceDL:
viArch: viArch:
A_64: A_64:
Linux_UnknownLinux: Linux_UnknownLinux:
unknown_versioning: &ghcup-64 unknown_versioning: &ghcup-64
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/x86_64-linux-ghcup-0.1.17.7 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
dlHash: e16eaf59dab84be7aa6415b53a3497f211d05163a50584dc854569b2ef8a7a3a dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
Darwin: Darwin:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/x86_64-apple-darwin-ghcup-0.1.17.7 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
dlHash: 9702f30c9374a122d79f7ef11170b34deb248a0f3cd92d671c0aab747be4add7 dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
FreeBSD: FreeBSD:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/x86_64-freebsd12-ghcup-0.1.17.7 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
dlHash: d3d0644dc5d9b51ed1c345fc006e936e9284b3181e5a9cccf4cf70a7184398fe dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
Linux_Alpine: Linux_Alpine:
unknown_versioning: *ghcup-64 unknown_versioning: *ghcup-64
A_32: A_32:
Linux_UnknownLinux: Linux_UnknownLinux:
unknown_versioning: &ghcup-32 unknown_versioning: &ghcup-32
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/i386-linux-ghcup-0.1.17.7 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
dlHash: 209f61872a5b401e85e4d542dd8d0c96437c1f1ad94b4fa5a28856f34ab0cab8 dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
Linux_Alpine: Linux_Alpine:
unknown_versioning: *ghcup-32 unknown_versioning: *ghcup-32
A_ARM64: A_ARM64:
Linux_UnknownLinux: Linux_UnknownLinux:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/aarch64-linux-ghcup-0.1.17.7 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-linux-ghcup-0.1.19.0
dlHash: 392dc46ef3f98733b154188982866859d174a750e32c5b742e6a1cf60159954e dlHash: a546dcd23a7e56f31bc4d6afad0276f88d3f0b850a3d3c36369721797dc3c3d5
Darwin: Darwin:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/aarch64-apple-darwin-ghcup-0.1.17.7 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-apple-darwin-ghcup-0.1.19.0
dlHash: 102d808b31248f86cbf569162ba1b7955e6747a684b2b4200b0958d6e4c54267 dlHash: 69bd8e37cd07606d928dca9215c066564a264e0def3c81171b76d5747dc6507c
A_ARM: A_ARM:
Linux_UnknownLinux: Linux_UnknownLinux:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.7/armv7-linux-ghcup-0.1.17.7 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/armv7-linux-ghcup-0.1.19.0
dlHash: 8438e22241fab4bfde94066a34600ab003db2f4ecadfd54bfad4ae990e6549a1 dlHash: 58a170c1fb0b4e701ebb40f90a23f6ababe9e61291726aad82e18d4649aed908
HLS: HLS:
1.1.0: 1.1.0:
viTags: 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 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 dlHash: 16c0d1eaba24bed14f3e152970179a45d9f9bb5cc839b2c210ad06eb7d4826ed
GHCup: GHCup:
0.1.18.0: 0.1.19.0:
viTags: viTags:
- Recommended - Recommended
- Latest - 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: viSourceDL:
viArch: viArch:
A_64: A_64:
Linux_UnknownLinux: Linux_UnknownLinux:
unknown_versioning: &ghcup-64 unknown_versioning: &ghcup-64
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
dlHash: 94559eb7c4569919446af1597d07675e803c20b150323edb7f9d8601c8bbda50 dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
Darwin: Darwin:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-apple-darwin-ghcup-0.1.18.0 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
dlHash: b34ed98bc0cc6d2169974f8d03173f93c3e3f60607013f1af42c9882c1a0d6f0 dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
FreeBSD: FreeBSD:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-freebsd12-ghcup-0.1.18.0 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
dlHash: cc8378a53f3028331dc853acfb253e2258d720b0e18b618b294ed67182a7fa03 dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
Windows: Windows:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-mingw64-ghcup-0.1.18.0.exe dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-mingw64-ghcup-0.1.19.0.exe
dlHash: e2166a50437c677dfab3362749f676f92ff786aae1bfd7a2d289efa3544ee654 dlHash: c4e4a764b0844e351eb6939ff236452f33c34808aaca69f973ea82e18d3aa1ac
Linux_Alpine: Linux_Alpine:
unknown_versioning: *ghcup-64 unknown_versioning: *ghcup-64
A_32: A_32:
Linux_UnknownLinux: Linux_UnknownLinux:
unknown_versioning: &ghcup-32 unknown_versioning: &ghcup-32
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/i386-linux-ghcup-0.1.18.0 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
dlHash: 222914720135261dcc644155bc8a5b15d1d4966c769d50686fe4f41547208759 dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
Linux_Alpine: Linux_Alpine:
unknown_versioning: *ghcup-32 unknown_versioning: *ghcup-32
A_ARM64: A_ARM64:
Linux_UnknownLinux: Linux_UnknownLinux:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/aarch64-linux-ghcup-0.1.18.0 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-linux-ghcup-0.1.19.0
dlHash: 3e3ee4aa06e426373fb7e29f1770987ca1621e414925f261f325f9acb77e0bcb dlHash: a546dcd23a7e56f31bc4d6afad0276f88d3f0b850a3d3c36369721797dc3c3d5
Darwin: Darwin:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/aarch64-apple-darwin-ghcup-0.1.18.0 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-apple-darwin-ghcup-0.1.19.0
dlHash: 2d3aa19d6f012c1a4ebc5907a05b06cf0d43a1499107020f59847ea2638c8649 dlHash: 69bd8e37cd07606d928dca9215c066564a264e0def3c81171b76d5747dc6507c
A_ARM: A_ARM:
Linux_UnknownLinux: Linux_UnknownLinux:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/armv7-linux-ghcup-0.1.18.0 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/armv7-linux-ghcup-0.1.19.0
dlHash: 2e94920c772bc24c9fe41004dedf46840f5f036d28d3ed183679d3f34d2c50e0 dlHash: 58a170c1fb0b4e701ebb40f90a23f6ababe9e61291726aad82e18d4649aed908
HLS: HLS:
1.1.0: 1.1.0:
viTags: [] viTags: []

Binary file not shown.

View File

@@ -2569,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 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 dlHash: 694ba7c14f8d720c6e790ab0488dbff2d8a07d9c6de97b4deeba31088f825bc2
GHCup: GHCup:
0.1.18.0: 0.1.19.0:
viTags: viTags:
- Recommended - Recommended
- Latest - 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: viSourceDL:
viArch: viArch:
A_64: A_64:
Linux_UnknownLinux: Linux_UnknownLinux:
unknown_versioning: &ghcup-64 unknown_versioning: &ghcup-64
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-linux-ghcup-0.1.18.0 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
dlHash: 94559eb7c4569919446af1597d07675e803c20b150323edb7f9d8601c8bbda50 dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
Darwin: Darwin:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-apple-darwin-ghcup-0.1.18.0 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
dlHash: b34ed98bc0cc6d2169974f8d03173f93c3e3f60607013f1af42c9882c1a0d6f0 dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
FreeBSD: FreeBSD:
'( >= 12 && < 13 )': unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-freebsd12-ghcup-0.1.18.0 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
dlHash: cc8378a53f3028331dc853acfb253e2258d720b0e18b618b294ed67182a7fa03 dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
'( >= 13 )':
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-freebsd13-ghcup-0.1.18.0
dlHash: cc8378a53f3028331dc853acfb253e2258d720b0e18b618b294ed67182a7fa03
Windows: Windows:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/x86_64-mingw64-ghcup-0.1.18.0.exe dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-mingw64-ghcup-0.1.19.0.exe
dlHash: e2166a50437c677dfab3362749f676f92ff786aae1bfd7a2d289efa3544ee654 dlHash: c4e4a764b0844e351eb6939ff236452f33c34808aaca69f973ea82e18d3aa1ac
Linux_Alpine: Linux_Alpine:
unknown_versioning: *ghcup-64 unknown_versioning: *ghcup-64
A_32: A_32:
Linux_UnknownLinux: Linux_UnknownLinux:
unknown_versioning: &ghcup-32 unknown_versioning: &ghcup-32
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/i386-linux-ghcup-0.1.18.0 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
dlHash: 222914720135261dcc644155bc8a5b15d1d4966c769d50686fe4f41547208759 dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
Linux_Alpine: Linux_Alpine:
unknown_versioning: *ghcup-32 unknown_versioning: *ghcup-32
A_ARM64: A_ARM64:
Linux_UnknownLinux: Linux_UnknownLinux:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/aarch64-linux-ghcup-0.1.18.0 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-linux-ghcup-0.1.19.0
dlHash: 3e3ee4aa06e426373fb7e29f1770987ca1621e414925f261f325f9acb77e0bcb dlHash: a546dcd23a7e56f31bc4d6afad0276f88d3f0b850a3d3c36369721797dc3c3d5
Darwin: Darwin:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/aarch64-apple-darwin-ghcup-0.1.18.0 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-apple-darwin-ghcup-0.1.19.0
dlHash: 2d3aa19d6f012c1a4ebc5907a05b06cf0d43a1499107020f59847ea2638c8649 dlHash: 69bd8e37cd07606d928dca9215c066564a264e0def3c81171b76d5747dc6507c
A_ARM: A_ARM:
Linux_UnknownLinux: Linux_UnknownLinux:
unknown_versioning: unknown_versioning:
dlUri: https://downloads.haskell.org/~ghcup/0.1.18.0/armv7-linux-ghcup-0.1.18.0 dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/armv7-linux-ghcup-0.1.19.0
dlHash: 2e94920c772bc24c9fe41004dedf46840f5f036d28d3ed183679d3f34d2c50e0 dlHash: 58a170c1fb0b4e701ebb40f90a23f6ababe9e61291726aad82e18d4649aed908
HLS: HLS:
1.1.0: 1.1.0:
viTags: viTags:

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

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

@@ -0,0 +1,42 @@
---
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.2.20230523:
viTags:
- base-4.18.0.0
viArch:
A_64:
Linux_UnknownLinux:
unknown_versioning: &ghc-wasm32-wasi-64-static
dlHash: 85433ce296f2f95a5c60f78060cb4a3a8bf8b56bf83ddd75f1b23cb2e2378888
dlSubdir: ghc-9.6.2.20230523-wasm32-wasi
dlUri: https://gitlab.haskell.org/api/v4/projects/3223/jobs/1530829/artifacts/ghc-x86_64-linux-alpine3_12-cross_wasm32-wasi-release%2Bfully_static.tar.xz
dlOutput: ghc-9.6.2.20230523-x86_64-linux-alpine3_12-cross_wasm32-wasi-release+fully_static.tar.xz
Linux_Alpine:
unknown_versioning: *ghc-wasm32-wasi-64-static

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

Binary file not shown.

View File

@@ -6,6 +6,7 @@
{-# LANGUAGE TypeApplications #-} {-# LANGUAGE TypeApplications #-}
{-# LANGUAGE ViewPatterns #-} {-# LANGUAGE ViewPatterns #-}
{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE LambdaCase #-}
module Generate where module Generate where
@@ -40,7 +41,7 @@ import System.Exit
import System.FilePath import System.FilePath
import System.IO import System.IO
import Text.Regex.Posix import Text.Regex.Posix
import GHCup.Utils.String.QQ import GHCup.Prelude.String.QQ
import qualified Data.ByteString.Lazy as BSL import qualified Data.ByteString.Lazy as BSL
import qualified Data.Map.Strict as M import qualified Data.Map.Strict as M
@@ -48,6 +49,12 @@ import qualified Data.Text as T
import qualified Data.Yaml.Pretty as YAML import qualified Data.Yaml.Pretty as YAML
import qualified Text.Megaparsec as MP import qualified Text.Megaparsec as MP
import Data.Bifoldable (bifoldMap)
import Data.Foldable (traverse_)
import Data.Text (Text)
import Text.PrettyPrint.HughesPJClass (pPrint)
data Format = FormatJSON data Format = FormatJSON
| FormatYAML | FormatYAML
@@ -84,6 +91,7 @@ generateHLSGhc format output = do
, DownloadFailed , DownloadFailed
, UnknownArchive , UnknownArchive
, ArchiveResult , ArchiveResult
, ContentLengthError
] $ do ] $ do
fp <- liftE $ downloadCached dli Nothing fp <- liftE $ downloadCached dli Nothing
let subd = _dlSubdir dli let subd = _dlSubdir dli
@@ -156,7 +164,7 @@ generateTable output = do
liftIO $ hPutStrLn handle $ "<table>" liftIO $ hPutStrLn handle $ "<table>"
liftIO $ hPutStrLn handle $ "<thead><tr><th>" <> show tool <> " Version</th><th>Tags</th></tr></thead>" liftIO $ hPutStrLn handle $ "<thead><tr><th>" <> show tool <> " Version</th><th>Tags</th></tr></thead>"
liftIO $ hPutStrLn handle $ "<tbody>" liftIO $ hPutStrLn handle $ "<tbody>"
vers <- reverse <$> listVersions (Just tool) Nothing vers <- reverse <$> listVersions (Just tool) [] False False (Nothing, Nothing)
forM_ (filter (\ListResult{..} -> not lStray) vers) $ \ListResult{..} -> do forM_ (filter (\ListResult{..} -> not lStray) vers) $ \ListResult{..} -> do
liftIO $ hPutStrLn handle $ liftIO $ hPutStrLn handle $
"<tr><td>" "<tr><td>"
@@ -227,3 +235,53 @@ generateSystemInfo output = do
prettyPlat (Linux UnknownLinux) = "Linux (generic)" prettyPlat (Linux UnknownLinux) = "Linux (generic)"
prettyPlat p = show p 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.Errors
import GHCup.Platform import GHCup.Platform
import GHCup.Utils.Dirs import GHCup.Utils.Dirs
import GHCup.Utils.Logger import GHCup.Prelude.Logger
import GHCup.Types.JSON ( ) import GHCup.Types.JSON ( )
import Control.Exception ( displayException ) import Control.Exception ( displayException )
@@ -105,11 +105,30 @@ inputP :: Parser Input
inputP = fileInput <|> stdInput inputP = fileInput <|> stdInput
data ValidateYAMLOpts = ValidateYAMLOpts data ValidateYAMLOpts = ValidateYAMLOpts
{ vInput :: Maybe Input { vChannel :: DistributionChannel
, vInput :: Maybe Input
} }
validateYAMLOpts :: Parser ValidateYAMLOpts 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 :: Parser TarballFilter
tarballFilterP = option readm $ tarballFilterP = option readm $
@@ -177,7 +196,7 @@ main = do
, fancyColors = not no_color , fancyColors = not no_color
} }
dirs <- liftIO getAllDirs dirs <- liftIO getAllDirs
let leanAppstate = LeanAppState (Settings True 0 False Never Curl True GHCupURL False GPGNone True) 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 <- ( pfreq <- (
flip runReaderT leanAppstate . runE @'[NoCompatiblePlatform, NoCompatibleArch, DistroNotFound] $ platformRequest flip runReaderT leanAppstate . runE @'[NoCompatiblePlatform, NoCompatibleArch, DistroNotFound] $ platformRequest
@@ -187,7 +206,7 @@ main = do
flip runReaderT leanAppstate $ logError $ T.pack $ prettyShow e flip runReaderT leanAppstate $ logError $ T.pack $ prettyShow e
liftIO $ exitWith (ExitFailure 2) liftIO $ exitWith (ExitFailure 2)
let appstate = AppState (Settings True 0 False Never Curl True GHCupURL False GPGNone True) 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 mempty) pfreq loggerConfig
let withValidateYamlOpts vopts f = case vopts of let withValidateYamlOpts vopts f = case vopts of
ValidateYAMLOpts { vInput = Nothing } -> ValidateYAMLOpts { vInput = Nothing } ->
@@ -205,11 +224,11 @@ main = do
_ <- customExecParser (prefs showHelpOnError) (info (opts <**> helper) idm) _ <- customExecParser (prefs showHelpOnError) (info (opts <**> helper) idm)
>>= \Options {..} -> case optCommand of >>= \Options {..} -> case optCommand of
ValidateYAML vopts -> withValidateYamlOpts vopts validate ValidateYAML vopts@ValidateYAMLOpts{ .. } -> withValidateYamlOpts vopts (validate vChannel)
ValidateTarballs vopts tarballFilter -> withValidateYamlOpts vopts (validateTarballs tarballFilter) ValidateTarballs vopts tarballFilter -> withValidateYamlOpts vopts (validateTarballs tarballFilter)
GenerateHlsGhc vopts format output -> withValidateYamlOpts vopts (generateHLSGhc format output) GenerateHlsGhc vopts format output -> withValidateYamlOpts vopts (generateHLSGhc format output)
GenerateToolTable vopts output -> withValidateYamlOpts vopts (generateTable output) GenerateToolTable vopts output -> withValidateYamlOpts vopts (generateTable output)
GenerateSystemDepsInfo vopts output -> withValidateYamlOpts vopts (generateSystemInfo output) GenerateSystemDepsInfo vopts output -> withValidateYamlOpts vopts (generateSystemInfoWithDistroVersion output)
pure () pure ()
where where

View File

@@ -15,8 +15,8 @@ import GHCup.Errors
import GHCup.Types import GHCup.Types
import GHCup.Types.Optics import GHCup.Types.Optics
import GHCup.Utils import GHCup.Utils
import GHCup.Utils.Logger import GHCup.Prelude.Logger
import GHCup.Utils.Version.QQ import GHCup.Prelude.Version.QQ
import Codec.Archive import Codec.Archive
import Control.Applicative import Control.Applicative
@@ -51,6 +51,11 @@ data ValidationError = InternalError String
instance Exception ValidationError instance Exception ValidationError
data DistributionChannel = MainChan
| PrereleaseChan
| NightlyChan
deriving (Show, Eq)
addError :: (MonadReader (IORef Int) m, MonadIO m, Monad m) => m () addError :: (MonadReader (IORef Int) m, MonadIO m, Monad m) => m ()
addError = do addError = do
@@ -66,8 +71,9 @@ validate :: ( Monad m
, MonadUnliftIO m , MonadUnliftIO m
, HasGHCupInfo env , HasGHCupInfo env
) )
=> m ExitCode => DistributionChannel
validate = do -> m ExitCode
validate distroChannel = do
GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo
ref <- liftIO $ newIORef 0 ref <- liftIO $ newIORef 0
@@ -81,7 +87,7 @@ validate = do
forM_ (M.toList dls) $ \(t, versions) -> forM_ (M.toList dls) $ \(t, versions) ->
forM_ (M.toList versions) $ \(v, vi) -> forM_ (M.toList versions) $ \(v, vi) ->
forM_ (M.toList $ _viArch vi) $ \(arch, pspecs) -> do 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 checkGHCVerIsValid
forM_ (M.toList dls) $ \(t, _) -> checkMandatoryTags t forM_ (M.toList dls) $ \(t, _) -> checkMandatoryTags t
@@ -95,33 +101,36 @@ validate = do
lift $ logInfo "All good" lift $ logInfo "All good"
pure ExitSuccess pure ExitSuccess
where where
checkHasRequiredPlatforms t v tags arch pspecs = do checkHasRequiredPlatforms t v tags arch pspecs
let v' = prettyVer v -- relax requirements for prerelease and nightly channels
arch' = prettyShow arch | distroChannel `elem` [PrereleaseChan, NightlyChan] = pure ()
when (Linux UnknownLinux `notElem` pspecs) $ do | otherwise = do
lift $ logError $ let v' = prettyVer v
"Linux UnknownLinux missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch' arch' = prettyShow arch
addError when (Linux UnknownLinux `notElem` pspecs) $ do
when ((Darwin `notElem` pspecs) && arch == A_64) $ do lift $ logError $
lift $ logError $ "Darwin missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch' "Linux UnknownLinux missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
addError addError
when ((FreeBSD `notElem` pspecs) && arch == A_64) $ lift $ logWarn $ when ((Darwin `notElem` pspecs) && arch == A_64) $ do
"FreeBSD missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch' lift $ logError $ "Darwin missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
when (Windows `notElem` pspecs && arch == A_64) $ do addError
lift $ logError $ "Windows missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch' when ((FreeBSD `notElem` pspecs) && arch == A_64) $ lift $ logWarn $
addError "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 -- alpine needs to be set explicitly, because
-- we cannot assume that "Linux UnknownLinux" runs on Alpine -- we cannot assume that "Linux UnknownLinux" runs on Alpine
-- (although it could be static) -- (although it could be static)
when (Linux Alpine `notElem` pspecs) $ when (Linux Alpine `notElem` pspecs) $
case t of 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 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|] 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 , 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 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)) , 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) _ -> lift $ logWarn $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)
checkUniqueTags tool = do checkUniqueTags tool = do
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
@@ -145,16 +154,19 @@ validate = do
lift $ logError $ "Tags not unique for " <> T.pack (prettyShow tool) <> ": " <> T.pack (prettyShow xs) lift $ logError $ "Tags not unique for " <> T.pack (prettyShow tool) <> ": " <> T.pack (prettyShow xs)
addError addError
where where
isUniqueTag Latest = True isUniqueTag Latest = True
isUniqueTag Recommended = True isUniqueTag Recommended = True
isUniqueTag Old = False isUniqueTag Old = False
isUniqueTag Prerelease = False isUniqueTag Prerelease = False
isUniqueTag (Base _) = False isUniqueTag LatestPrerelease = True
isUniqueTag (UnknownTag _) = False isUniqueTag Nightly = False
isUniqueTag LatestNightly = True
isUniqueTag (Base _) = False
isUniqueTag (UnknownTag _) = False
checkGHCVerIsValid = do checkGHCVerIsValid = do
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
let ghcVers = toListOf (ix GHC % to M.keys % folded) dls let ghcVers = toListOf (ix GHC % to M.keys % to (map _tvVersion) % folded) dls
forM_ ghcVers $ \v -> forM_ ghcVers $ \v ->
case [ x | (x,"") <- readP_to_S V.parseVersion (T.unpack . prettyVer $ v) ] of case [ x | (x,"") <- readP_to_S V.parseVersion (T.unpack . prettyVer $ v) ] of
[_] -> pure () [_] -> pure ()
@@ -166,19 +178,28 @@ validate = do
checkMandatoryTags tool = do checkMandatoryTags tool = do
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
let allTags = _viTags =<< M.elems (availableToolVersions dls tool) 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 False -> do
lift $ logError $ "Tag " <> T.pack (prettyShow t) <> " missing from " <> T.pack (prettyShow tool) lift $ logError $ "Tag " <> T.pack (prettyShow t) <> " missing from " <> T.pack (prettyShow tool)
addError addError
True -> pure () 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 -- all GHC versions must have a base tag
checkGHCHasBaseVersion = do checkGHCHasBaseVersion = do
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
let allTags = M.toList $ availableToolVersions dls GHC let allTags = M.toList $ availableToolVersions dls GHC
forM allTags $ \(ver, _viTags -> tags) -> case any isBase tags of forM allTags $ \(ver, _viTags -> tags) -> case any isBase tags of
False -> do False -> do
lift $ logError $ "Base tag missing from GHC ver " <> prettyVer ver lift $ logError $ "Base tag missing from GHC ver " <> prettyVer (_tvVersion ver)
addError addError
True -> pure () True -> pure ()
@@ -210,7 +231,11 @@ validateTarballs (TarballFilter etool versionRegex) = do
ref <- liftIO $ newIORef 0 ref <- liftIO $ newIORef 0
-- download/verify all tarballs -- 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 dlis = either (const []) (\tool -> nubOrd $ dls ^.. each %& indices (maybe (const True) (==) tool)
%> each %& indices (matchTest versionRegex . T.unpack . prettyVer . _tvVersion)
% (viTestDL % _Just `summing` viSourceDL % _Just `summing` viArch % each % each % each)
)
etool
let gdlis = nubOrd $ gt ^.. each let gdlis = nubOrd $ gt ^.. each
let allDls = either (const gdlis) (const dlis) etool let allDls = either (const gdlis) (const dlis) etool
when (null allDls) $ logError "no tarballs selected by filter" *> runReaderT addError ref when (null allDls) $ logError "no tarballs selected by filter" *> runReaderT addError ref
@@ -245,32 +270,32 @@ validateTarballs (TarballFilter etool versionRegex) = do
, DownloadFailed , DownloadFailed
, UnknownArchive , UnknownArchive
, ArchiveResult , ArchiveResult
, ContentLengthError
] ]
$ do $ do
case etool of case etool of
Right (Just GHCup) -> do Right (Just GHCup) -> do
tmpUnpack <- lift mkGhcupTmpDir 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 pure Nothing
Right _ -> do Right _ -> do
p <- liftE $ downloadCached dli Nothing p <- liftE $ downloadCached dli Nothing
fmap (Just . head . splitDirectories . head) fmap Just $ liftE
. liftE . getArchiveFiles
. getArchiveFiles $ p
$ p
Left ShimGen -> do Left ShimGen -> do
tmpUnpack <- lift mkGhcupTmpDir 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 pure Nothing
case r of case r of
VRight (Just basePath) -> do VRight (Just entries) -> do
case _dlSubdir dli of case _dlSubdir dli of
Just (RealDir prel) -> do Just (RealDir prel) -> do
logInfo logInfo
$ " verifying subdir: " <> T.pack prel $ " verifying subdir: " <> T.pack prel
when (basePath /= prel) $ do when (normalise prel `notElem` fmap (normalise . takeDirectory) entries) $ do
logError $ logError $
"Subdir doesn't match: expected " <> T.pack prel <> ", got " <> T.pack basePath "Subdir doesn't match: expected " <> T.pack prel
runReaderT addError ref runReaderT addError ref
Just (RegexDir regexString) -> do Just (RegexDir regexString) -> do
logInfo $ logInfo $
@@ -279,9 +304,9 @@ validateTarballs (TarballFilter etool versionRegex) = do
compIgnoreCase compIgnoreCase
execBlank execBlank
regexString regexString
unless (match regex basePath) $ do unless (or $ fmap (match regex. normalise) entries) $ do
logError $ 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 runReaderT addError ref
Nothing -> pure () Nothing -> pure ()
VRight Nothing -> pure () VRight Nothing -> pure ()

View File

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

File diff suppressed because it is too large Load Diff

Binary file not shown.

5456
ghcup-vanilla-0.0.7.yaml Normal file

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -608,5 +608,740 @@
"9.4.2" "9.4.2"
] ]
} }
},
"1.9.0.0": {
"A_64": {
"Darwin": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.4.3",
"9.4.4"
],
"Linux_CentOS": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.4.3",
"9.4.4"
],
"Linux_Debian": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.4.3",
"9.4.4"
],
"Linux_Fedora": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.4.3",
"9.4.4"
],
"Linux_Mint": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.4.3",
"9.4.4"
],
"Linux_Ubuntu": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.4.3",
"9.4.4"
],
"Linux_UnknownLinux": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.4.3",
"9.4.4"
],
"Windows": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.4.3",
"9.4.4"
]
},
"A_ARM64": {
"Darwin": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.4.3",
"9.4.4"
],
"Linux_UnknownLinux": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.4.3",
"9.4.4"
]
}
},
"1.9.1.0": {
"A_64": {
"Darwin": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.2.6",
"9.4.4"
],
"FreeBSD": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.2.6"
],
"Linux_CentOS": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.2.6",
"9.4.4"
],
"Linux_Debian": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.2.6",
"9.4.4"
],
"Linux_Fedora": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.2.6",
"9.4.4"
],
"Linux_Mint": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.2.6",
"9.4.4"
],
"Linux_RedHat": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.2.6",
"9.4.4"
],
"Linux_Ubuntu": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.2.6",
"9.4.4"
],
"Linux_UnknownLinux": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.2.6",
"9.4.4"
],
"Windows": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.2.6",
"9.4.4"
]
},
"A_ARM64": {
"Darwin": [
"8.10.7",
"9.2.5",
"9.2.6",
"9.4.4"
],
"Linux_UnknownLinux": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.2.6",
"9.4.4"
]
}
},
"1.10.0.0": {
"A_64": {
"Darwin": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.4",
"9.6.1"
],
"FreeBSD": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.2.7"
],
"Linux_CentOS": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.4",
"9.6.1"
],
"Linux_Debian": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.4",
"9.6.1"
],
"Linux_Fedora": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.4",
"9.6.1"
],
"Linux_Mint": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.4",
"9.6.1"
],
"Linux_RedHat": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.4",
"9.6.1"
],
"Linux_Ubuntu": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.4",
"9.6.1"
],
"Linux_UnknownLinux": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.4",
"9.6.1"
],
"Windows": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.4",
"9.6.1"
]
},
"A_ARM64": {
"Darwin": [
"8.10.7",
"9.2.7",
"9.4.4",
"9.6.1"
],
"Linux_UnknownLinux": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.4",
"9.6.1"
]
}
},
"2.0.0.0": {
"A_64": {
"Darwin": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.5",
"9.6.1"
],
"FreeBSD": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.2.7"
],
"Linux_CentOS": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.5",
"9.6.1"
],
"Linux_Debian": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.5",
"9.6.1"
],
"Linux_Fedora": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.5",
"9.6.1"
],
"Linux_Mint": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.5",
"9.6.1"
],
"Linux_RedHat": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.5",
"9.6.1"
],
"Linux_Ubuntu": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.5",
"9.6.1"
],
"Linux_UnknownLinux": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.5",
"9.6.1"
],
"Windows": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.5",
"9.6.1"
]
},
"A_ARM64": {
"Darwin": [
"8.10.7",
"9.2.7",
"9.4.5",
"9.6.1"
],
"Linux_UnknownLinux": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.4.5",
"9.6.1"
]
}
},
"2.0.0.1": {
"A_64": {
"Darwin": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.2.8",
"9.4.5",
"9.6.2"
],
"FreeBSD": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.2.7"
],
"Linux_CentOS": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.2.8",
"9.4.5",
"9.6.2"
],
"Linux_Debian": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.2.8",
"9.4.5",
"9.6.2"
],
"Linux_Fedora": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.2.8",
"9.4.5",
"9.6.2"
],
"Linux_Mint": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.2.8",
"9.4.5",
"9.6.2"
],
"Linux_RedHat": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.2.8",
"9.4.5",
"9.6.2"
],
"Linux_Ubuntu": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.2.8",
"9.4.5",
"9.6.2"
],
"Linux_UnknownLinux": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.2.8",
"9.4.5",
"9.6.2"
],
"Windows": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.2.8",
"9.4.5",
"9.6.2"
]
},
"A_ARM64": {
"Darwin": [
"8.10.7",
"9.2.7",
"9.2.8",
"9.4.5",
"9.6.2"
],
"Linux_UnknownLinux": [
"8.10.7",
"9.0.2",
"9.2.7",
"9.2.8",
"9.6.2"
]
}
},
"2.1.0.0": {
"A_64": {
"Darwin": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.6.2"
],
"FreeBSD": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.2.7"
],
"Linux_CentOS": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.6.2"
],
"Linux_Debian": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.6.2"
],
"Linux_Fedora": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.6.2"
],
"Linux_Mint": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.6.2"
],
"Linux_RedHat": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.6.2"
],
"Linux_Ubuntu": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.6.2"
],
"Linux_UnknownLinux": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.6.2"
],
"Windows": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.6.2"
]
},
"A_ARM64": {
"Darwin": [
"8.10.7",
"9.2.8",
"9.4.5",
"9.4.6",
"9.6.2"
],
"Linux_UnknownLinux": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.6.2"
]
}
},
"2.2.0.0": {
"A_64": {
"Darwin": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.4.7",
"9.6.2"
],
"FreeBSD": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.2.7"
],
"Linux_CentOS": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.4.7",
"9.6.2"
],
"Linux_Debian": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.4.7",
"9.6.2"
],
"Linux_Fedora": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.4.7",
"9.6.2"
],
"Linux_Mint": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.4.7",
"9.6.2"
],
"Linux_RedHat": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.4.7",
"9.6.2"
],
"Linux_Ubuntu": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.4.7",
"9.6.2"
],
"Linux_UnknownLinux": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.4.7",
"9.6.2"
],
"Windows": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.4.7",
"9.6.2"
]
},
"A_ARM64": {
"Darwin": [
"8.10.7",
"9.2.8",
"9.4.5",
"9.4.6",
"9.4.7",
"9.6.2"
],
"Linux_UnknownLinux": [
"8.10.7",
"9.0.2",
"9.2.8",
"9.4.5",
"9.4.6",
"9.4.7",
"9.6.2"
]
}
},
"2.3.0.0": {
"A_64": {
"Darwin": [
"9.0.2",
"9.2.8",
"9.4.7",
"9.6.2",
"9.6.3"
],
"FreeBSD": [
"8.10.7",
"9.0.2",
"9.2.5",
"9.2.7"
],
"Linux_CentOS": [
"9.0.2",
"9.2.8",
"9.4.7",
"9.6.2",
"9.6.3"
],
"Linux_Debian": [
"9.0.2",
"9.2.8",
"9.4.7",
"9.6.2",
"9.6.3"
],
"Linux_Fedora": [
"9.0.2",
"9.2.8",
"9.4.7",
"9.6.2",
"9.6.3"
],
"Linux_Mint": [
"9.0.2",
"9.2.8",
"9.4.7",
"9.6.2",
"9.6.3"
],
"Linux_RedHat": [
"9.0.2",
"9.2.8",
"9.4.7",
"9.6.2",
"9.6.3"
],
"Linux_Ubuntu": [
"9.0.2",
"9.2.8",
"9.4.7",
"9.6.2",
"9.6.3"
],
"Linux_UnknownLinux": [
"9.0.2",
"9.2.8",
"9.4.7",
"9.6.2",
"9.6.3"
],
"Windows": [
"9.0.2",
"9.2.8",
"9.4.7",
"9.6.2",
"9.6.3"
]
},
"A_ARM64": {
"Darwin": [
"9.2.8",
"9.4.7",
"9.6.2",
"9.6.3"
],
"Linux_UnknownLinux": [
"9.0.2",
"9.2.8",
"9.4.7",
"9.6.2",
"9.6.3"
]
}
} }
} }

Binary file not shown.