Compare commits
621 Commits
Author | SHA1 | Date | |
---|---|---|---|
99a488d812 | |||
168ffe67a0 | |||
![]() |
404dede2a0 | ||
dc1f856253 | |||
a0efa036ea | |||
![]() |
1824f4a5f2 | ||
b75566fdb7 | |||
1a8f43c621 | |||
![]() |
0eb0e41feb | ||
94a79c488a | |||
cd8c556894 | |||
6a586c209f | |||
1d55bd79dc | |||
eaf801cf9e | |||
022ea4fc9f | |||
d86cdc6ad3 | |||
0ec9a3501b | |||
6949f03f17 | |||
e00c42402c | |||
6addf3ebcd | |||
7cd13946d3 | |||
31ef65a669 | |||
211ad0ccf9 | |||
![]() |
f9f996f2da | ||
7cd74ae04c | |||
afda237897 | |||
c673aa2b6c | |||
![]() |
0022dff59c | ||
51635e6c8f | |||
b6ee7bd147 | |||
75ff83159f | |||
27259a5371 | |||
dac355d04e | |||
89515a5e88 | |||
9ff4c6722e | |||
7d12752e39 | |||
99f30b6972 | |||
d982705683 | |||
c0e640eaf4 | |||
b55e19ec58 | |||
2aab4576b3 | |||
05dfb012c3 | |||
b104b36a89 | |||
3122e40551 | |||
669b5f2c7a | |||
c9dae0c587 | |||
9c91a1db9d | |||
dc922fdaf7 | |||
96270a6e47 | |||
fb62effd61 | |||
ad7dfb2577 | |||
f2a0f90504 | |||
20bc3d5321 | |||
eb5db9a12b | |||
80bd6f4e01 | |||
2022a078ba | |||
98bf80ea7c | |||
237788718c | |||
b9809328e8 | |||
![]() |
8d3f759a52 | ||
![]() |
159705f7d2 | ||
7cf8f08ab5 | |||
6471d04eca | |||
![]() |
986c42c23d | ||
cca49a2e02 | |||
1a8dd34c9c | |||
![]() |
0aeed7fce1 | ||
6364364dac | |||
38aaac1e7c | |||
14c047a815 | |||
ca852c7689 | |||
199c9883aa | |||
98ffebe604 | |||
7d12142865 | |||
7188f45251 | |||
3c5c69c484 | |||
![]() |
99b460e5f7 | ||
8b6dfe1726 | |||
d098409897 | |||
![]() |
1d39781039 | ||
2e40f18b3f | |||
6e8925c6e2 | |||
1b60a75363 | |||
a200e133ef | |||
e0f04e5382 | |||
c996fb58db | |||
29ddd6df49 | |||
e3af73ea0e | |||
fef02e86ec | |||
204be22f1d | |||
df3c6da761 | |||
![]() |
ca2685f24d | ||
aedc11e4fb | |||
ab4fd8cc5e | |||
![]() |
0b6aaed91b | ||
74461fa3eb | |||
203a1b94e6 | |||
2c1774d54d | |||
f39585c4cd | |||
df9a1823da | |||
8e2325be15 | |||
4970bda020 | |||
970c2bf6fa | |||
eb4a09e61c | |||
900bd360fe | |||
f2f8784adf | |||
d55e426431 | |||
487d818c4b | |||
bef4f9cdeb | |||
cac4281b4e | |||
195a8db791 | |||
![]() |
ceddc91bbb | ||
![]() |
e2510ee0a5 | ||
![]() |
0b9211ee4a | ||
![]() |
54b32c287a | ||
![]() |
a4f1e138df | ||
d345ae6edd | |||
3679dde28e | |||
de91dadf5f | |||
fb1102a779 | |||
7bb3e8dab8 | |||
ba379f1545 | |||
80e1d2443f | |||
![]() |
a994cb2632 | ||
![]() |
7c4d1fbec7 | ||
![]() |
dfdf0d8de5 | ||
![]() |
e065282f9c | ||
![]() |
9be7c1cd8b | ||
13878c1718 | |||
df03513b8f | |||
805da33550 | |||
![]() |
2bc225772c | ||
d7770f9e23 | |||
f8e0ec9b12 | |||
6c6e2241bb | |||
f6ef3672ba | |||
cf678f25a0 | |||
8d715cf0a5 | |||
![]() |
0404f1bee5 | ||
441cf7328f | |||
5d2a8921b1 | |||
66c91f75b1 | |||
5771daa5f1 | |||
![]() |
a6c8849dcb | ||
![]() |
3c173efdc4 | ||
487b049ae1 | |||
75abeb4731 | |||
ff8aa8a0dd | |||
![]() |
2bfdba63c9 | ||
![]() |
3ecc0fb399 | ||
![]() |
147e54ae6c | ||
ec519eb080 | |||
4f3a14ed90 | |||
703e930808 | |||
41fe6ba6f0 | |||
8ac41d2124 | |||
dd975d630a | |||
582ffbc09f | |||
0471ccf394 | |||
fbc0843e53 | |||
cfa97b75bf | |||
0c2846b037 | |||
015db18a25 | |||
9ebb937b37 | |||
25f6f8cfad | |||
14d47470ca | |||
0bc52f0cf3 | |||
2b84274a65 | |||
c63fd65f90 | |||
a4fbe645e3 | |||
7e1a50cfff | |||
cb7d0c2f75 | |||
e54435c057 | |||
95c57ba3e4 | |||
f2c6c71cf0 | |||
2f761fc6fd | |||
a4bc77356f | |||
![]() |
f3264e2554 | ||
![]() |
54bd184feb | ||
![]() |
f413a1847b | ||
9a02e03efa | |||
aec5468b14 | |||
69cec748d2 | |||
7f8a37de45 | |||
779120126e | |||
af900f6ff0 | |||
1fc03b2c69 | |||
dea08aac35 | |||
80b933b01b | |||
82d1fda68b | |||
96bf980545 | |||
b20ad626e5 | |||
cb3428749a | |||
178aaaaa23 | |||
c489e5198e | |||
1936f88d5f | |||
578dc5e6d2 | |||
286d447f3d | |||
68b424fff3 | |||
dc6d43ddba | |||
174ff702a5 | |||
6e3fef8e15 | |||
fae0dc57ee | |||
befd7b563e | |||
15dec1bfe8 | |||
bbd150a777 | |||
567fdeba31 | |||
44c4df7024 | |||
f755827e5e | |||
a5bc56c914 | |||
601b3e8d33 | |||
eb717c5a12 | |||
48e58345b0 | |||
407cc0fafe | |||
6b3f8f0732 | |||
f6de249dc1 | |||
b928b5e0dd | |||
999be172de | |||
67885734c9 | |||
988dcdac63 | |||
0f13265d12 | |||
![]() |
967d4a81ab | ||
b81e05d21e | |||
a586bd5dba | |||
a1a80e41c9 | |||
e9cc5626cb | |||
cb09653a1b | |||
7bf64b363e | |||
f1f8eb8d7c | |||
772e54b936 | |||
10ae84aa7b | |||
0ae75a25ef | |||
16fb138bbe | |||
![]() |
6786ac32c0 | ||
![]() |
9d6836aa76 | ||
0239166c31 | |||
025f276131 | |||
cae42448a0 | |||
56d759176e | |||
df143e226f | |||
e914259ed7 | |||
![]() |
48cae51c31 | ||
173d03ef56 | |||
c806339f69 | |||
68633d49a5 | |||
7625d4bf83 | |||
2efadd4588 | |||
4917c671bf | |||
![]() |
dd4f6ff001 | ||
![]() |
70eccfe8d6 | ||
![]() |
0fde7e8686 | ||
![]() |
c1764cadab | ||
![]() |
1a5a7f3db4 | ||
![]() |
43f4782658 | ||
374a68e074 | |||
493c2c81f4 | |||
041f8b1421 | |||
b62f7ffa3b | |||
6ee7342fe3 | |||
1d43217082 | |||
4ffadfdda4 | |||
3e2ab12988 | |||
68731892cc | |||
b2843da016 | |||
53ef921fe1 | |||
20916def87 | |||
335bc378aa | |||
![]() |
1d366edea6 | ||
![]() |
971e013861 | ||
![]() |
397fd411af | ||
![]() |
124f62c0a2 | ||
![]() |
e93e21835e | ||
2d5701d480 | |||
d9fe82364c | |||
![]() |
ac43fb74c8 | ||
![]() |
5013094656 | ||
![]() |
fe6ad60f1d | ||
![]() |
5e077005e6 | ||
![]() |
ad3f8f9507 | ||
![]() |
97553d92cc | ||
![]() |
4f4e82f3a7 | ||
![]() |
9f5f9d0d40 | ||
![]() |
0e394642f1 | ||
![]() |
977147b65a | ||
![]() |
67de4cb8db | ||
![]() |
9946e32869 | ||
![]() |
7aa3b26848 | ||
![]() |
c8cfd2717f | ||
![]() |
62c55a1893 | ||
![]() |
0972ffb4c9 | ||
![]() |
73a6c8c0cf | ||
![]() |
cca4a2386d | ||
44cad536cf | |||
392c3879da | |||
![]() |
0702ea6eac | ||
![]() |
88882cc757 | ||
b2d276cd43 | |||
4be5f2a861 | |||
76bbc57292 | |||
![]() |
7c3d976be2 | ||
![]() |
4543dbe628 | ||
0dd813c3bc | |||
9cda41867d | |||
![]() |
3fb3d65717 | ||
![]() |
a66c722d9c | ||
![]() |
228b60092e | ||
![]() |
236a679e1f | ||
69dd66bfb8 | |||
![]() |
fab0629aab | ||
dff3e395c0 | |||
8faa5a00a4 | |||
![]() |
44c6e2b5d0 | ||
![]() |
9332b5c3b6 | ||
![]() |
6dc4112b03 | ||
![]() |
f40933da42 | ||
![]() |
9137f4b994 | ||
![]() |
ae0c031c78 | ||
![]() |
309ceffb43 | ||
![]() |
a239e448fa | ||
![]() |
5c735e8478 | ||
![]() |
fb1e1a8f7d | ||
![]() |
803b2cfd1b | ||
![]() |
dac7e22520 | ||
0759634d3c | |||
7312daf7da | |||
8fa3fc6f6f | |||
8550a086b4 | |||
b2aaecac07 | |||
fd29f96559 | |||
6aa90ff5dd | |||
046205bdc0 | |||
737cc346db | |||
7ab3419345 | |||
c88802ea8c | |||
5a85e7f735 | |||
cdd58df6a4 | |||
b089af6578 | |||
909e64ae8b | |||
9cff00364a | |||
e34b095e99 | |||
1a10c6d2e2 | |||
f5cf930de3 | |||
3ff8cf172d | |||
2b0f9134e9 | |||
4854047dc9 | |||
9266021236 | |||
8defb9068a | |||
b88e461c7c | |||
bb94c7445a | |||
27325db7c0 | |||
3459025d6f | |||
![]() |
62c05e25c6 | ||
e2102511b1 | |||
508f52dfb1 | |||
ec29b4bcc3 | |||
52f4dde1ee | |||
4cf9867563 | |||
![]() |
e9426c246d | ||
![]() |
5cba359c78 | ||
66a24ec9aa | |||
d7d93a85c2 | |||
13fad50ca2 | |||
484dd1084c | |||
c58fe8aaef | |||
407d47a2ba | |||
![]() |
d643f9f84e | ||
![]() |
0540871277 | ||
49063b09ba | |||
d6e7b29250 | |||
ffc8c38074 | |||
![]() |
e7a1ac0c15 | ||
9459d1cb08 | |||
d97d4fb8d7 | |||
d35571f02d | |||
2dbfc84ef6 | |||
92efb732ac | |||
6474e0e7de | |||
5f1802aee7 | |||
7a5ffc84ff | |||
![]() |
b37a8ca419 | ||
309dcd0344 | |||
16ca788725 | |||
86526f6015 | |||
1d00d31730 | |||
c975203b5e | |||
5c692ab9ec | |||
7c1bf39704 | |||
673a49bcc1 | |||
6926df6a00 | |||
874f9a52f8 | |||
![]() |
cb19cf7a20 | ||
![]() |
59ea5163ce | ||
b0a026f6a0 | |||
5700321a7d | |||
c58f03c71d | |||
96b1c8e3e9 | |||
60a30d8522 | |||
7de9fd3a8c | |||
b8606ec3b7 | |||
d19cc1d0f0 | |||
b703c55991 | |||
8b95d10664 | |||
d5c7e708d8 | |||
fea14b9a06 | |||
eadf9b61ba | |||
594bd5490d | |||
![]() |
1fa98afb67 | ||
9a262dc451 | |||
d4f085edf4 | |||
9c4b70f495 | |||
3e05dee7bf | |||
f8d0da5743 | |||
dfe477c1b7 | |||
f752a23491 | |||
df38f4edf2 | |||
ad42891618 | |||
![]() |
fe5f56580b | ||
4f8635e560 | |||
8501a6d4b2 | |||
94b469197d | |||
b1c5e84b42 | |||
51aa203205 | |||
0b98de04cc | |||
3e07ac0a20 | |||
d819571955 | |||
d33b26a495 | |||
0ba569e44c | |||
ea9b67d5d0 | |||
f47527468b | |||
![]() |
0939170115 | ||
2941394cb1 | |||
152f531e31 | |||
033fcb7f19 | |||
c3d3804e12 | |||
1b5713af8f | |||
8544b1bd49 | |||
cd5ff36ece | |||
3520430cd5 | |||
95b6a0a455 | |||
a68345fa44 | |||
98ca9d2f37 | |||
![]() |
f45f8c6061 | ||
12cb639ca1 | |||
eeb1e14e37 | |||
3d85d4d78a | |||
61f49e0992 | |||
7a709a22a4 | |||
b0004fb0e3 | |||
4b30ea60c0 | |||
bcc2ced30a | |||
![]() |
510f1f281d | ||
![]() |
1b182831ae | ||
7acba3cd1e | |||
023f6b1a74 | |||
![]() |
f9977b5a25 | ||
727ed6a374 | |||
f595461414 | |||
![]() |
0daacd0fb3 | ||
0306776a0b | |||
9e14e6c736 | |||
25b231442a | |||
dde651c769 | |||
a05354bbc8 | |||
27c82dc3f7 | |||
e85fc30d6c | |||
![]() |
93204da7fa | ||
adae303354 | |||
b6698d1d2b | |||
7e08589078 | |||
e6b0a8086a | |||
7fe858c762 | |||
c8fc5fb44e | |||
0b92651bcc | |||
bcfe45ad6b | |||
![]() |
ae180380b5 | ||
11aa850e1c | |||
e86689a03b | |||
053d4fe216 | |||
![]() |
173dc63375 | ||
9061e416ce | |||
e3cdf35f45 | |||
f45500e82a | |||
c42bb4a2ff | |||
![]() |
7601d79710 | ||
![]() |
11cb83955f | ||
0a1655fbb2 | |||
4bccb92d3f | |||
![]() |
c3f824ddc3 | ||
9abf634f8c | |||
5d50438a4c | |||
22867158fa | |||
d309865d02 | |||
af5688633d | |||
3b98df479a | |||
93514e964f | |||
4466b7ce4d | |||
1ba37946e1 | |||
f37840f592 | |||
![]() |
5b58beb3bd | ||
8f0e82ef06 | |||
de7b919c4f | |||
1b9f1fc804 | |||
32a75b482a | |||
6290ad816c | |||
2d705bf10a | |||
5da8fa8ea0 | |||
c3f3321617 | |||
45db7a6349 | |||
b29358a3ce | |||
448e6b65a1 | |||
f79a614842 | |||
38af24534d | |||
70f6aa4112 | |||
34414b4a6b | |||
cea865595a | |||
3f891cc56a | |||
fd71594ee6 | |||
8a0fcd3172 | |||
c5d3930c8f | |||
36dd18eeb5 | |||
4f8ca555fd | |||
![]() |
03e9916d24 | ||
![]() |
7737f5decf | ||
![]() |
ba07fa8baa | ||
![]() |
e8336c3093 | ||
![]() |
7381149b4e | ||
![]() |
ca7416674e | ||
![]() |
ab7231f10f | ||
![]() |
99133d949a | ||
![]() |
02588b8025 | ||
9c78f17415 | |||
33cb0e8708 | |||
bc72af60ca | |||
320f96acf7 | |||
![]() |
f013568183 | ||
86da8c3dfe | |||
![]() |
0bdb62c58e | ||
![]() |
0c0736526a | ||
ff79db284a | |||
86c7f4374a | |||
25a2382694 | |||
![]() |
928375fa74 | ||
29c04ab231 | |||
1a87f77dda | |||
fc911e1099 | |||
![]() |
2cc783fcab | ||
548aa90553 | |||
90571cee09 | |||
540ee16e8e | |||
![]() |
19bc7f338e | ||
7ec72168b0 | |||
d819e05b93 | |||
42f43a6b2d | |||
012fbb3f13 | |||
3fe6f8d804 | |||
![]() |
bbcf300e90 | ||
38062b4b0d | |||
81e04c51f1 | |||
ab64d11db6 | |||
4b22e690e7 | |||
a81cfd135b | |||
a8f55748cd | |||
2abf4f081b | |||
1819b160ee | |||
437a84e8d9 | |||
ac3cfb6193 | |||
2c562f8eec | |||
a47c62ab54 | |||
d54710d917 | |||
1eb6f3f256 | |||
3a9d5453fc | |||
366153c3c6 | |||
85d1172440 | |||
f7e62e1061 | |||
7d8f7eaf66 | |||
26e6477f3c | |||
855a7a9bcf | |||
abf57dbe8c | |||
fbf06cc9ee | |||
5f4cd00631 | |||
ff2b373807 | |||
ac808aebbd | |||
bb8c6b8d34 | |||
88696a0cc5 | |||
c9384767ac | |||
359ed3103a | |||
ba42ed295f | |||
7ab9f62645 | |||
9d2ebcb74d | |||
4c23f6a49e | |||
3683db0155 | |||
cc4bf53a23 | |||
40bf6cd44b | |||
3ad280534b | |||
40be6ebe7a | |||
7eac30f2d9 | |||
afcb5ff508 | |||
b8907c7c14 | |||
df8ab38e1f | |||
6fae2f7bc2 | |||
0371870d77 | |||
03f047e369 | |||
2bedba1205 | |||
3c9c41f9a7 | |||
b1d0995221 | |||
c12e652817 | |||
80b61ee4b7 | |||
a5c26cedb3 | |||
ee446fb9f9 | |||
81fe5fc42e | |||
1dea46b148 | |||
d68f918a6d | |||
![]() |
8e59562a96 | ||
![]() |
9f06e257e0 | ||
0470341203 | |||
0ccf71d8b9 | |||
![]() |
a7ceeca0f0 | ||
![]() |
e22bba40c3 | ||
c43df2e806 | |||
349f72488c | |||
cbc7043918 |
28
.github/scripts/brew.sh
vendored
Normal file
28
.github/scripts/brew.sh
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -eux
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
. .github/scripts/env.sh
|
||||
|
||||
if [ -e "$HOME/.brew" ] ; then
|
||||
(
|
||||
cd "$HOME/.brew"
|
||||
git fetch --depth 1
|
||||
git reset --hard origin/master
|
||||
)
|
||||
else
|
||||
git clone --depth=1 https://github.com/Homebrew/brew "$HOME/.brew"
|
||||
fi
|
||||
export PATH="$HOME/.brew/bin:$HOME/.brew/sbin:$PATH"
|
||||
|
||||
mkdir -p "$CI_PROJECT_DIR/.brew_cache"
|
||||
export HOMEBREW_CACHE="$CI_PROJECT_DIR/.brew_cache"
|
||||
mkdir -p "$CI_PROJECT_DIR/.brew_logs"
|
||||
export HOMEBREW_LOGS="$CI_PROJECT_DIR/.brew_logs"
|
||||
mkdir -p /private/tmp/.brew_tmp
|
||||
export HOMEBREW_TEMP=/private/tmp/.brew_tmp
|
||||
|
||||
#brew update
|
||||
brew install ${1+"$@"}
|
||||
|
66
.github/scripts/build.sh
vendored
Normal file
66
.github/scripts/build.sh
vendored
Normal file
@ -0,0 +1,66 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eux
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
. .github/scripts/env.sh
|
||||
# shellcheck disable=SC1091
|
||||
. .github/scripts/common.sh
|
||||
|
||||
uname -a
|
||||
uname -p
|
||||
uname
|
||||
pwd
|
||||
env
|
||||
|
||||
# ensure ghcup
|
||||
install_ghcup
|
||||
|
||||
# build
|
||||
ghcup install ghc "${GHC_VERSION}"
|
||||
ghcup set ghc "${GHC_VERSION}"
|
||||
sed -i.bak -e '/DELETE MARKER FOR CI/,/END DELETE/d' cabal.project # see comment in cabal.project
|
||||
ecabal update
|
||||
ecabal user-config diff
|
||||
ecabal user-config init -f
|
||||
"ghc-${GHC_VERSION}" --info
|
||||
"ghc" --info
|
||||
|
||||
# https://github.com/haskell/cabal/issues/7313#issuecomment-811851884
|
||||
if [ "$(getconf LONG_BIT)" == "32" ] || [ "${DISTRO}" == "CentOS" ] ; then
|
||||
echo 'constraints: lukko -ofd-locking' >> cabal.project.release.local
|
||||
fi
|
||||
|
||||
# shellcheck disable=SC2206
|
||||
args=(
|
||||
-w "ghc-$GHC_VERSION"
|
||||
--disable-profiling
|
||||
--enable-executable-stripping
|
||||
--project-file=cabal.project.release
|
||||
${ADD_CABAL_ARGS}
|
||||
)
|
||||
|
||||
run cabal v2-build "${args[@]}" cabal-install
|
||||
|
||||
mkdir -p "$CI_PROJECT_DIR/out"
|
||||
# shellcheck disable=SC2154
|
||||
cp "$(cabal list-bin "${args[@]}" cabal-install:exe:cabal)" "$CI_PROJECT_DIR/out/cabal$ext"
|
||||
cp dist-newstyle/cache/plan.json "$CI_PROJECT_DIR/out/plan.json"
|
||||
cd "$CI_PROJECT_DIR/out/"
|
||||
|
||||
# create tarball/zip
|
||||
TARBALL_PREFIX="cabal-install-$("$CI_PROJECT_DIR/out/cabal" --numeric-version)"
|
||||
case "${TARBALL_EXT}" in
|
||||
zip)
|
||||
zip "${TARBALL_PREFIX}-${ARTIFACT}.${TARBALL_EXT}" "cabal${ext}" plan.json
|
||||
;;
|
||||
tar.xz)
|
||||
tar caf "${TARBALL_PREFIX}-${ARTIFACT}.${TARBALL_EXT}" "cabal${ext}" plan.json
|
||||
;;
|
||||
*)
|
||||
fail "Unknown TARBALL_EXT: ${TARBALL_EXT}"
|
||||
;;
|
||||
esac
|
||||
|
||||
rm cabal plan.json
|
||||
|
110
.github/scripts/common.sh
vendored
Normal file
110
.github/scripts/common.sh
vendored
Normal file
@ -0,0 +1,110 @@
|
||||
#!/bin/bash
|
||||
|
||||
# shellcheck disable=SC1091
|
||||
. .github/scripts/env.sh
|
||||
|
||||
# Colors
|
||||
RED="0;31"
|
||||
LT_BROWN="1;33"
|
||||
LT_BLUE="1;34"
|
||||
|
||||
ecabal() {
|
||||
cabal "$@"
|
||||
}
|
||||
|
||||
nonfatal() {
|
||||
"$@" || "$* failed"
|
||||
}
|
||||
|
||||
sha_sum() {
|
||||
if [ "${RUNNER_OS}" = "FreeBSD" ] ; then
|
||||
sha256 "$@"
|
||||
else
|
||||
sha256sum "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
git_describe() {
|
||||
git config --global --get-all safe.directory | grep '^\*$' || git config --global --add safe.directory "*"
|
||||
git describe --always
|
||||
}
|
||||
|
||||
install_ghcup() {
|
||||
# find "$GHCUP_INSTALL_BASE_PREFIX"
|
||||
mkdir -p "$GHCUP_BIN"
|
||||
mkdir -p "$GHCUP_BIN"/../cache
|
||||
|
||||
if [ "${RUNNER_OS}" = "FreeBSD" ] ; then
|
||||
curl -o ghcup https://downloads.haskell.org/ghcup/tmp/x86_64-portbld-freebsd-ghcup-0.1.18.1
|
||||
chmod +x ghcup
|
||||
mv ghcup "$HOME/.local/bin/ghcup"
|
||||
else
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | BOOTSTRAP_HASKELL_MINIMAL=1 sh
|
||||
source "$(dirname "${GHCUP_BIN}")/env"
|
||||
ghcup install cabal --set "${BOOTSTRAP_HASKELL_CABAL_VERSION}"
|
||||
fi
|
||||
}
|
||||
|
||||
strip_binary() {
|
||||
(
|
||||
set -e
|
||||
local binary=$1
|
||||
case "$(uname -s)" in
|
||||
"Darwin"|"darwin")
|
||||
;;
|
||||
MSYS_*|MINGW*)
|
||||
;;
|
||||
*)
|
||||
strip -s "${binary}"
|
||||
;;
|
||||
esac
|
||||
)
|
||||
}
|
||||
|
||||
# GitLab Pipelines log section delimiters
|
||||
# https://gitlab.com/gitlab-org/gitlab-foss/issues/14664
|
||||
start_section() {
|
||||
name="$1"
|
||||
echo -e "section_start:$(date +%s):$name\015\033[0K"
|
||||
}
|
||||
|
||||
end_section() {
|
||||
name="$1"
|
||||
echo -e "section_end:$(date +%s):$name\015\033[0K"
|
||||
}
|
||||
|
||||
echo_color() {
|
||||
local color="$1"
|
||||
local msg="$2"
|
||||
echo -e "\033[${color}m${msg}\033[0m"
|
||||
}
|
||||
|
||||
error() { echo_color "${RED}" "$1"; }
|
||||
warn() { echo_color "${LT_BROWN}" "$1"; }
|
||||
info() { echo_color "${LT_BLUE}" "$1"; }
|
||||
|
||||
fail() { error "error: $1"; exit 1; }
|
||||
|
||||
run() {
|
||||
info "Running $*..."
|
||||
"$@" || ( error "$* failed"; return 1; )
|
||||
}
|
||||
|
||||
emake() {
|
||||
if command -v gmake >/dev/null 2>&1 ; then
|
||||
gmake "$@"
|
||||
else
|
||||
make "$@"
|
||||
fi
|
||||
}
|
||||
|
||||
mktempdir() {
|
||||
case "$(uname -s)" in
|
||||
"Darwin"|"darwin")
|
||||
mktemp -d -t cabal_ci.XXXXXXX
|
||||
;;
|
||||
*)
|
||||
mktemp -d
|
||||
;;
|
||||
esac
|
||||
}
|
38
.github/scripts/env.sh
vendored
Normal file
38
.github/scripts/env.sh
vendored
Normal file
@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
|
||||
mkdir -p "$HOME"/.local/bin
|
||||
|
||||
if [ "${RUNNER_OS}" = "Windows" ] ; then
|
||||
ext=".exe"
|
||||
else
|
||||
# shellcheck disable=SC2034
|
||||
ext=''
|
||||
fi
|
||||
|
||||
export PATH="$HOME/.local/bin:$PATH"
|
||||
|
||||
export BOOTSTRAP_HASKELL_NONINTERACTIVE=1
|
||||
export BOOTSTRAP_HASKELL_CABAL_VERSION="${CABAL_VER:-3.6.2.0-p2}"
|
||||
export BOOTSTRAP_HASKELL_ADJUST_CABAL_CONFIG=no
|
||||
export BOOTSTRAP_HASKELL_INSTALL_NO_STACK=yes
|
||||
export BOOTSTRAP_HASKELL_ADJUST_BASHRC=1
|
||||
|
||||
if [ "${RUNNER_OS}" = "Windows" ] ; then
|
||||
# on windows use pwd to get unix style path
|
||||
CI_PROJECT_DIR="$(pwd)"
|
||||
export CI_PROJECT_DIR
|
||||
export GHCUP_INSTALL_BASE_PREFIX="/c"
|
||||
export GHCUP_BIN="$GHCUP_INSTALL_BASE_PREFIX/ghcup/bin"
|
||||
export PATH="$GHCUP_BIN:$PATH"
|
||||
export CABAL_DIR="C:\\Users\\runneradmin\\AppData\\Roaming\\cabal"
|
||||
else
|
||||
export CI_PROJECT_DIR="${GITHUB_WORKSPACE}"
|
||||
export GHCUP_INSTALL_BASE_PREFIX="$CI_PROJECT_DIR"
|
||||
export GHCUP_BIN="$GHCUP_INSTALL_BASE_PREFIX/.ghcup/bin"
|
||||
export PATH="$GHCUP_BIN:$PATH"
|
||||
export CABAL_DIR="$CI_PROJECT_DIR/cabal"
|
||||
export CABAL_CACHE="$CI_PROJECT_DIR/cabal-cache"
|
||||
fi
|
||||
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
export TZ=Asia/Singapore
|
242
.github/workflows/bindists.yaml
vendored
Normal file
242
.github/workflows/bindists.yaml
vendored
Normal file
@ -0,0 +1,242 @@
|
||||
name: Bindist installation
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
tool:
|
||||
description: Tool
|
||||
required: true
|
||||
type: string
|
||||
version:
|
||||
description: Version
|
||||
required: true
|
||||
type: string
|
||||
metadataFile:
|
||||
description: Metadata file
|
||||
required: true
|
||||
default: ghcup-0.0.8.yaml
|
||||
type: string
|
||||
channel:
|
||||
description: Distribution channel (main|prerelease|nightly)
|
||||
required: true
|
||||
default: Main
|
||||
type: string
|
||||
env:
|
||||
BOOTSTRAP_HASKELL_NONINTERACTIVE: 1
|
||||
BOOTSTRAP_HASKELL_MINIMAL: 1
|
||||
BOOTSTRAP_HASKELL_ADJUST_BASHRC: 1
|
||||
TOOL: ${{ github.event.inputs.tool }}
|
||||
VERSION: ${{ github.event.inputs.version }}
|
||||
METADATA_FILE: ${{ github.event.inputs.metadataFile }}
|
||||
CHANNEL: ${{ github.event.inputs.channel }}
|
||||
jobs:
|
||||
bindist-install:
|
||||
name: linux-${{ matrix.image }}
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- image: alpine:latest
|
||||
installCmd: apk update && apk add
|
||||
toolRequirements: binutils-gold curl gcc g++ gmp-dev libc-dev libffi-dev make musl-dev ncurses-dev perl tar xz
|
||||
- image: debian:10
|
||||
installCmd: apt-get update && apt-get install -y
|
||||
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 libnuma-dev
|
||||
- image: debian:11
|
||||
installCmd: apt-get update && apt-get install -y
|
||||
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 libnuma-dev
|
||||
- image: debian:12
|
||||
installCmd: apt-get update && apt-get install -y
|
||||
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5 libnuma-dev
|
||||
- image: debian:unstable
|
||||
installCmd: apt-get update && apt-get install -y
|
||||
toolRequirements: build-essential curl libffi-dev libgmp-dev libgmp10 libncurses-dev libncurses6 libtinfo6 libnuma-dev
|
||||
- image: ubuntu:16.04
|
||||
installCmd: apt-get update && apt-get install -y
|
||||
toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||
- image: ubuntu:18.04
|
||||
installCmd: apt-get update && apt-get install -y
|
||||
toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||
- image: ubuntu:20.04
|
||||
installCmd: apt-get update && apt-get install -y
|
||||
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||
- image: ubuntu:22.04
|
||||
installCmd: apt-get update && apt-get install -y
|
||||
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||
- image: archlinux:latest
|
||||
installCmd: pacman -Syu --noconfirm
|
||||
toolRequirements: which gcc gmp libffi make ncurses perl tar xz
|
||||
- image: fedora:27
|
||||
installCmd: dnf install -y
|
||||
toolRequirements: which findutils gcc gcc-c++ gmp gmp-devel make ncurses ncurses-compat-libs xz perl
|
||||
- image: fedora:37
|
||||
installCmd: dnf install -y
|
||||
toolRequirements: which gcc g++ gmp gmp-devel make ncurses ncurses-compat-libs xz perl
|
||||
- image: rockylinux:8
|
||||
installCmd: dnf install -y
|
||||
toolRequirements: which findutils gcc gcc-c++ gmp gmp-devel make ncurses ncurses-compat-libs xz perl
|
||||
- image: rockylinux:9
|
||||
installCmd: dnf install -y --allowerasing
|
||||
toolRequirements: which findutils gcc gcc-c++ gmp gmp-devel make ncurses xz perl
|
||||
- image: linuxmintd/mint19.3-amd64
|
||||
installCmd: apt-get update && apt-get install -y
|
||||
toolRequirements: build-essential curl libffi-dev libffi6 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||
- image: linuxmintd/mint20.3-amd64
|
||||
installCmd: apt-get update && apt-get install -y
|
||||
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||
- image: linuxmintd/mint21.3-amd64
|
||||
installCmd: apt-get update && apt-get install -y
|
||||
toolRequirements: build-essential curl libffi-dev libffi7 libgmp-dev libgmp10 libncurses-dev libncurses5 libtinfo5
|
||||
- image: ghcr.io/void-linux/void-glibc-full:latest
|
||||
installCmd: xbps-install -Suy && xbps-install -y
|
||||
toolRequirements: binutils curl gcc gmp-devel glibc-devel libffi-devel make ncurses-devel ncurses-libtinfo-libs perl tar xz
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
steps:
|
||||
- name: Install requirements
|
||||
shell: sh
|
||||
run: |
|
||||
${{ matrix.installCmd }} curl bash git ${{ matrix.toolRequirements }}
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Install ghcup and bindist
|
||||
run: .github/workflows/install-bindist.sh
|
||||
|
||||
bindist-install-mac-win:
|
||||
name: Build non-linux
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: [self-hosted, macOS, ARM64]
|
||||
- os: macos-11
|
||||
- os: macos-12
|
||||
- os: windows-latest
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- if: ${{ github.event_name == 'workflow_dispatch' }}
|
||||
name: Install ghcup and bindist
|
||||
run: .github/workflows/install-bindist.sh
|
||||
|
||||
bindist-install-arm:
|
||||
name: Build ARM binary
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: [self-hosted, Linux, ARM64, maerwald]
|
||||
ARCH: ARM
|
||||
- os: [self-hosted, Linux, ARM64, maerwald]
|
||||
ARCH: ARM64
|
||||
steps:
|
||||
- uses: docker://arm64v8/ubuntu:focal
|
||||
name: Cleanup (aarch64 linux)
|
||||
with:
|
||||
args: "find . -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +"
|
||||
|
||||
- name: git config
|
||||
run: |
|
||||
git config --global --get-all safe.directory | grep '^\*$' || git config --global --add safe.directory "*"
|
||||
shell: bash
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- if: matrix.ARCH == 'ARM'
|
||||
uses: docker://hasufell/arm32v7-ubuntu-haskell:focal
|
||||
name: Run build (armv7 linux)
|
||||
with:
|
||||
args: sh -c '.github/workflows/install-bindist.sh'
|
||||
|
||||
- if: matrix.ARCH == 'ARM64'
|
||||
uses: docker://hasufell/arm64v8-ubuntu-haskell:focal
|
||||
name: Run build (aarch64 linux)
|
||||
with:
|
||||
args: sh -c '.github/workflows/install-bindist.sh'
|
||||
|
||||
bindist-install-freebsd:
|
||||
name: Install FreeBSD binary
|
||||
runs-on: [self-hosted, FreeBSD, X64]
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Run build
|
||||
run: .github/workflows/install-bindist.sh
|
||||
|
||||
validate:
|
||||
name: ghcup-gen check
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
GHC: 9.2.8
|
||||
CABAL: 3.10.1.0
|
||||
steps:
|
||||
- name: create ~/.local/bin
|
||||
run: mkdir -p "$HOME/.local/bin"
|
||||
shell: bash
|
||||
|
||||
- name: Add ~/.local/bin to PATH
|
||||
run: echo "$HOME/.local/bin" >> $GITHUB_PATH
|
||||
shell: bash
|
||||
|
||||
- name: install yamllint
|
||||
run: pip install yamllint
|
||||
|
||||
- name: Update cabal cache
|
||||
run: cabal update
|
||||
shell: bash
|
||||
|
||||
- name: Install requirements
|
||||
shell: sh
|
||||
run: |
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
export TZ=Asia/Singapore
|
||||
sudo apt-get update && sudo apt-get install -y curl bash git gnupg libarchive-dev
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Cache Cabal
|
||||
uses: actions/cache@v2
|
||||
env:
|
||||
cache-name: cache-cabal
|
||||
with:
|
||||
path: |
|
||||
~/.cabal/store
|
||||
~/.cabal/packages
|
||||
key: v2-${{ runner.os }}-${{ env.GHC }}-${{ env.CABAL }}-build-${{ hashFiles('cabal.project') }}
|
||||
restore-keys: |
|
||||
v2-${{ runner.os }}-${{ env.GHC }}-${{ env.CABAL }}-build-${{ hashFiles('cabal.project') }}
|
||||
v2-${{ runner.os }}-${{ env.GHC }}-${{ env.CABAL }}-build-
|
||||
v2-${{ runner.os }}-${{ env.GHC }}
|
||||
|
||||
- name: Install ghcup-gen
|
||||
run: |
|
||||
ghcup run --cabal 3.10.1.0 --ghc 9.2.8 --install -- cabal install --installdir="$HOME/.local/bin" --overwrite-policy=always --install-method=copy ghcup-gen
|
||||
shell: bash
|
||||
|
||||
- name: Check yaml
|
||||
run: |
|
||||
ghcup-gen -- check -f ${{ env.METADATA_FILE }} --channel ${{ env.CHANNEL }}
|
||||
yamllint ${{ env.METADATA_FILE }}
|
||||
python3 -c "import yaml ; stream = open('${{ env.METADATA_FILE }}', 'r') ; yaml.safe_load(stream)"
|
||||
shell: bash
|
||||
|
||||
signature-test:
|
||||
name: Test signatures
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Install requirements
|
||||
shell: sh
|
||||
run: |
|
||||
sudo apt-get update && sudo apt-get install -y curl bash git gnupg
|
||||
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Test signatures
|
||||
run: .github/workflows/test-sigs.sh
|
30
.github/workflows/common.sh
vendored
Normal file
30
.github/workflows/common.sh
vendored
Normal 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
|
||||
}
|
146
.github/workflows/install-bindist.sh
vendored
Executable file
146
.github/workflows/install-bindist.sh
vendored
Executable file
@ -0,0 +1,146 @@
|
||||
#!/usr/bin/env bash
|
||||
set -x
|
||||
set -eo pipefail
|
||||
|
||||
. .github/workflows/common.sh
|
||||
|
||||
export GHCUP_INSTALL_BASE_PREFIX=$RUNNER_TEMP/foobarbaz
|
||||
|
||||
curl --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/haskell/ghcup-hs/master/scripts/bootstrap/bootstrap-haskell | sh
|
||||
|
||||
source "$GHCUP_INSTALL_BASE_PREFIX"/.ghcup/env || source "$HOME/.bashrc"
|
||||
|
||||
ghcup --version
|
||||
which ghcup | grep foobarbaz
|
||||
|
||||
ghcup_fun() {
|
||||
case "$(uname -s)" in
|
||||
MSYS_*|MINGW*)
|
||||
ghcup -v --url-source="file:${GITHUB_WORKSPACE//\\//}/$METADATA_FILE" "$@"
|
||||
;;
|
||||
*)
|
||||
ghcup -v --url-source="file://${GITHUB_WORKSPACE}/$METADATA_FILE" "$@"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
case $TOOL in
|
||||
ghcup)
|
||||
ghcup_fun upgrade --force
|
||||
;;
|
||||
*) ghcup_fun install "$TOOL" --set "$VERSION"
|
||||
;;
|
||||
esac
|
||||
|
||||
mkdir -p /tmp/install-bindist-ci
|
||||
cd /tmp/install-bindist-ci
|
||||
|
||||
trap 'rm -rf -- /tmp/install-bindist-ci' EXIT
|
||||
|
||||
cat <<EOF > main.hs
|
||||
{- cabal:
|
||||
build-depends: base
|
||||
-}
|
||||
|
||||
main = print $ 1 + 1
|
||||
EOF
|
||||
|
||||
case $TOOL in
|
||||
ghcup)
|
||||
ghcup_fun list
|
||||
;;
|
||||
hls)
|
||||
ghcup_fun install cabal latest
|
||||
ghcup_fun install ghc --set recommended
|
||||
cabal update
|
||||
|
||||
test_package="bytestring-0.11.1.0"
|
||||
test_module="Data/ByteString.hs"
|
||||
|
||||
create_cradle() {
|
||||
echo "cradle:" > hie.yaml
|
||||
echo " cabal:" >> hie.yaml
|
||||
}
|
||||
|
||||
enter_test_package() {
|
||||
local tmp_dir
|
||||
tmp_dir=$(mktempdir)
|
||||
cd "$tmp_dir"
|
||||
cabal unpack "${test_package}"
|
||||
cd "${test_package}"
|
||||
}
|
||||
|
||||
# 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
|
||||
ghcup_fun install ghc --set recommended
|
||||
"$bindir/haskell-language-server-wrapper${ext}" typecheck "${test_module}" || fail "failed to typecheck with HLS wrapper"
|
||||
}
|
||||
|
||||
enter_test_package
|
||||
create_cradle
|
||||
case "$(uname -s)" in
|
||||
MSYS_*|MINGW*)
|
||||
test_all_hls "$(dirname "$(which ghcup)")"
|
||||
;;
|
||||
*)
|
||||
test_all_hls "$(ghcup whereis bindir)"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
ghc)
|
||||
ghc --version
|
||||
ghc --info
|
||||
ghc -prof main.hs
|
||||
[[ $(./main +RTS -s) -eq 2 ]]
|
||||
ghcup install cabal recommended
|
||||
cabal --version
|
||||
cabal update
|
||||
case "${CHANNEL}" in
|
||||
Prerelease|prereleasee)
|
||||
cabal install --lib --package-env=. --allow-newer clock
|
||||
# https://github.com/haskell/ghcup-hs/issues/966
|
||||
cabal install --lib --package-env=. --allow-newer --constraint='filepath <1.5' hashable
|
||||
;;
|
||||
*)
|
||||
cabal install --lib --package-env=. clock
|
||||
# https://github.com/haskell/ghcup-hs/issues/966
|
||||
cabal install --lib --package-env=. hashable
|
||||
;;
|
||||
esac
|
||||
case "$(uname -s)" in
|
||||
MSYS_*|MINGW*)
|
||||
;;
|
||||
*)
|
||||
[[ -e "$(ghcup whereis --directory ghc "$VERSION")/../share/man/man1/ghc.1" ]]
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
cabal)
|
||||
ghcup_fun install ghc --set "$(ghcup_fun list -t ghc -r -c available | tail -1 | awk '{ print $2 }')"
|
||||
cabal --version
|
||||
cabal update
|
||||
[[ $(cabal --verbose=0 run --enable-profiling ./main.hs -- +RTS -s) -eq 2 ]]
|
||||
;;
|
||||
*)
|
||||
$TOOL --version
|
||||
;;
|
||||
esac
|
6
.github/workflows/sigs
vendored
Normal file
6
.github/workflows/sigs
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
keys=(
|
||||
7D1E8AFD1D4A16D71FADA2F2CCC85C0E40C06A8C # Julian Ospald <maerwald@hasufell.de>
|
||||
FFEB7CE81E16A36B3E2DED6F2DE04D4E97DB64AD # Ben Gamari <ben@well-typed.com>
|
||||
88B57FCF7DB53B4DB3BFA4B1588764FBE22D19C4 # Zubin Duggal <zubin@well-typed.com>
|
||||
EAF2A9A722C0C96F2B431CA511AAD8CEDEE0CAEF # Hécate <hecate@glitchbra.in>
|
||||
)
|
27
.github/workflows/test-sigs.sh
vendored
Executable file
27
.github/workflows/test-sigs.sh
vendored
Executable file
@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -x
|
||||
set -eo pipefail
|
||||
|
||||
. .github/workflows/common.sh
|
||||
|
||||
get_key() {
|
||||
local key=$1
|
||||
local server=$2
|
||||
gpg --batch --keyserver "${server}" --recv-keys "${key}"
|
||||
echo -e "${key}:6:" | gpg --import-ownertrust
|
||||
}
|
||||
|
||||
# verify signature
|
||||
. .github/workflows/sigs
|
||||
|
||||
for key in "${keys[@]}" ; do
|
||||
get_key "${key}" keys.openpgp.org || get_key "${key}" keyserver.ubuntu.com
|
||||
done
|
||||
unset key
|
||||
gpg --verify "${METADATA_FILE}.sig"
|
||||
|
||||
for f in ghcup-*.json ghcup-*.yaml hls-metadata-*.json ; do
|
||||
gpg --verify "${f}.sig"
|
||||
done
|
||||
|
22
.github/workflows/test.yaml
vendored
22
.github/workflows/test.yaml
vendored
@ -2,16 +2,16 @@ name: Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
branches: [ master, develop ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
branches: [ master, develop ]
|
||||
|
||||
jobs:
|
||||
test:
|
||||
name: Test metadata
|
||||
runs-on: ${{ matrix.os }}
|
||||
env:
|
||||
YAML_VER: 0.0.6
|
||||
YAML_VER: 0.0.7
|
||||
strategy:
|
||||
matrix:
|
||||
ghc:
|
||||
@ -19,7 +19,7 @@ jobs:
|
||||
cabal:
|
||||
- '3.6.2.0'
|
||||
os:
|
||||
- ubuntu-latest
|
||||
- ubuntu-22.04
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v2
|
||||
@ -51,18 +51,30 @@ jobs:
|
||||
run: echo "$HOME/.local/bin" >> $GITHUB_PATH
|
||||
shell: bash
|
||||
|
||||
- name: install yamllint
|
||||
run: pip install yamllint
|
||||
|
||||
- name: Update cabal cache
|
||||
run: cabal update
|
||||
shell: bash
|
||||
|
||||
- name: Install some deps
|
||||
run: |
|
||||
export DEBIAN_FRONTEND=noninteractive
|
||||
export TZ=Asia/Singapore
|
||||
sudo apt install -y libarchive-dev
|
||||
shell: bash
|
||||
|
||||
- name: Install ghcup-gen
|
||||
run: |
|
||||
cabal install --installdir="$HOME/.local/bin" --overwrite-policy=always --install-method=copy ghcup-gen
|
||||
shell: bash
|
||||
|
||||
- name: Check
|
||||
- name: Check yaml
|
||||
run: |
|
||||
ghcup-gen -- check -f ghcup-${{ env.YAML_VER }}.yaml
|
||||
yamllint ghcup-${{ env.YAML_VER }}.yaml
|
||||
python3 -c "import yaml ; stream = open('ghcup-${{ env.YAML_VER }}.yaml', 'r') ; yaml.safe_load(stream)"
|
||||
shell: bash
|
||||
|
||||
- name: Check tarballs
|
||||
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -12,6 +12,6 @@ tags
|
||||
TAGS
|
||||
/tmp/
|
||||
.entangled
|
||||
release/
|
||||
releases/
|
||||
/release/
|
||||
/releases/
|
||||
site/
|
||||
|
5
.yamllint
Normal file
5
.yamllint
Normal file
@ -0,0 +1,5 @@
|
||||
extends: default
|
||||
|
||||
rules:
|
||||
line-length: disable
|
||||
indentation: disable
|
56
README.md
56
README.md
@ -1,12 +1,62 @@
|
||||
# GHCup metadata
|
||||
|
||||
## Adding a new GHC version
|
||||
## For end users
|
||||
|
||||
### Metadata variants (distribution channels)
|
||||
|
||||
* `ghcup-A.B.C.yaml`: this is the main metadata and what ghcup uses by default
|
||||
* `ghcup-vanilla-A.B.C.yaml`: this is similar to `ghcup-A.B.C.yaml`, but only uses upstream bindists (no patches/fixes are applied, no missing platforms added)
|
||||
* `ghcup-prereleases-A.B.C.yaml`: this contains pre-releases of all tools
|
||||
* `ghcup-cross-A.B.C.yaml`: this contains experimental cross compilers. See https://www.haskell.org/ghcup/guide/#cross-support for details.
|
||||
|
||||
### Using the metadata
|
||||
|
||||
If you want access to both pre-releases and cross compilers, run:
|
||||
|
||||
```
|
||||
ghcup config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml
|
||||
ghcup config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-cross-0.0.8.yaml
|
||||
```
|
||||
|
||||
If you want **only** vanilla upstream bindists and opt out of all unofficial stuff, you'd run:
|
||||
|
||||
```sh
|
||||
ghcup config set url-source https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-vanilla-0.0.8.yaml
|
||||
```
|
||||
|
||||
Also check the [config.yaml documentation](https://github.com/haskell/ghcup-hs/blob/master/data/config.yaml).
|
||||
|
||||
## For contributors
|
||||
|
||||
### Adding a new GHC version
|
||||
|
||||
1. open the latest `ghcup-<yaml-ver>.yaml`
|
||||
2. find the latest ghc version (in yaml tree e.g. `ghcupDownloads -> GHC -> 8.10.7`)
|
||||
3. copy-paste it
|
||||
4. adjust the version, tags, changelog, source url
|
||||
5. adjust the various bindist urls (make sure to also change the yaml anchors)
|
||||
6. run `cabal run ghcup-gen -- check -f ghcup-<yaml-ver>.yaml`
|
||||
7. run `cabal run ghcup-gen -- check-tarballs -f ghcup-<yaml-ver>.yaml -u 'ghc-8\.10\.8'`
|
||||
6. run `cabal run ghcup-gen -- check -f ghcup-<yaml-ver>.yaml`
|
||||
7. run `cabal run ghcup-gen -- check-tarballs -f ghcup-<yaml-ver>.yaml -u 'ghc-8\.10\.8'`
|
||||
8. run `cabal run ghcup-gen -- generate-hls-ghcs -f ghcup-<yaml-ver>.yaml --format json -o hls-metadata-0.0.1.json`
|
||||
9. run `cabal run ghcup-gen -- generate-table -f ghcup-<yaml-ver>.yaml --stdout` and adjust [docs/install](https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/docs/install.md) tables
|
||||
|
||||
### During a pull request
|
||||
|
||||
* make sure to always add new versions to both `ghcup-A.B.C.yaml` and `ghcup-vanilla-A.B.C.yaml`
|
||||
* make sure to run the bindist action to check tool installation on all platforms: https://github.com/haskell/ghcup-metadata/actions/workflows/bindists.yaml
|
||||
- this is a manual pipeline
|
||||
- set the appropriate parameters
|
||||
* make sure to sign the yaml files you edited, e.g.: `gpg --detach-sign -u <your-email> ghcup-0.0.7.yaml` or ask a GHCup developer to sign
|
||||
- PGP pubkeys need to be cross-signed by the GHCup team
|
||||
- they need to be added to the CI: https://github.com/haskell/ghcup-metadata/blob/develop/.github/workflows/sigs
|
||||
- and need to be documented on the homepage
|
||||
* https://github.com/haskell/ghcup-hs/blob/master/docs/guide.md#gpg-verification
|
||||
* https://github.com/haskell/ghcup-hs/blob/master/docs/install.md#unix
|
||||
|
||||
### Understanding tags
|
||||
|
||||
Tags are documented [here](https://github.com/haskell/ghcup-hs/blob/master/lib/GHCup/Types.hs). Search for `data Tag`.
|
||||
Some tags are unique. Uniqueness is checked by `cabal run ghcup-gen -- check -f ghcup-<yaml-ver>.yaml`.
|
||||
|
||||
If you want to check prereleases, do: `cabal run ghcup-gen -- check -f ghcup-prereleases-<yaml-ver>.yaml --channel=prerelease`
|
||||
|
||||
|
@ -2,19 +2,18 @@ packages: ./ghcup-gen/ghcup-gen.cabal
|
||||
|
||||
package ghcup
|
||||
tests: False
|
||||
flags: -tui +no-exe
|
||||
flags: +tui +no-exe
|
||||
|
||||
source-repository-package
|
||||
type: git
|
||||
location: https://gitlab.haskell.org/haskell/ghcup-hs.git
|
||||
tag: v0.1.17.4
|
||||
location: https://github.com/haskell/ghcup-hs.git
|
||||
tag: 91ef2c7666d118bc6bd7d2fc2eeb7754081a9f3d
|
||||
|
||||
constraints: http-io-streams -brotli,
|
||||
any.Cabal ==3.6.2.0,
|
||||
any.aeson >= 2.0.1.0
|
||||
|
||||
package libarchive
|
||||
flags: -system-libarchive
|
||||
flags: +system-libarchive
|
||||
|
||||
package aeson-pretty
|
||||
flags: +lib-only
|
||||
@ -25,5 +24,5 @@ package cabal-plan
|
||||
package aeson
|
||||
flags: +ordered-keymap
|
||||
|
||||
allow-newer: base, ghc-prim, template-haskell, language-c
|
||||
|
||||
package streamly
|
||||
flags: +use-unliftio
|
||||
|
@ -2132,43 +2132,39 @@
|
||||
}
|
||||
},
|
||||
"GHCup": {
|
||||
"0.1.16.2": {
|
||||
"0.1.19.0": {
|
||||
"viTags": [
|
||||
"Recommended",
|
||||
"Latest"
|
||||
],
|
||||
"viChangeLog": "https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md",
|
||||
"viChangeLog": "https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md",
|
||||
"viSourceDL": null,
|
||||
"viArch": {
|
||||
"A_64": {
|
||||
"Linux_UnknownLinux": {
|
||||
"unknown_versioning": {
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2",
|
||||
"dlSubdir": null,
|
||||
"dlHash": "d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893"
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0",
|
||||
"dlHash": "33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12"
|
||||
}
|
||||
},
|
||||
"Darwin": {
|
||||
"unknown_versioning": {
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-apple-darwin-ghcup-0.1.16.2",
|
||||
"dlSubdir": null,
|
||||
"dlHash": "a334620ccce7705211b2142882dde544003e6030af4b91a44c890542a90f879f"
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0",
|
||||
"dlHash": "416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7"
|
||||
}
|
||||
},
|
||||
"FreeBSD": {
|
||||
"unknown_versioning": {
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-portbld-freebsd-ghcup-0.1.16.2",
|
||||
"dlSubdir": null,
|
||||
"dlHash": "92359592a5694375e53b22628920086bf4bbf0faff5be018a0ed3e745a6426a9"
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0",
|
||||
"dlHash": "dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62"
|
||||
}
|
||||
}
|
||||
},
|
||||
"A_32": {
|
||||
"Linux_UnknownLinux": {
|
||||
"unknown_versioning": {
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/i386-linux-ghcup-0.1.16.2",
|
||||
"dlSubdir": null,
|
||||
"dlHash": "01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38"
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0",
|
||||
"dlHash": "0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Binary file not shown.
@ -2674,51 +2674,51 @@
|
||||
}
|
||||
},
|
||||
"GHCup": {
|
||||
"0.1.16.2": {
|
||||
"0.1.19.0": {
|
||||
"viTags": [
|
||||
"Recommended",
|
||||
"Latest"
|
||||
],
|
||||
"viChangeLog": "https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md",
|
||||
"viChangeLog": "https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md",
|
||||
"viSourceDL": null,
|
||||
"viArch": {
|
||||
"A_64": {
|
||||
"Linux_UnknownLinux": {
|
||||
"unknown_versioning": {
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2",
|
||||
"dlHash": "d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893"
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0",
|
||||
"dlHash": "33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12"
|
||||
}
|
||||
},
|
||||
"Darwin": {
|
||||
"unknown_versioning": {
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-apple-darwin-ghcup-0.1.16.2",
|
||||
"dlHash": "a334620ccce7705211b2142882dde544003e6030af4b91a44c890542a90f879f"
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0",
|
||||
"dlHash": "416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7"
|
||||
}
|
||||
},
|
||||
"FreeBSD": {
|
||||
"unknown_versioning": {
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-portbld-freebsd-ghcup-0.1.16.2",
|
||||
"dlHash": "92359592a5694375e53b22628920086bf4bbf0faff5be018a0ed3e745a6426a9"
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0",
|
||||
"dlHash": "dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62"
|
||||
}
|
||||
},
|
||||
"Linux_Alpine": {
|
||||
"unknown_versioning": {
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2",
|
||||
"dlHash": "d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893"
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0",
|
||||
"dlHash": "33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12"
|
||||
}
|
||||
}
|
||||
},
|
||||
"A_32": {
|
||||
"Linux_UnknownLinux": {
|
||||
"unknown_versioning": {
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/i386-linux-ghcup-0.1.16.2",
|
||||
"dlHash": "01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38"
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0",
|
||||
"dlHash": "0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53"
|
||||
}
|
||||
},
|
||||
"Linux_Alpine": {
|
||||
"unknown_versioning": {
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.16.2/i386-linux-ghcup-0.1.16.2",
|
||||
"dlHash": "01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38"
|
||||
"dlUri": "https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0",
|
||||
"dlHash": "0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Binary file not shown.
@ -1384,32 +1384,32 @@ ghcupDownloads:
|
||||
dlUri: https://oleg.fi/cabal-install-3.4.0.0-rc4/cabal-install-3.4.0.0-x86_64-freebsd-12.1-release.tar.xz
|
||||
dlHash: 9705e16d03497b46be4ad477e6c64d10890af853eafa8a9adf6dba89aa9e05f7
|
||||
GHCup:
|
||||
0.1.16.2:
|
||||
0.1.19.0:
|
||||
viTags:
|
||||
- Recommended
|
||||
- Latest
|
||||
viChangeLog: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md
|
||||
viChangeLog: https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md
|
||||
viSourceDL:
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghcup-64
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2
|
||||
dlHash: d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
|
||||
dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-apple-darwin-ghcup-0.1.16.2
|
||||
dlHash: a334620ccce7705211b2142882dde544003e6030af4b91a44c890542a90f879f
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
|
||||
dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
|
||||
FreeBSD:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-portbld-freebsd-ghcup-0.1.16.2
|
||||
dlHash: 92359592a5694375e53b22628920086bf4bbf0faff5be018a0ed3e745a6426a9
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
|
||||
dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghcup-64
|
||||
A_32:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghcup-32
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/i386-linux-ghcup-0.1.16.2
|
||||
dlHash: 01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
|
||||
dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghcup-32
|
||||
|
Binary file not shown.
@ -1451,33 +1451,33 @@ ghcupDownloads:
|
||||
dlUri: https://oleg.fi/cabal-install-3.4.0.0-rc4/cabal-install-3.4.0.0-x86_64-freebsd-12.1-release.tar.xz
|
||||
dlHash: 9705e16d03497b46be4ad477e6c64d10890af853eafa8a9adf6dba89aa9e05f7
|
||||
GHCup:
|
||||
0.1.16.2:
|
||||
0.1.19.0:
|
||||
viTags:
|
||||
- Recommended
|
||||
- Latest
|
||||
viChangeLog: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md
|
||||
viChangeLog: https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md
|
||||
viSourceDL:
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghcup-64
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2
|
||||
dlHash: d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
|
||||
dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-apple-darwin-ghcup-0.1.16.2
|
||||
dlHash: a334620ccce7705211b2142882dde544003e6030af4b91a44c890542a90f879f
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
|
||||
dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
|
||||
FreeBSD:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-portbld-freebsd-ghcup-0.1.16.2
|
||||
dlHash: 92359592a5694375e53b22628920086bf4bbf0faff5be018a0ed3e745a6426a9
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
|
||||
dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghcup-64
|
||||
A_32:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghcup-32
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/i386-linux-ghcup-0.1.16.2
|
||||
dlHash: 01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
|
||||
dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghcup-32
|
||||
HLS:
|
||||
|
Binary file not shown.
Binary file not shown.
@ -1868,49 +1868,49 @@ ghcupDownloads:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.4.0.0/cabal-install-3.4.0.0-armv7-linux-bootstrapped.tar.xz
|
||||
dlHash: 16c0d1eaba24bed14f3e152970179a45d9f9bb5cc839b2c210ad06eb7d4826ed
|
||||
GHCup:
|
||||
0.1.16.2:
|
||||
0.1.19.0:
|
||||
viTags:
|
||||
- Recommended
|
||||
- Latest
|
||||
viChangeLog: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md
|
||||
viChangeLog: https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md
|
||||
viSourceDL:
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghcup-64
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2
|
||||
dlHash: d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
|
||||
dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-apple-darwin-ghcup-0.1.16.2
|
||||
dlHash: a334620ccce7705211b2142882dde544003e6030af4b91a44c890542a90f879f
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
|
||||
dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
|
||||
FreeBSD:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-portbld-freebsd-ghcup-0.1.16.2
|
||||
dlHash: 92359592a5694375e53b22628920086bf4bbf0faff5be018a0ed3e745a6426a9
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
|
||||
dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghcup-64
|
||||
A_32:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghcup-32
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/i386-linux-ghcup-0.1.16.2
|
||||
dlHash: 01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
|
||||
dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghcup-32
|
||||
A_ARM64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/aarch64-linux-ghcup-0.1.16.2
|
||||
dlHash: 0bdbfc724e0ddabb266156eea83c2c4e19c6ed79dd06db0c29b7d69df8d9fa8c
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-linux-ghcup-0.1.19.0
|
||||
dlHash: a546dcd23a7e56f31bc4d6afad0276f88d3f0b850a3d3c36369721797dc3c3d5
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/aarch64-apple-darwin-ghcup-0.1.16.2
|
||||
dlHash: 8854e991a2ba1350abda59dab96ce50ae7729d1ce99399d67929ef31e90f1da5
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-apple-darwin-ghcup-0.1.19.0
|
||||
dlHash: 69bd8e37cd07606d928dca9215c066564a264e0def3c81171b76d5747dc6507c
|
||||
A_ARM:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/armv7-linux-ghcup-0.1.16.2
|
||||
dlHash: 983ebb5b584bfa600704216a63f94b40d36a02573834e90ef1042c8472d9ad57
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/armv7-linux-ghcup-0.1.19.0
|
||||
dlHash: 58a170c1fb0b4e701ebb40f90a23f6ababe9e61291726aad82e18d4649aed908
|
||||
HLS:
|
||||
1.1.0:
|
||||
viTags:
|
||||
|
Binary file not shown.
@ -2025,53 +2025,53 @@ ghcupDownloads:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.4.0.0/cabal-install-3.4.0.0-armv7-linux-bootstrapped.tar.xz
|
||||
dlHash: 16c0d1eaba24bed14f3e152970179a45d9f9bb5cc839b2c210ad06eb7d4826ed
|
||||
GHCup:
|
||||
0.1.16.2:
|
||||
0.1.19.0:
|
||||
viTags:
|
||||
- Recommended
|
||||
- Latest
|
||||
viChangeLog: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md
|
||||
viChangeLog: https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md
|
||||
viSourceDL:
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghcup-64
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-linux-ghcup-0.1.16.2
|
||||
dlHash: d5e43b95ce1d42263376e414f7eb7c5dd440271c7c6cd9bad446fdeff3823893
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-linux-ghcup-0.1.19.0
|
||||
dlHash: 33ee6a758ee06e3b520be176905e6192e31f5fa2e2acdc525b1bea77ca368a12
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-apple-darwin-ghcup-0.1.16.2
|
||||
dlHash: a334620ccce7705211b2142882dde544003e6030af4b91a44c890542a90f879f
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-apple-darwin-ghcup-0.1.19.0
|
||||
dlHash: 416de8509092fd95f97ee19a5f3def91fbd6e6fa4fa630a5c5e7226f49a83af7
|
||||
FreeBSD:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-portbld-freebsd-ghcup-0.1.16.2
|
||||
dlHash: 92359592a5694375e53b22628920086bf4bbf0faff5be018a0ed3e745a6426a9
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-portbld-freebsd-ghcup-0.1.19.0
|
||||
dlHash: dadf49f8ac045946ccea7369d0c80cf3a5221b2282d8f9943cc3dc86e8516a62
|
||||
Windows:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/x86_64-mingw64-ghcup-0.1.16.2.exe
|
||||
dlHash: ec78872a84213968c490675127b9aad2285980b747c68207801ae824b98c7948
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/x86_64-mingw64-ghcup-0.1.19.0.exe
|
||||
dlHash: c4e4a764b0844e351eb6939ff236452f33c34808aaca69f973ea82e18d3aa1ac
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghcup-64
|
||||
A_32:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghcup-32
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/i386-linux-ghcup-0.1.16.2
|
||||
dlHash: 01968ca6decac7b6e8ba6e2c817870d3fa47289a6507e0c1ab563f7b6eec0e38
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/i386-linux-ghcup-0.1.19.0
|
||||
dlHash: 0308ebed4431241ef2886a9d374feb20a795d97ef3a24dd38b6bc7dd69e81e53
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghcup-32
|
||||
A_ARM64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/aarch64-linux-ghcup-0.1.16.2
|
||||
dlHash: 0bdbfc724e0ddabb266156eea83c2c4e19c6ed79dd06db0c29b7d69df8d9fa8c
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-linux-ghcup-0.1.19.0
|
||||
dlHash: a546dcd23a7e56f31bc4d6afad0276f88d3f0b850a3d3c36369721797dc3c3d5
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/aarch64-apple-darwin-ghcup-0.1.16.2
|
||||
dlHash: 8854e991a2ba1350abda59dab96ce50ae7729d1ce99399d67929ef31e90f1da5
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/aarch64-apple-darwin-ghcup-0.1.19.0
|
||||
dlHash: 69bd8e37cd07606d928dca9215c066564a264e0def3c81171b76d5747dc6507c
|
||||
A_ARM:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.16.2/armv7-linux-ghcup-0.1.16.2
|
||||
dlHash: 983ebb5b584bfa600704216a63f94b40d36a02573834e90ef1042c8472d9ad57
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.19.0/armv7-linux-ghcup-0.1.19.0
|
||||
dlHash: 58a170c1fb0b4e701ebb40f90a23f6ababe9e61291726aad82e18d4649aed908
|
||||
HLS:
|
||||
1.1.0:
|
||||
viTags: []
|
||||
|
Binary file not shown.
315
ghcup-0.0.6.yaml
315
ghcup-0.0.6.yaml
@ -1741,9 +1741,9 @@ ghcupDownloads:
|
||||
unknown_versioning: *ghc-8106-64-centos
|
||||
Linux_Alpine:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghc/8.10.6/ghc-8.10.6-x86_64-alpine3.10-linux-integer-simple.tar.xz
|
||||
dlSubdir: ghc-8.10.6-x86_64-unknown-linux
|
||||
dlHash: f6c86909f665c9a01b9703450a500a5206a951ee43e6a0a227eebe1da0987d6a
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/8.10.6/ghc-8.10.6-x86_64-alpine-linux-integer-gmp.tar.xz
|
||||
dlSubdir: ghc-8.10.6
|
||||
dlHash: 9abde42f1acb713d3423957c13af8c5e654f51126e66586f9b9c4df266c6c044
|
||||
Linux_AmazonLinux:
|
||||
unknown_versioning: *ghc-8106-64-centos
|
||||
Linux_UnknownLinux:
|
||||
@ -1842,9 +1842,9 @@ ghcupDownloads:
|
||||
unknown_versioning: *ghc-8107-64-centos
|
||||
Linux_Alpine:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghc/8.10.7/ghc-8.10.7-x86_64-alpine3.10-linux-integer-simple.tar.xz
|
||||
dlSubdir: ghc-8.10.7-x86_64-unknown-linux
|
||||
dlHash: 16903df850ef73d5246f2ff169cbf57ecab76c2ac5acfa9928934282cfad575c
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/8.10.7/ghc-8.10.7-x86_64-alpine-linux-integer-gmp.tar.xz
|
||||
dlSubdir: ghc-8.10.7
|
||||
dlHash: fa9fbb921fba5a9482ac009800be43f0fe42c60e54fab55ded9f2327d624cb6d
|
||||
Linux_AmazonLinux:
|
||||
unknown_versioning: *ghc-8107-64-centos
|
||||
Linux_UnknownLinux:
|
||||
@ -1902,6 +1902,7 @@ ghcupDownloads:
|
||||
9.0.1:
|
||||
viTags:
|
||||
- base-4.15.0.0
|
||||
- old
|
||||
viChangeLog: https://downloads.haskell.org/~ghc/9.0.1/docs/html/users_guide/9.0.1-notes.html
|
||||
viSourceDL:
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-src.tar.xz
|
||||
@ -1941,9 +1942,9 @@ ghcupDownloads:
|
||||
unknown_versioning: *ghc-901-64-centos
|
||||
Linux_Alpine:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.0.1/ghc-9.0.1-x86_64-alpine3.10-linux-integer-simple.tar.xz
|
||||
dlSubdir: ghc-9.0.1-x86_64-unknown-linux
|
||||
dlHash: 7c1a0154c9e361b75be6cb0305533bb8a3b963c54e8092ffd1759e5710805a5c
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/9.0.1/ghc-9.0.1-x86_64-alpine-linux-integer-gmp.tar.xz
|
||||
dlSubdir: ghc-9.0.1
|
||||
dlHash: 33dd5221ead3c81711f2a21fbf97b411327c837f2d1b8753e2de5e6e63abb805
|
||||
Linux_AmazonLinux:
|
||||
unknown_versioning: *ghc-901-64-centos
|
||||
Linux_UnknownLinux:
|
||||
@ -2088,7 +2089,7 @@ ghcupDownloads:
|
||||
dlHash: b1fcab17fe48326d2ff302d70c12bc4cf4d570dfbbce68ab57c719cfec882b05
|
||||
9.2.1:
|
||||
viTags:
|
||||
- Latest
|
||||
- old
|
||||
- base-4.16.0.0
|
||||
viChangeLog: https://downloads.haskell.org/~ghc/9.2.1/docs/html/users_guide/index.html
|
||||
viSourceDL:
|
||||
@ -2119,6 +2120,12 @@ ghcupDownloads:
|
||||
Linux_Fedora:
|
||||
'( >= 27 && < 28 )': *ghc-921-64-fedora
|
||||
unknown_versioning: *ghc-921-64-fedora
|
||||
Linux_CentOS:
|
||||
'( >= 7 && < 8 )': &ghc-921-64-centos
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.2.1/ghc-9.2.1-x86_64-centos7-linux.tar.xz
|
||||
dlSubdir: ghc-9.2.1
|
||||
dlHash: 4b67324507f5d14c23db3ed83c57f4e25d877e97d2b93cfe8e1a9fdf65e4efa1
|
||||
unknown_versioning: *ghc-921-64-centos
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: *ghc-921-64-fedora
|
||||
Darwin:
|
||||
@ -2133,9 +2140,9 @@ ghcupDownloads:
|
||||
dlHash: 649e04abd4fa35796070b35de1c353721507a49842b18663aa1c7adc6b4115d8
|
||||
Linux_Alpine:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.2.1/ghc-9.2.1-x86_64-alpine3.12-linux-gmp.tar.xz
|
||||
dlSubdir: ghc-9.2.1-x86_64-unknown-linux
|
||||
dlHash: 952b37671ef2838961e53949f4eecb4667d57472720058922929005ea7dc5b15
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/9.2.1/ghc-9.2.1-x86_64-alpine-linux-integer-gmp.tar.xz
|
||||
dlSubdir: ghc-9.2.1
|
||||
dlHash: 03dc9e3ee8f2f00c0d6be7e36e733c0229bbcb7eedc970247ef413a8708ff5d7
|
||||
A_32:
|
||||
Linux_Debian:
|
||||
'< 10': &ghc-921-32-deb9
|
||||
@ -2171,6 +2178,86 @@ ghcupDownloads:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/9.2.1/ghc-9.2.1-armv7-linux-deb10.tar.xz
|
||||
dlSubdir: ghc-9.2.1
|
||||
dlHash: 3bde9deeb6969ff0f5aea566d2602edc57f5f3ca158b4c03f039c44d8c51ea0f
|
||||
9.2.2:
|
||||
viTags:
|
||||
- Latest
|
||||
- base-4.16.1.0
|
||||
viChangeLog: https://downloads.haskell.org/~ghc/9.2.2/docs/html/users_guide/index.html
|
||||
viSourceDL:
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-src.tar.xz
|
||||
dlSubdir: ghc-9.2.2
|
||||
dlHash: 902463a4cc6ee479af9358b9f8b2ee3237b03e934a1ea65b6d1fcf3e0d749ea6
|
||||
viPostRemove: *ghc-post-remove
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_Debian:
|
||||
'< 10': &ghc-922-64-deb9
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-x86_64-deb9-linux.tar.xz
|
||||
dlSubdir: ghc-9.2.2
|
||||
dlHash: 91052766a8bec6a1a8529eda9ff587ce821a071cf52705e1b8caa3d38d3913f4
|
||||
'>= 10': &ghc-922-64-deb10
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-x86_64-deb10-linux.tar.xz
|
||||
dlSubdir: ghc-9.2.2
|
||||
dlHash: fb61dea556a2023dc2d50ee61a22144bb23e4229a378e533065124c218f40cfc
|
||||
unknown_versioning: *ghc-922-64-deb10
|
||||
Linux_Ubuntu:
|
||||
unknown_versioning: &ghc-922-64-fedora
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-x86_64-fedora27-linux.tar.xz
|
||||
dlSubdir: ghc-9.2.2
|
||||
dlHash: eab2b4e3ca99eb7cc81aa3136e9e0b245ba6b3e9057f02a2d289fbf60856eb10
|
||||
'( >= 16 && < 19 )': *ghc-922-64-deb9
|
||||
Linux_Mint:
|
||||
unknown_versioning: *ghc-922-64-deb10
|
||||
Linux_Fedora:
|
||||
'( >= 27 && < 28 )': *ghc-922-64-fedora
|
||||
unknown_versioning: *ghc-922-64-fedora
|
||||
Linux_CentOS:
|
||||
'( >= 7 && < 8 )': &ghc-922-64-centos
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-x86_64-centos7-linux.tar.xz
|
||||
dlSubdir: ghc-9.2.2
|
||||
dlHash: 5100aa7dea87aaf2ed596be83c93165d7199492f6db431d874fcfa07e8ac76ab
|
||||
unknown_versioning: *ghc-922-64-centos
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: *ghc-922-64-fedora
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-x86_64-apple-darwin.tar.xz
|
||||
dlSubdir: ghc-9.2.2-x86_64-apple-darwin
|
||||
dlHash: 934abbd6083d3aeb5ff081955682d7711d9e79db57b1613eb229c325dd06f83f
|
||||
Windows:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-x86_64-unknown-mingw32.zip
|
||||
dlSubdir: ghc-9.2.2-x86_64-unknown-mingw32
|
||||
dlHash: 5ca4b69e74e62ed57b737949fa8c4e991c24703f1477521f842a6297d36dab10
|
||||
Linux_Alpine:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-x86_64-alpine3.12-linux-gmp.tar.xz
|
||||
dlSubdir: ghc-9.2.2-x86_64-unknown-linux
|
||||
dlHash: 624523826e24eae33c03490267cddecc1d80c047f2a3f4b03580f1040112d5c0
|
||||
A_32:
|
||||
Linux_Debian:
|
||||
'< 10': &ghc-922-32-deb9
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-i386-deb9-linux.tar.xz
|
||||
dlSubdir: ghc-9.2.2
|
||||
dlHash: 24234486ed4508161c6f88f4750a36d38b135b0c6e5fe78efe2d85c612ecaf9e
|
||||
unknown_versioning: *ghc-922-32-deb9
|
||||
Linux_Ubuntu:
|
||||
unknown_versioning: *ghc-922-32-deb9
|
||||
Linux_Mint:
|
||||
unknown_versioning: *ghc-922-32-deb9
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: *ghc-922-32-deb9
|
||||
A_ARM64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-aarch64-deb10-linux.tar.xz
|
||||
dlSubdir: ghc-9.2.2
|
||||
dlHash: f3621ccba7ae48fcd67a9505f61bb5ccfb05c4cbfecd5a6ea65fe3f150af0e98
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghc/9.2.2/ghc-9.2.2-aarch64-apple-darwin.tar.xz
|
||||
dlSubdir: ghc-9.2.2-aarch64-apple-darwin
|
||||
dlHash: d1f04f7cc062ed134f863305c67dfe2c42df46ed658dd34f9dd552186f194e5c
|
||||
Cabal:
|
||||
2.4.1.0:
|
||||
viTags:
|
||||
@ -2482,56 +2569,56 @@ ghcupDownloads:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/cabal/3.6.2.0/cabal-install-3.6.2.0-armv7-linux-deb10.tar.xz
|
||||
dlHash: 694ba7c14f8d720c6e790ab0488dbff2d8a07d9c6de97b4deeba31088f825bc2
|
||||
GHCup:
|
||||
0.1.17.4:
|
||||
0.1.22.0:
|
||||
viTags:
|
||||
- Recommended
|
||||
- Latest
|
||||
viChangeLog: https://gitlab.haskell.org/haskell/ghcup-hs/-/blob/master/CHANGELOG.md
|
||||
viChangeLog: https://github.com/haskell/ghcup-hs/blob/master/CHANGELOG.md
|
||||
viSourceDL:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.22.0/ghcup-0.1.22.0-src.tar.gz
|
||||
dlSubdir: ghcup-0.1.22.0
|
||||
dlHash: 8309058a58e7b65e41cf045e555fd2f4e9e651c32d85c63fef09330b827d2478
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghcup-64
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.4/x86_64-linux-ghcup-0.1.17.4
|
||||
dlHash: a737cdf850d4874659050968b42745229f44b32cb40f7f3ad90b3820bb969582
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.22.0/x86_64-linux-ghcup-0.1.22.0
|
||||
dlHash: bf213f4dfd2271b46ca52e2f14e96850ce32e9115e5acc90f1dc5a4e815e32af
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.4/x86_64-apple-darwin-ghcup-0.1.17.4
|
||||
dlHash: f49841668e224381be8ee63579492ff01dc730019fd0d3047d2628103da9fcbb
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.22.0/x86_64-apple-darwin-ghcup-0.1.22.0
|
||||
dlHash: e588fe2c6a065afb56eca257c4ff19b83f192e95ee74d9601976ce5c05991b06
|
||||
FreeBSD:
|
||||
'( >= 12 && < 13 )':
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.4/x86_64-freebsd12-ghcup-0.1.17.4
|
||||
dlHash: 3fd8b644ddee0614cd1aaac8e066f69f13647e76b381f61a68099e29f8e8db53
|
||||
'( >= 13 )':
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.4/x86_64-freebsd13-ghcup-0.1.17.4
|
||||
dlHash: 2245bcfbb6a20c400e11726e87610e73968d6611ddfceaa66ebe9ce6ef72e9cf
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.22.0/x86_64-portbld-freebsd-ghcup-0.1.22.0
|
||||
dlHash: ce87fcebd2db01adcb3e57635e611437a96dd8ba98932a436f45ac71c4ae2e8a
|
||||
Windows:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.4/x86_64-mingw64-ghcup-0.1.17.4.exe
|
||||
dlHash: e39791a87f4c1561082214b722c982ba92c4c25e1f686f2083872e096cd05280
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.22.0/x86_64-mingw64-ghcup-0.1.22.0.exe
|
||||
dlHash: 92d3827cd369112a7e3c328807e1748db8da3df1661227d473d4cf019fb01e46
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghcup-64
|
||||
A_32:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghcup-32
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.4/i386-linux-ghcup-0.1.17.4
|
||||
dlHash: 889357956397a4f77eb320e39fc1c628c7c51bd7934095bc87792959ecd0e62d
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.22.0/i386-linux-ghcup-0.1.22.0
|
||||
dlHash: 1fd4fa989653a127d33f90cb4cc11fd024ea4085e795c0b0f6ed97afc5e8b634
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghcup-32
|
||||
A_ARM64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.4/aarch64-linux-ghcup-0.1.17.4
|
||||
dlHash: 5a3075337e638245d182d9d27030cddbd3cb5e3ab8e3e88cd3ae412d2974c4a2
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.22.0/aarch64-linux-ghcup-0.1.22.0
|
||||
dlHash: 3eda556959462579b73558616646c9fc01a583acc7a4611bb21a32706deae142
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.4/aarch64-apple-darwin-ghcup-0.1.17.4
|
||||
dlHash: 6e7a9c009d152e291ad67f6399ccba87a71f9e9698a9cda3b1854b85bf3c6565
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.22.0/aarch64-apple-darwin-ghcup-0.1.22.0
|
||||
dlHash: d39a8dbbd6d76ce87ad91cee6ecc9c680af5339ab25e8789af5b7e717564fc95
|
||||
A_ARM:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.17.4/armv7-linux-ghcup-0.1.17.4
|
||||
dlHash: 1ae599a96daf8de717b80a0bf8e7575b533b4baadb5f5720e478146b58e90a2a
|
||||
dlUri: https://downloads.haskell.org/~ghcup/0.1.22.0/armv7-linux-ghcup-0.1.22.0
|
||||
dlHash: 7c66253e52c5fb627a4d4b203a69e69f4d7732348ad6a830a41d7e2d79a61c5d
|
||||
HLS:
|
||||
1.1.0:
|
||||
viTags:
|
||||
@ -2684,9 +2771,7 @@ ghcupDownloads:
|
||||
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/haskell-language-server/1.5.0/haskell-language-server-linux-armv7-1.5.0.tar.xz
|
||||
dlHash: 7115c5861d8d30206ba2600d1a294539f3a15c09a1cb88ce48ac75dc5034e38a
|
||||
1.5.1:
|
||||
viTags:
|
||||
- Recommended
|
||||
- Latest
|
||||
viTags: []
|
||||
viChangeLog: https://github.com/haskell/haskell-language-server/blob/master/ChangeLog.md#151
|
||||
viPostInstall: *hls-post-install
|
||||
viSourceDL:
|
||||
@ -2730,6 +2815,102 @@ ghcupDownloads:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.5.1/haskell-language-server-Linux-armv7-1.5.1.tar.xz
|
||||
dlHash: d28beb003581d5a2133099fd59c83a49af850e7b5cbca72fb3df088d218e0f2b
|
||||
1.6.0.0:
|
||||
viTags:
|
||||
- old
|
||||
viChangeLog: https://github.com/haskell/haskell-language-server/blob/master/ChangeLog.md#1600
|
||||
viPostInstall: *hls-post-install
|
||||
viSourceDL:
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.0.0/haskell-language-server-1.6.0.0-src.tar.gz
|
||||
dlSubdir: haskell-language-server-1.6.0.0
|
||||
dlHash: 08703a234327b977cf6cff32d20fa3a4e3a2f8ea15d11c10fa51e69bb82bae41
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &hls-1600-64
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.0.0/haskell-language-server-Linux-1.6.0.0.tar.gz
|
||||
dlHash: dba25f63264e05ee0b7e45526f0ffbfb9b16bea72c25c1f23fbea2be921a7e62
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.0.0/haskell-language-server-macOS-1.6.0.0.tar.gz
|
||||
dlHash: e5cbca6cdd73977ef18d6c254bc741a4c285845e23459ae0e5a9033e72d66696
|
||||
FreeBSD:
|
||||
'( >= 12 && < 13 )':
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.0.0/haskell-language-server-FreeBSD12-x86_64-1.6.0.0.tar.xz
|
||||
dlHash: 736c5d286d0a2d488baa2ef68961cdad8846410acb423115c2f42a0a0cf46dcd
|
||||
'( >= 13 )':
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.0.0/haskell-language-server-FreeBSD13-x86_64-1.6.0.0.tar.xz
|
||||
dlHash: 0fcb58a457ee91cd89011a3a49d6cedea9f2a002fcdd4b0bbd4fe1d550b9bdf7
|
||||
Windows:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.0.0/haskell-language-server-Windows-1.6.0.0.tar.gz
|
||||
dlHash: 9f1b4ea31602a775a8f5bfedcc6290d3e45dd695f389fd705c9fff96c63c8570
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *hls-1600-64
|
||||
A_ARM64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.0.0/haskell-language-server-Linux-aarch64-1.6.0.0.tar.xz
|
||||
dlHash: 6ff33c8029d47248bdbcb0f01e81532d5f5afc012b538eabd9074f5cad2e9ac9
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.0.0/haskell-language-server-macOS-aarch64-1.6.0.0.tar.xz
|
||||
dlHash: c6046353b0a6807d840ba2b98484fcfc76d0894f3cabcb3c1802c84f476f8383
|
||||
A_ARM:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.0.0/haskell-language-server-Linux-armv7-1.6.0.0.tar.xz
|
||||
dlHash: b4b73cfdd3fce33ecf5e9e75b40d7b01f0889eceef1b39e57f958579b194e2bf
|
||||
|
||||
1.6.1.0:
|
||||
viTags:
|
||||
- Recommended
|
||||
- Latest
|
||||
viChangeLog: https://github.com/haskell/haskell-language-server/blob/master/ChangeLog.md#1610
|
||||
viPostInstall: *hls-post-install
|
||||
viSourceDL:
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.1.0/haskell-language-server-1.6.1.0-src.tar.gz
|
||||
dlSubdir: haskell-language-server-1.6.1.0
|
||||
dlHash: e5c336ad2de8d021c882cdac5bbc26bf6427df8d2a5bd244c05cf18296a9bfdc
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.1.0/haskell-language-server-Linux-1.6.1.0.tar.gz
|
||||
dlHash: 03f13214216c39c09ed9d073317cbf7bdc98a75d0c4ee2fd526e446457591d25
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.1.0/haskell-language-server-macOS-1.6.1.0.tar.gz
|
||||
dlHash: 287adf17a4d5704316a5dd441719a6f6ad657ab6ac660a17bfca0c07c283a6b8
|
||||
FreeBSD:
|
||||
'( >= 12 && < 13 )':
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.1.0/haskell-language-server-FreeBSD12-x86_64-1.6.1.0.tar.xz
|
||||
dlHash: 3d765164b9f9ae5c9ce3b9ed1d04559767c189c5b4a02b0691731fd05fe5e6d0
|
||||
'( >= 13 )':
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.1.0/haskell-language-server-FreeBSD13-x86_64-1.6.1.0.tar.xz
|
||||
dlHash: be8a8f7b5775fada0c2313ec14e9763908ecc1d82b48522e76c356750fe752fb
|
||||
Windows:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.1.0/haskell-language-server-Windows-1.6.1.0.tar.gz
|
||||
dlHash: b5efc77facde2136a1c5fbc1fbe1affa270efd913f9f1a200fb82b5f5b111756
|
||||
Linux_Alpine:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.1.0/haskell-language-server-Linux-alpine-x86_64-1.6.1.0.tar.xz
|
||||
dlHash: 9dcf35793b8ede815db9ecf13d94fa89dfb498dcda4281bbbb94ae4efe332cf5
|
||||
A_ARM64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.1.0/haskell-language-server-Linux-aarch64-1.6.1.0.tar.xz
|
||||
dlHash: 19318d240d2fa8ec3e22ae7c4746445b25e132cbb2eca2adc5e87f7544b5a7e4
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.1.0/haskell-language-server-macOS-aarch64-1.6.1.0.tar.xz
|
||||
dlHash: feca2336d7b98d23ceff10438d26476c71ce6ce45e617195927556a24e1480bf
|
||||
A_ARM:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/haskell/haskell-language-server/releases/download/1.6.1.0/haskell-language-server-Linux-armv7-1.6.1.0.tar.xz
|
||||
dlHash: ea174e82678c25a017ff564c5329a80dc18030139b9bfcad2da8fe888617446b
|
||||
|
||||
Stack:
|
||||
2.5.1:
|
||||
@ -2798,9 +2979,7 @@ ghcupDownloads:
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *stack-271-64
|
||||
2.7.3:
|
||||
viTags:
|
||||
- Latest
|
||||
- Recommended
|
||||
viTags: []
|
||||
viChangeLog: https://github.com/commercialhaskell/stack/blob/master/ChangeLog.md#v273
|
||||
viPostInstall: *stack-post
|
||||
viArch:
|
||||
@ -2850,4 +3029,56 @@ ghcupDownloads:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.7.3/stack-2.7.3-linux-armv7.tar.gz
|
||||
dlHash: 3e22c66ea38525ca2ee5b0d222c8aa193c50152a53ff2c80ae179a40592512fe
|
||||
|
||||
2.7.5:
|
||||
viTags:
|
||||
- Latest
|
||||
- Recommended
|
||||
viChangeLog: https://github.com/commercialhaskell/stack/blob/master/ChangeLog.md#v275
|
||||
viPostInstall: *stack-post
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &stack-275-64
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.7.5/stack-2.7.5-linux-x86_64-static.tar.gz
|
||||
dlHash: 2a02fefefcc1758033d0aea566a521a290e3c68739ce9894bd6492a346af79c5
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.7.5/stack-2.7.5-osx-x86_64.tar.gz
|
||||
dlHash: 94176b71425d76b94b088515103316ae1ff96d123344b1f4609c103d0d5bdcc4
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
Windows:
|
||||
unknown_versioning:
|
||||
dlUri: https://github.com/commercialhaskell/stack/releases/download/v2.7.5/stack-2.7.5-windows-x86_64.tar.gz
|
||||
dlHash: c9b07982590d63db2310a44bfcf33c9f8bd84a0828abc17b2a394e90fbf6a914
|
||||
dlSubdir:
|
||||
RegexDir: "stack-.*"
|
||||
FreeBSD:
|
||||
'>= 12':
|
||||
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.7.5/stack-2.7.5-freebsd-x86_64.tar.gz
|
||||
dlHash: fceb15b22d3dbd8d25cb84ad66a2eb71a5034f7e2c47a74f25141994feee7c36
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *stack-275-64
|
||||
A_32:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &stack-275-32
|
||||
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.7.5/stack-2.7.5-linux-i386.tar.gz
|
||||
dlHash: a679eaebe627444fe17fc794ddfb3fe9ee4281a4e9e9137cb04318873e23a2f6
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *stack-275-32
|
||||
A_ARM64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.7.5/stack-2.7.5-linux-aarch64.tar.gz
|
||||
dlHash: f362fa4786b17252004b2619ec96b9687e561dc4e55c2612c53d60be767cabba
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.7.5/stack-2.7.5-osx-aarch64.tar.gz
|
||||
dlHash: cea34367981ed6f5629d23d17957920b1a06cc0a00580ba62e960a64087f25fe
|
||||
A_ARM:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/ghcup/unofficial-bindists/stack/2.7.5/stack-2.7.5-linux-armv7.tar.gz
|
||||
dlHash: 8be2342deea5309a32e28a0c5eb341ea9557401f08484676036471250ca12e21
|
||||
|
Binary file not shown.
7407
ghcup-0.0.7.yaml
Normal file
7407
ghcup-0.0.7.yaml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
ghcup-0.0.7.yaml.sig
Normal file
BIN
ghcup-0.0.7.yaml.sig
Normal file
Binary file not shown.
7486
ghcup-0.0.8.yaml
Normal file
7486
ghcup-0.0.8.yaml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
ghcup-0.0.8.yaml.sig
Normal file
BIN
ghcup-0.0.8.yaml.sig
Normal file
Binary file not shown.
140
ghcup-cross-0.0.8.yaml
Normal file
140
ghcup-cross-0.0.8.yaml
Normal file
@ -0,0 +1,140 @@
|
||||
---
|
||||
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
|
||||
javascript-unknown-ghcjs-9.10.0.20240413:
|
||||
viPreInstall: |
|
||||
To use this bindist, you have to use emscripten version 3.1.57
|
||||
Also see: https://www.haskell.org/ghcup/guide/#ghc-js-cross-bindists-experimental
|
||||
viTags:
|
||||
- base-4.20.0.0
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/javascript-unknown-ghcjs-9.10.0.20240413/ghc-javascript-unknown-ghcjs-9.10.0.20240413-x86_64-linux-rocky-8.9-2024-04-16-dc318739.tar.xz
|
||||
dlSubdir: ghc-9.10.0.20240413-javascript-unknown-ghcjs
|
||||
dlHash: dc318739b1ec4f1051dd4b38793b5fbc8eb4dea56b6177d1fe212edcf9e28b30
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/javascript-unknown-ghcjs-9.10.0.20240413/ghc-javascript-unknown-ghcjs-9.10.0.20240413-x86_64-darwin-2024-04-16-a819da18.tar.xz
|
||||
dlSubdir: ghc-9.10.0.20240413-javascript-unknown-ghcjs
|
||||
dlHash: a819da1875e9763da5732c37dc7f36eb6e9eb6d33ddc6ea11894df9cfa18a6ee
|
||||
A_ARM64:
|
||||
Darwin:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/javascript-unknown-ghcjs-9.10.0.20240413/ghc-javascript-unknown-ghcjs-9.10.0.20240413-aarch64-darwin-2024-04-16-c946719b.tar.xz
|
||||
dlSubdir: ghc-9.10.0.20240413-javascript-unknown-ghcjs
|
||||
dlHash: c946719b31f9249e899fdc15351b86a4297e66857ce4063743b1bcbd62cf9e0e
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning:
|
||||
dlUri: https://downloads.haskell.org/~ghcup/unofficial-bindists/ghc/javascript-unknown-ghcjs-9.10.0.20240413/ghc-javascript-unknown-ghcjs-9.10.0.20240413-aarch64-linux-debian-12-2024-04-16-5f63452c.tar.xz
|
||||
dlSubdir: ghc-9.10.0.20240413-javascript-unknown-ghcjs
|
||||
dlHash: 5f63452c8bee2fcc1282645158bcd20bae7ff93181f3e5d5dc8b2aa8d15f4696
|
||||
wasm32-wasi-9.6.3.20230927:
|
||||
viTags:
|
||||
- base-4.18.1.0
|
||||
viPreInstall: &old-wasm-pre-install |
|
||||
To use this bindist, you need to use the commit c0aa3bb7d88bb6ec809210e17658dd1ed64ba66c of ghc-wasm-meta repository.
|
||||
Also see: https://www.haskell.org/ghcup/guide/#ghc-wasm-cross-bindists-experimental
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghc-wasm32-wasi-963-64-static
|
||||
dlHash: 2e1d363320c03e35fd9048a252a0cfed8f7b87da76c063c7fc52122c390f42c3
|
||||
dlSubdir: ghc-9.6.3.20230927-wasm32-wasi
|
||||
dlUri: https://github.com/amesgen/ghc-wasm-bindists/releases/download/20231001T201511/wasm32-wasi-ghc-9.6.tar.xz
|
||||
dlOutput: ghc-9.6.3.20230927-x86_64-linux-alpine3_12-cross_wasm32-wasi-release+fully_static.tar.xz
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghc-wasm32-wasi-963-64-static
|
||||
wasm32-wasi-9.6.4:
|
||||
viTags:
|
||||
- base-4.18.2.0
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghc-wasm32-wasi-964-64-static
|
||||
dlHash: 9eebb42c40d880ec777f729e24b9b52e8aa51d76994f386bd79893d065f5239a
|
||||
dlSubdir: ghc-9.6.4-wasm32-wasi
|
||||
dlUri: https://github.com/amesgen/ghc-wasm-bindists/releases/download/20240218T031934/wasm32-wasi-ghc-9.6.tar.xz
|
||||
dlOutput: ghc-9.6.4-x86_64-linux-alpine3_18-wasm-cross_wasm32-wasi-release+fully_static.tar.xz
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghc-wasm32-wasi-964-64-static
|
||||
wasm32-wasi-9.8.0.20230927:
|
||||
viTags:
|
||||
- base-4.19.0.0
|
||||
viPreInstall: *old-wasm-pre-install
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghc-wasm32-wasi-980-64-static
|
||||
dlHash: bad3393b6eba103230c62f050ffd9d458916c6238e5d5fa031d3eee5d995305a
|
||||
dlSubdir: ghc-9.8.0.20230927-wasm32-wasi
|
||||
dlUri: https://github.com/amesgen/ghc-wasm-bindists/releases/download/20231001T201511/wasm32-wasi-ghc-9.8.tar.xz
|
||||
dlOutput: ghc-9.8.0.20230927-x86_64-linux-alpine3_12-cross_wasm32-wasi-release+fully_static.tar.xz
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghc-wasm32-wasi-980-64-static
|
||||
wasm32-wasi-9.8.1:
|
||||
viTags:
|
||||
- base-4.19.0.0
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghc-wasm32-wasi-981-64-static
|
||||
dlHash: b1714d54468754e3a4353661bec883fef8b5d27398db53b5955753db7453da3e
|
||||
dlSubdir: ghc-9.8.1-wasm32-wasi
|
||||
dlUri: https://github.com/amesgen/ghc-wasm-bindists/releases/download/20240218T031934/wasm32-wasi-ghc-9.8.tar.xz
|
||||
dlOutput: ghc-9.8.1-x86_64-linux-alpine3_18-wasm-cross_wasm32-wasi-release+fully_static.tar.xz
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghc-wasm32-wasi-981-64-static
|
||||
wasm32-wasi-9.10.0.20240313:
|
||||
viTags:
|
||||
- base-4.20.0.0
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghc-wasm32-wasi-9101-64-static
|
||||
dlHash: e2ee5a0417f3617a93f8ca8df2b455c17e50dd5fb750b2fbe37e75982c3a4917
|
||||
dlSubdir: ghc-9.10.0.20240313-wasm32-wasi
|
||||
dlUri: https://github.com/amesgen/ghc-wasm-bindists/releases/download/20240318T183143/wasm32-wasi-ghc-9.10.tar.xz
|
||||
dlOutput: ghc-9.10.0.20240313-x86_64-linux-alpine3_18-wasm-cross_wasm32-wasi-release+fully_static.tar.xz
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghc-wasm32-wasi-9101-64-static
|
||||
wasm32-wasi-9.10.0.20240412:
|
||||
viTags:
|
||||
- base-4.20.0.0
|
||||
viArch:
|
||||
A_64:
|
||||
Linux_UnknownLinux:
|
||||
unknown_versioning: &ghc-wasm32-wasi-9101-a3-64-static
|
||||
dlHash: e7648d84f7948d53dcd6935a0358967dc8d5d68ee3a60c0706f4b5a94a0fb628
|
||||
dlSubdir: ghc-9.10.0.20240412-wasm32-wasi
|
||||
dlUri: https://github.com/amesgen/ghc-wasm-bindists/releases/download/20240414T232345/wasm32-wasi-ghc-9.10.tar.xz
|
||||
dlOutput: ghc-9.10.0.20240412-x86_64-linux-alpine3_18-wasm-cross_wasm32-wasi-release+fully_static.tar.xz
|
||||
Linux_Alpine:
|
||||
unknown_versioning: *ghc-wasm32-wasi-9101-a3-64-static
|
BIN
ghcup-cross-0.0.8.yaml.sig
Normal file
BIN
ghcup-cross-0.0.8.yaml.sig
Normal file
Binary file not shown.
287
ghcup-gen/Generate.hs
Normal file
287
ghcup-gen/Generate.hs
Normal file
@ -0,0 +1,287 @@
|
||||
{-# LANGUAGE CPP #-}
|
||||
{-# LANGUAGE DataKinds #-}
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
{-# LANGUAGE QuasiQuotes #-}
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
{-# LANGUAGE TypeApplications #-}
|
||||
{-# LANGUAGE ViewPatterns #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE LambdaCase #-}
|
||||
|
||||
module Generate where
|
||||
|
||||
import GHCup
|
||||
import GHCup.Download
|
||||
import GHCup.Requirements
|
||||
import GHCup.Errors
|
||||
import GHCup.Types
|
||||
import GHCup.Types.Optics
|
||||
import GHCup.Utils
|
||||
|
||||
|
||||
import Codec.Archive
|
||||
import Control.DeepSeq
|
||||
import Control.Exception ( evaluate )
|
||||
import Control.Exception.Safe hiding ( handle )
|
||||
import Control.Monad
|
||||
import Control.Monad.IO.Class
|
||||
import Control.Monad.Reader.Class
|
||||
import Control.Monad.Trans.Resource ( runResourceT
|
||||
, MonadUnliftIO
|
||||
)
|
||||
import qualified Data.Aeson.Encode.Pretty as Aeson
|
||||
import Data.ByteString ( ByteString )
|
||||
import Data.Either
|
||||
import Data.Maybe
|
||||
import Data.List
|
||||
import Data.Map.Strict ( Map )
|
||||
import Data.Versions
|
||||
import Haskus.Utils.Variant.Excepts
|
||||
import System.Exit
|
||||
import System.FilePath
|
||||
import System.IO
|
||||
import Text.Regex.Posix
|
||||
import GHCup.Prelude.String.QQ
|
||||
|
||||
import qualified Data.ByteString.Lazy as BSL
|
||||
import qualified Data.Map.Strict as M
|
||||
import qualified Data.Text as T
|
||||
import qualified Data.Yaml.Pretty as YAML
|
||||
import qualified Text.Megaparsec as MP
|
||||
|
||||
import Data.Bifoldable (bifoldMap)
|
||||
import Data.Foldable (traverse_)
|
||||
import Data.Text (Text)
|
||||
|
||||
import Text.PrettyPrint.HughesPJClass (pPrint)
|
||||
|
||||
data Format = FormatJSON
|
||||
| FormatYAML
|
||||
|
||||
data Output
|
||||
= FileOutput FilePath -- optsparse-applicative doesn't handle ByteString correctly anyway
|
||||
| StdOut
|
||||
|
||||
type HlsGhcVersions = Map Version (Map Architecture (Map Platform Version))
|
||||
|
||||
generateHLSGhc :: ( MonadFail m
|
||||
, MonadMask m
|
||||
, Monad m
|
||||
, MonadReader env m
|
||||
, HasSettings env
|
||||
, HasDirs env
|
||||
, HasLog env
|
||||
, MonadThrow m
|
||||
, MonadIO m
|
||||
, MonadUnliftIO m
|
||||
, HasGHCupInfo env
|
||||
)
|
||||
=> Format
|
||||
-> Output
|
||||
-> m ExitCode
|
||||
generateHLSGhc format output = do
|
||||
GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo
|
||||
let hlses = dls M.! HLS
|
||||
r <- forM hlses $ \(_viArch -> archs) ->
|
||||
forM archs $ \plats ->
|
||||
forM plats $ \(head . M.toList -> (_, dli)) -> do
|
||||
VRight r <- runResourceT . runE
|
||||
@'[DigestError
|
||||
, GPGError
|
||||
, DownloadFailed
|
||||
, UnknownArchive
|
||||
, ArchiveResult
|
||||
, ContentLengthError
|
||||
] $ do
|
||||
fp <- liftE $ downloadCached dli Nothing
|
||||
let subd = _dlSubdir dli
|
||||
filesL <- liftE $ getArchiveFiles fp
|
||||
files <- liftIO $ evaluate $ force filesL
|
||||
case subd of
|
||||
Just (RealDir d)
|
||||
| d </> "GNUmakefile" `elem` files
|
||||
-> do let regex = makeRegexOpts compExtended execBlank ([s|^haskell-language-server-([0-9]+\.)*([0-9]+)(\.in)$|] :: ByteString)
|
||||
pure (rights $ MP.parse version' ""
|
||||
. T.pack
|
||||
. fromJust
|
||||
. stripPrefix "haskell-language-server-"
|
||||
. stripIn
|
||||
<$> filter (match regex) (fromJust . stripPrefix (d <> "/") <$> files)
|
||||
)
|
||||
_ -> do let regex = makeRegexOpts compExtended execBlank ([s|^haskell-language-server-([0-9]+\.)*([0-9]+)(\.exe)?$|] :: ByteString)
|
||||
pure (rights $ MP.parse version' ""
|
||||
. T.pack
|
||||
. fromJust
|
||||
. stripPrefix "haskell-language-server-"
|
||||
. stripExe
|
||||
<$> filter (match regex) files
|
||||
)
|
||||
pure (sort r)
|
||||
let w = case format of
|
||||
FormatYAML -> BSL.fromStrict $ YAML.encodePretty YAML.defConfig r
|
||||
FormatJSON -> Aeson.encodePretty r
|
||||
case output of
|
||||
StdOut -> liftIO $ BSL.putStr w
|
||||
FileOutput f -> liftIO $ BSL.writeFile f w
|
||||
pure ExitSuccess
|
||||
where
|
||||
stripExe :: String -> String
|
||||
stripExe f = case reverse f of
|
||||
('e':'x':'e':'.':r) -> reverse r
|
||||
_ -> f
|
||||
stripIn :: String -> String
|
||||
stripIn f = case reverse f of
|
||||
('n':'i':'.':r) -> reverse r
|
||||
_ -> f
|
||||
|
||||
generateTable :: ( MonadFail m
|
||||
, MonadMask m
|
||||
, Monad m
|
||||
, MonadReader env m
|
||||
, HasSettings env
|
||||
, HasDirs env
|
||||
, HasLog env
|
||||
, MonadThrow m
|
||||
, MonadIO m
|
||||
, HasPlatformReq env
|
||||
, HasGHCupInfo env
|
||||
, MonadUnliftIO m
|
||||
)
|
||||
=> Output
|
||||
-> m ExitCode
|
||||
generateTable output = do
|
||||
handle <- case output of
|
||||
StdOut -> pure stdout
|
||||
FileOutput fp -> liftIO $ openFile fp WriteMode
|
||||
|
||||
forM_ [GHC,Cabal,HLS,Stack] $ \tool -> do
|
||||
case tool of
|
||||
GHC -> liftIO $ hPutStrLn handle $ "<details> <summary>Show all supported <a href='https://www.haskell.org/ghc/'>GHC</a> versions</summary>"
|
||||
Cabal -> liftIO $ hPutStrLn handle $ "<details> <summary>Show all supported <a href='https://cabal.readthedocs.io/en/stable/'>cabal-install</a> versions</summary>"
|
||||
HLS -> liftIO $ hPutStrLn handle $ "<details> <summary>Show all supported <a href='https://haskell-language-server.readthedocs.io/en/stable/'>HLS</a> versions</summary>"
|
||||
Stack -> liftIO $ hPutStrLn handle $ "<details> <summary>Show all supported <a href='https://docs.haskellstack.org/en/stable/README/'>Stack</a> versions</summary>"
|
||||
_ -> fail "no"
|
||||
liftIO $ hPutStrLn handle $ "<table>"
|
||||
liftIO $ hPutStrLn handle $ "<thead><tr><th>" <> show tool <> " Version</th><th>Tags</th></tr></thead>"
|
||||
liftIO $ hPutStrLn handle $ "<tbody>"
|
||||
vers <- reverse <$> listVersions (Just tool) [] False False (Nothing, Nothing)
|
||||
forM_ (filter (\ListResult{..} -> not lStray) vers) $ \ListResult{..} -> do
|
||||
liftIO $ hPutStrLn handle $
|
||||
"<tr><td>"
|
||||
<> T.unpack (prettyVer lVer)
|
||||
<> "</td><td>"
|
||||
<> intercalate ", " (filter (/= "") . fmap printTag $ sort lTag)
|
||||
<> "</td></tr>"
|
||||
pure ()
|
||||
liftIO $ hPutStrLn handle $ "</tbody>"
|
||||
liftIO $ hPutStrLn handle $ "</table>"
|
||||
liftIO $ hPutStrLn handle $ "</details>"
|
||||
liftIO $ hPutStrLn handle $ ""
|
||||
pure ExitSuccess
|
||||
where
|
||||
printTag Recommended = "<span style=\"color:green\">recommended</span>"
|
||||
printTag Latest = "<span style=\"color:blue\">latest</span>"
|
||||
printTag Prerelease = "<span style=\"color:red\">prerelease</span>"
|
||||
printTag (Base pvp'') = "base-" ++ T.unpack (prettyPVP pvp'')
|
||||
printTag (UnknownTag t ) = t
|
||||
printTag Old = ""
|
||||
|
||||
|
||||
generateSystemInfo :: ( MonadFail m
|
||||
, MonadMask m
|
||||
, Monad m
|
||||
, MonadReader env m
|
||||
, HasSettings env
|
||||
, HasDirs env
|
||||
, HasLog env
|
||||
, MonadThrow m
|
||||
, MonadIO m
|
||||
, HasPlatformReq env
|
||||
, HasGHCupInfo env
|
||||
, MonadUnliftIO m
|
||||
)
|
||||
=> Output
|
||||
-> m ExitCode
|
||||
generateSystemInfo output = do
|
||||
handle <- case output of
|
||||
StdOut -> pure stdout
|
||||
FileOutput fp -> liftIO $ openFile fp WriteMode
|
||||
|
||||
forM_ [ Linux Debian
|
||||
, Linux Ubuntu
|
||||
, Linux Fedora
|
||||
, Linux CentOS
|
||||
, Linux Alpine
|
||||
, Linux UnknownLinux
|
||||
, Darwin
|
||||
, FreeBSD
|
||||
, Windows
|
||||
] $ \plat -> do
|
||||
GHCupInfo { .. } <- getGHCupInfo
|
||||
(Just req) <- pure $ getCommonRequirements (PlatformResult plat Nothing) _toolRequirements
|
||||
liftIO $ hPutStrLn handle $ "### " <> (prettyPlat plat) <> "\n"
|
||||
liftIO $ hPutStrLn handle $ (T.unpack $ pretty' req) <> "\n"
|
||||
pure ExitSuccess
|
||||
where
|
||||
pretty' Requirements {..} =
|
||||
let d = if not . null $ _distroPKGs
|
||||
then "The following distro packages are required: " <> "`" <> T.intercalate " " _distroPKGs <> "`"
|
||||
else ""
|
||||
n = if not . T.null $ _notes then _notes else ""
|
||||
in if | T.null d -> n
|
||||
| T.null n -> d
|
||||
| otherwise -> d <> "\n" <> n
|
||||
|
||||
prettyPlat (Linux UnknownLinux) = "Linux (generic)"
|
||||
prettyPlat p = show p
|
||||
|
||||
|
||||
generateSystemInfoWithDistroVersion :: ( MonadFail m
|
||||
, MonadMask m
|
||||
, Monad m
|
||||
, MonadReader env m
|
||||
, HasSettings env
|
||||
, HasDirs env
|
||||
, HasLog env
|
||||
, MonadThrow m
|
||||
, MonadIO m
|
||||
, HasPlatformReq env
|
||||
, HasGHCupInfo env
|
||||
, MonadUnliftIO m
|
||||
)
|
||||
=> Output
|
||||
-> m ExitCode
|
||||
generateSystemInfoWithDistroVersion output = do
|
||||
handle <- case output of
|
||||
StdOut -> pure stdout
|
||||
FileOutput fp -> liftIO $ openFile fp WriteMode
|
||||
|
||||
GHCupInfo { _toolRequirements = tr } <- getGHCupInfo
|
||||
let ghcInfo = M.lookup Nothing <$> M.lookup GHC tr
|
||||
liftIO $ traverse_ (\(key, value) -> do
|
||||
liftIO $ hPutStrLn handle $ "### " <> prettyPlat key <> "\n"
|
||||
liftIO $ hPutStrLn handle $ T.unpack $ versionsAndRequirements value <> T.pack "\n")
|
||||
$ M.toList $ fromJust (fromJust ghcInfo)
|
||||
pure ExitSuccess
|
||||
|
||||
where
|
||||
pretty' Requirements {..} =
|
||||
let d = if not . null $ _distroPKGs
|
||||
then "The following distro packages are required: " <> "`" <> T.intercalate " " _distroPKGs <> "`" <> "\n"
|
||||
else ""
|
||||
n = if not . T.null $ _notes then _notes else ""
|
||||
in if | T.null d -> n
|
||||
| T.null n -> d
|
||||
| otherwise -> d <> "\n" <> n
|
||||
|
||||
versionsAndRequirements :: PlatformReqVersionSpec -> Text
|
||||
versionsAndRequirements =
|
||||
bifoldMap
|
||||
( \case
|
||||
Nothing -> T.pack $ "#### Generic" <> "\n"
|
||||
Just verz -> T.pack "#### Version " <> T.pack (show $ pPrint verz) <> "\n"
|
||||
)
|
||||
pretty'
|
||||
|
||||
prettyPlat (Linux UnknownLinux) = "Linux (generic)"
|
||||
prettyPlat p = show p
|
@ -11,7 +11,7 @@ import GHCup.Types
|
||||
import GHCup.Errors
|
||||
import GHCup.Platform
|
||||
import GHCup.Utils.Dirs
|
||||
import GHCup.Utils.Logger
|
||||
import GHCup.Prelude.Logger
|
||||
import GHCup.Types.JSON ( )
|
||||
|
||||
import Control.Exception ( displayException )
|
||||
@ -29,6 +29,7 @@ import System.Environment
|
||||
import System.Exit
|
||||
import System.IO ( stderr )
|
||||
import Text.Regex.Posix
|
||||
import Generate
|
||||
import Validate
|
||||
import Text.PrettyPrint.HughesPJClass ( prettyShow )
|
||||
|
||||
@ -42,10 +43,47 @@ data Options = Options
|
||||
{ optCommand :: Command
|
||||
}
|
||||
|
||||
|
||||
formatParser :: Parser Format
|
||||
formatParser =
|
||||
option
|
||||
(eitherReader formatP)
|
||||
(long "format" <> metavar "FORMAT" <> help
|
||||
"Which format to use (JSON | YAML). Yaml is default."
|
||||
<> value FormatJSON
|
||||
)
|
||||
where
|
||||
formatP :: String -> Either String Format
|
||||
formatP s' | t == T.pack "json" = Right FormatJSON
|
||||
| t == T.pack "yaml" = Right FormatYAML
|
||||
| t == T.pack "yml" = Right FormatYAML
|
||||
| otherwise = Left ("Unknown format value: " <> s')
|
||||
where t = T.toLower (T.pack s')
|
||||
|
||||
|
||||
data Command = ValidateYAML ValidateYAMLOpts
|
||||
| ValidateTarballs ValidateYAMLOpts TarballFilter
|
||||
| GenerateHlsGhc ValidateYAMLOpts Format Output
|
||||
| GenerateToolTable ValidateYAMLOpts Output
|
||||
| GenerateSystemDepsInfo ValidateYAMLOpts Output
|
||||
|
||||
|
||||
fileOutput :: Parser Output
|
||||
fileOutput =
|
||||
FileOutput
|
||||
<$> strOption
|
||||
(long "output-file" <> short 'o' <> metavar "FILENAME" <> help
|
||||
"Output file to write to"
|
||||
)
|
||||
|
||||
stdOutput :: Parser Output
|
||||
stdOutput = flag'
|
||||
StdOut
|
||||
(short 'o' <> long "stdout" <> help "Output to stdout (default)")
|
||||
|
||||
outputP :: Parser Output
|
||||
outputP = fileOutput <|> stdOutput
|
||||
|
||||
data Input
|
||||
= FileInput FilePath -- optsparse-applicative doesn't handle ByteString correctly anyway
|
||||
| StdInput
|
||||
@ -67,26 +105,43 @@ inputP :: Parser Input
|
||||
inputP = fileInput <|> stdInput
|
||||
|
||||
data ValidateYAMLOpts = ValidateYAMLOpts
|
||||
{ vInput :: Maybe Input
|
||||
{ vChannel :: DistributionChannel
|
||||
, vInput :: Maybe Input
|
||||
}
|
||||
|
||||
validateYAMLOpts :: Parser ValidateYAMLOpts
|
||||
validateYAMLOpts = ValidateYAMLOpts <$> optional inputP
|
||||
validateYAMLOpts = ValidateYAMLOpts <$> channelParser <*> optional inputP
|
||||
|
||||
channelParser :: Parser DistributionChannel
|
||||
channelParser =
|
||||
option
|
||||
(eitherReader chanP)
|
||||
(long "channel" <> metavar "CHANNEL" <> help
|
||||
"Signal which distribution channel the YAML denotes: (main | prerelease | nightly). Main is defaul."
|
||||
<> value MainChan
|
||||
)
|
||||
where
|
||||
chanP :: String -> Either String DistributionChannel
|
||||
chanP s' | t == T.pack "main" = Right MainChan
|
||||
| t == T.pack "prerelease" = Right PrereleaseChan
|
||||
| t == T.pack "prereleases" = Right PrereleaseChan
|
||||
| t == T.pack "nightly" = Right NightlyChan
|
||||
| t == T.pack "nightlies" = Right NightlyChan
|
||||
| otherwise = Left ("Unknown channel value: " <> s')
|
||||
where t = T.toLower (T.pack s')
|
||||
|
||||
tarballFilterP :: Parser TarballFilter
|
||||
tarballFilterP = option readm $
|
||||
long "tarball-filter" <> short 'u' <> metavar "<tool>-<version>" <> value def
|
||||
<> help "Only check certain tarballs (format: <tool>-<version>)"
|
||||
where
|
||||
def = TarballFilter (Right Nothing) (makeRegex ("" :: String))
|
||||
def = TarballFilter Nothing (makeRegex ("" :: String))
|
||||
readm = do
|
||||
s <- str
|
||||
case span (/= '-') s of
|
||||
(_, []) -> fail "invalid format, missing '-' after the tool name"
|
||||
(t, v) | [tool] <- [ tool | tool <- [minBound..maxBound], low (show tool) == low t ] ->
|
||||
pure (TarballFilter $ Right $ Just tool) <*> makeRegexOptsM compIgnoreCase execBlank (drop 1 v)
|
||||
(t, v) | [tool] <- [ tool | tool <- [minBound..maxBound], low (show tool) == low t ] ->
|
||||
pure (TarballFilter $ Left tool) <*> makeRegexOptsM compIgnoreCase execBlank (drop 1 v)
|
||||
pure (TarballFilter $ Just tool) <*> makeRegexOptsM compIgnoreCase execBlank (drop 1 v)
|
||||
_ -> fail "invalid tool"
|
||||
low = fmap toLower
|
||||
|
||||
@ -108,6 +163,24 @@ com = subparser
|
||||
((ValidateTarballs <$> validateYAMLOpts <*> tarballFilterP) <**> helper)
|
||||
(progDesc "Validate all tarballs (download and checksum)")
|
||||
)
|
||||
<> command
|
||||
"generate-hls-ghcs"
|
||||
(info
|
||||
((GenerateHlsGhc <$> validateYAMLOpts <*> formatParser <*> outputP) <**> helper)
|
||||
(progDesc "Generate a list of HLS-GHC support")
|
||||
)
|
||||
<> command
|
||||
"generate-tool-table"
|
||||
(info
|
||||
((GenerateToolTable <$> validateYAMLOpts <*> outputP) <**> helper)
|
||||
(progDesc "Generate a markdown table of available tool versions")
|
||||
)
|
||||
<> command
|
||||
"generate-system-deps-info"
|
||||
(info
|
||||
((GenerateSystemDepsInfo <$> validateYAMLOpts <*> outputP) <**> helper)
|
||||
(progDesc "Generate a markdown info for system dependencies")
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@ -121,7 +194,7 @@ main = do
|
||||
, fancyColors = not no_color
|
||||
}
|
||||
dirs <- liftIO getAllDirs
|
||||
let leanAppstate = LeanAppState (Settings True 0 False Never Curl True GHCupURL False GPGNone False) dirs defaultKeyBindings loggerConfig
|
||||
let leanAppstate = LeanAppState (Settings True 0 Lax False Never Curl True GHCupURL False GPGNone True Nothing (DM mempty)) dirs defaultKeyBindings loggerConfig
|
||||
|
||||
pfreq <- (
|
||||
flip runReaderT leanAppstate . runE @'[NoCompatiblePlatform, NoCompatibleArch, DistroNotFound] $ platformRequest
|
||||
@ -131,25 +204,29 @@ main = do
|
||||
flip runReaderT leanAppstate $ logError $ T.pack $ prettyShow e
|
||||
liftIO $ exitWith (ExitFailure 2)
|
||||
|
||||
let appstate = AppState (Settings True 0 False Never Curl True GHCupURL False GPGNone False) dirs defaultKeyBindings (GHCupInfo mempty mempty mempty) pfreq loggerConfig
|
||||
let appstate = AppState (Settings True 0 Lax False Never Curl True GHCupURL False GPGNone True Nothing (DM mempty)) dirs defaultKeyBindings (GHCupInfo mempty mempty Nothing) pfreq loggerConfig
|
||||
|
||||
let withValidateYamlOpts vopts f = case vopts of
|
||||
ValidateYAMLOpts { vInput = Nothing } ->
|
||||
B.getContents >>= valAndExit f
|
||||
ValidateYAMLOpts { vInput = Just StdInput } ->
|
||||
B.getContents >>= valAndExit f
|
||||
ValidateYAMLOpts { vInput = Just (FileInput file) } ->
|
||||
B.readFile file >>= valAndExit f
|
||||
valAndExit f contents = do
|
||||
ginfo <- case Y.decodeEither' contents of
|
||||
Right r -> pure r
|
||||
Left e -> die (color Red $ displayException e)
|
||||
r <- flip runReaderT appstate { ghcupInfo = ginfo } f
|
||||
exitWith r
|
||||
|
||||
_ <- customExecParser (prefs showHelpOnError) (info (opts <**> helper) idm)
|
||||
>>= \Options {..} -> case optCommand of
|
||||
ValidateYAML vopts -> withValidateYamlOpts vopts (\dl m -> flip runReaderT appstate $ validate dl m)
|
||||
ValidateTarballs vopts tarballFilter -> withValidateYamlOpts vopts (\dl m -> flip runReaderT appstate $ validateTarballs tarballFilter dl m)
|
||||
ValidateYAML vopts@ValidateYAMLOpts{ .. } -> withValidateYamlOpts vopts (validate vChannel)
|
||||
ValidateTarballs vopts tarballFilter -> withValidateYamlOpts vopts (validateTarballs tarballFilter)
|
||||
GenerateHlsGhc vopts format output -> withValidateYamlOpts vopts (generateHLSGhc format output)
|
||||
GenerateToolTable vopts output -> withValidateYamlOpts vopts (generateTable output)
|
||||
GenerateSystemDepsInfo vopts output -> withValidateYamlOpts vopts (generateSystemInfoWithDistroVersion output)
|
||||
pure ()
|
||||
|
||||
where
|
||||
withValidateYamlOpts vopts f = case vopts of
|
||||
ValidateYAMLOpts { vInput = Nothing } ->
|
||||
B.getContents >>= valAndExit f
|
||||
ValidateYAMLOpts { vInput = Just StdInput } ->
|
||||
B.getContents >>= valAndExit f
|
||||
ValidateYAMLOpts { vInput = Just (FileInput file) } ->
|
||||
B.readFile file >>= valAndExit f
|
||||
valAndExit f contents = do
|
||||
(GHCupInfo _ av gt) <- case Y.decodeEither' contents of
|
||||
Right r -> pure r
|
||||
Left e -> die (color Red $ displayException e)
|
||||
f av gt
|
||||
>>= exitWith
|
||||
|
@ -15,8 +15,8 @@ import GHCup.Errors
|
||||
import GHCup.Types
|
||||
import GHCup.Types.Optics
|
||||
import GHCup.Utils
|
||||
import GHCup.Utils.Logger
|
||||
import GHCup.Utils.Version.QQ
|
||||
import GHCup.Prelude.Logger
|
||||
import GHCup.Prelude.Version.QQ
|
||||
|
||||
import Codec.Archive
|
||||
import Control.Applicative
|
||||
@ -51,6 +51,11 @@ data ValidationError = InternalError String
|
||||
|
||||
instance Exception ValidationError
|
||||
|
||||
data DistributionChannel = MainChan
|
||||
| PrereleaseChan
|
||||
| NightlyChan
|
||||
deriving (Show, Eq)
|
||||
|
||||
|
||||
addError :: (MonadReader (IORef Int) m, MonadIO m, Monad m) => m ()
|
||||
addError = do
|
||||
@ -58,11 +63,19 @@ addError = do
|
||||
liftIO $ modifyIORef ref (+ 1)
|
||||
|
||||
|
||||
validate :: (Monad m, MonadReader env m, HasLog env, MonadThrow m, MonadIO m, MonadUnliftIO m)
|
||||
=> GHCupDownloads
|
||||
-> M.Map GlobalTool DownloadInfo
|
||||
validate :: ( Monad m
|
||||
, MonadReader env m
|
||||
, HasLog env
|
||||
, MonadThrow m
|
||||
, MonadIO m
|
||||
, MonadUnliftIO m
|
||||
, HasGHCupInfo env
|
||||
)
|
||||
=> DistributionChannel
|
||||
-> m ExitCode
|
||||
validate dls _ = do
|
||||
validate distroChannel = do
|
||||
GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo
|
||||
|
||||
ref <- liftIO $ newIORef 0
|
||||
|
||||
-- verify binary downloads --
|
||||
@ -74,7 +87,7 @@ validate dls _ = do
|
||||
forM_ (M.toList dls) $ \(t, versions) ->
|
||||
forM_ (M.toList versions) $ \(v, vi) ->
|
||||
forM_ (M.toList $ _viArch vi) $ \(arch, pspecs) -> do
|
||||
checkHasRequiredPlatforms t v (_viTags vi) arch (M.keys pspecs)
|
||||
checkHasRequiredPlatforms t (_tvVersion v) (_viTags vi) arch (M.keys pspecs)
|
||||
|
||||
checkGHCVerIsValid
|
||||
forM_ (M.toList dls) $ \(t, _) -> checkMandatoryTags t
|
||||
@ -88,35 +101,39 @@ validate dls _ = do
|
||||
lift $ logInfo "All good"
|
||||
pure ExitSuccess
|
||||
where
|
||||
checkHasRequiredPlatforms t v tags arch pspecs = do
|
||||
let v' = prettyVer v
|
||||
arch' = prettyShow arch
|
||||
when (Linux UnknownLinux `notElem` pspecs) $ do
|
||||
lift $ logError $
|
||||
"Linux UnknownLinux missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
addError
|
||||
when ((Darwin `notElem` pspecs) && arch == A_64) $ do
|
||||
lift $ logError $ "Darwin missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
addError
|
||||
when ((FreeBSD `notElem` pspecs) && arch == A_64) $ lift $ logWarn $
|
||||
"FreeBSD missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
when (Windows `notElem` pspecs && arch == A_64) $ do
|
||||
lift $ logError $ "Windows missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
addError
|
||||
checkHasRequiredPlatforms t v tags arch pspecs
|
||||
-- relax requirements for prerelease and nightly channels
|
||||
| distroChannel `elem` [PrereleaseChan, NightlyChan] = pure ()
|
||||
| otherwise = do
|
||||
let v' = prettyVer v
|
||||
arch' = prettyShow arch
|
||||
when (Linux UnknownLinux `notElem` pspecs) $ do
|
||||
lift $ logError $
|
||||
"Linux UnknownLinux missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
addError
|
||||
when ((Darwin `notElem` pspecs) && arch == A_64) $ do
|
||||
lift $ logError $ "Darwin missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
addError
|
||||
when ((FreeBSD `notElem` pspecs) && arch == A_64) $ lift $ logWarn $
|
||||
"FreeBSD missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
when (Windows `notElem` pspecs && arch == A_64) $ do
|
||||
lift $ logError $ "Windows missing for for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack arch'
|
||||
addError
|
||||
|
||||
-- alpine needs to be set explicitly, because
|
||||
-- we cannot assume that "Linux UnknownLinux" runs on Alpine
|
||||
-- (although it could be static)
|
||||
when (Linux Alpine `notElem` pspecs) $
|
||||
case t of
|
||||
GHCup | arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError
|
||||
Cabal | v > [vver|2.4.1.0|]
|
||||
, arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError
|
||||
GHC | Latest `elem` tags || Recommended `elem` tags
|
||||
, arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch))
|
||||
_ -> lift $ logWarn $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)
|
||||
-- alpine needs to be set explicitly, because
|
||||
-- we cannot assume that "Linux UnknownLinux" runs on Alpine
|
||||
-- (although it could be static)
|
||||
when (Linux Alpine `notElem` pspecs) $
|
||||
case t of
|
||||
GHCup | arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError
|
||||
Cabal | v > [vver|2.4.1.0|]
|
||||
, arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)) >> addError
|
||||
GHC | Latest `elem` tags || Recommended `elem` tags
|
||||
, arch `elem` [A_64, A_32] -> lift (logError $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch))
|
||||
_ -> lift $ logWarn $ "Linux Alpine missing for " <> T.pack (prettyShow t) <> " " <> v' <> " " <> T.pack (prettyShow arch)
|
||||
|
||||
checkUniqueTags tool = do
|
||||
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||
let allTags = _viTags =<< M.elems (availableToolVersions dls tool)
|
||||
let nonUnique =
|
||||
fmap fst
|
||||
@ -137,15 +154,19 @@ validate dls _ = do
|
||||
lift $ logError $ "Tags not unique for " <> T.pack (prettyShow tool) <> ": " <> T.pack (prettyShow xs)
|
||||
addError
|
||||
where
|
||||
isUniqueTag Latest = True
|
||||
isUniqueTag Recommended = True
|
||||
isUniqueTag Old = False
|
||||
isUniqueTag Prerelease = False
|
||||
isUniqueTag (Base _) = False
|
||||
isUniqueTag (UnknownTag _) = False
|
||||
isUniqueTag Latest = True
|
||||
isUniqueTag Recommended = True
|
||||
isUniqueTag Old = False
|
||||
isUniqueTag Prerelease = False
|
||||
isUniqueTag LatestPrerelease = True
|
||||
isUniqueTag Nightly = False
|
||||
isUniqueTag LatestNightly = True
|
||||
isUniqueTag (Base _) = False
|
||||
isUniqueTag (UnknownTag _) = False
|
||||
|
||||
checkGHCVerIsValid = do
|
||||
let ghcVers = toListOf (ix GHC % to M.keys % folded) dls
|
||||
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||
let ghcVers = toListOf (ix GHC % to M.keys % to (map _tvVersion) % folded) dls
|
||||
forM_ ghcVers $ \v ->
|
||||
case [ x | (x,"") <- readP_to_S V.parseVersion (T.unpack . prettyVer $ v) ] of
|
||||
[_] -> pure ()
|
||||
@ -155,19 +176,30 @@ validate dls _ = do
|
||||
|
||||
-- a tool must have at least one of each mandatory tags
|
||||
checkMandatoryTags tool = do
|
||||
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||
let allTags = _viTags =<< M.elems (availableToolVersions dls tool)
|
||||
forM_ [Latest, Recommended] $ \t -> case t `elem` allTags of
|
||||
forM_ (mandatoryTags tool) $ \t -> case t `elem` allTags of
|
||||
False -> do
|
||||
lift $ logError $ "Tag " <> T.pack (prettyShow t) <> " missing from " <> T.pack (prettyShow tool)
|
||||
addError
|
||||
True -> pure ()
|
||||
|
||||
mandatoryTags tool
|
||||
-- due to a quirk, even for ghcup prereleases we need the 'latest' tag
|
||||
-- https://github.com/haskell/ghcup-hs/issues/891
|
||||
| tool == GHCup = [Latest, Recommended]
|
||||
| otherwise = case distroChannel of
|
||||
MainChan -> [Latest, Recommended]
|
||||
PrereleaseChan -> [LatestPrerelease]
|
||||
NightlyChan -> [LatestNightly]
|
||||
|
||||
-- all GHC versions must have a base tag
|
||||
checkGHCHasBaseVersion = do
|
||||
GHCupInfo { _ghcupDownloads = dls } <- lift getGHCupInfo
|
||||
let allTags = M.toList $ availableToolVersions dls GHC
|
||||
forM allTags $ \(ver, _viTags -> tags) -> case any isBase tags of
|
||||
False -> do
|
||||
lift $ logError $ "Base tag missing from GHC ver " <> prettyVer ver
|
||||
lift $ logError $ "Base tag missing from GHC ver " <> prettyVer (_tvVersion ver)
|
||||
addError
|
||||
True -> pure ()
|
||||
|
||||
@ -175,7 +207,7 @@ validate dls _ = do
|
||||
isBase _ = False
|
||||
|
||||
data TarballFilter = TarballFilter
|
||||
{ tfTool :: Either GlobalTool (Maybe Tool)
|
||||
{ tfTool :: Maybe Tool
|
||||
, tfVersion :: Regex
|
||||
}
|
||||
|
||||
@ -190,20 +222,20 @@ validateTarballs :: ( Monad m
|
||||
, MonadMask m
|
||||
, Alternative m
|
||||
, MonadFail m
|
||||
, HasGHCupInfo env
|
||||
)
|
||||
=> TarballFilter
|
||||
-> GHCupDownloads
|
||||
-> M.Map GlobalTool DownloadInfo
|
||||
-> m ExitCode
|
||||
validateTarballs (TarballFilter etool versionRegex) dls gt = do
|
||||
validateTarballs (TarballFilter mtool versionRegex) = do
|
||||
GHCupInfo { _ghcupDownloads = dls } <- getGHCupInfo
|
||||
ref <- liftIO $ newIORef 0
|
||||
|
||||
-- download/verify all tarballs
|
||||
let dlis = either (const []) (\tool -> nubOrd $ dls ^.. each %& indices (maybe (const True) (==) tool) %> each %& indices (matchTest versionRegex . T.unpack . prettyVer) % (viSourceDL % _Just `summing` viArch % each % each % each)) etool
|
||||
let gdlis = nubOrd $ gt ^.. each
|
||||
let allDls = either (const gdlis) (const dlis) etool
|
||||
when (null allDls) $ logError "no tarballs selected by filter" *> runReaderT addError ref
|
||||
forM_ allDls (downloadAll ref)
|
||||
let dlis = nubOrd $ dls ^.. each %& indices (maybe (const True) (==) mtool)
|
||||
%> each %& indices (matchTest versionRegex . T.unpack . prettyVer . _tvVersion)
|
||||
% (viTestDL % _Just `summing` viSourceDL % _Just `summing` viArch % each % each % each)
|
||||
when (null dlis) $ logError "no tarballs selected by filter" *> runReaderT addError ref
|
||||
forM_ dlis (downloadAll ref)
|
||||
|
||||
-- exit
|
||||
e <- liftIO $ readIORef ref
|
||||
@ -234,32 +266,28 @@ validateTarballs (TarballFilter etool versionRegex) dls gt = do
|
||||
, DownloadFailed
|
||||
, UnknownArchive
|
||||
, ArchiveResult
|
||||
, ContentLengthError
|
||||
]
|
||||
$ do
|
||||
case etool of
|
||||
Right (Just GHCup) -> do
|
||||
case mtool of
|
||||
(Just GHCup) -> do
|
||||
tmpUnpack <- lift mkGhcupTmpDir
|
||||
_ <- liftE $ download (_dlUri dli) Nothing (Just (_dlHash dli)) tmpUnpack Nothing False
|
||||
_ <- liftE $ download (_dlUri dli) Nothing (Just (_dlHash dli)) Nothing (fromGHCupPath tmpUnpack) Nothing False
|
||||
pure Nothing
|
||||
Right _ -> do
|
||||
_ -> do
|
||||
p <- liftE $ downloadCached dli Nothing
|
||||
fmap (Just . head . splitDirectories . head)
|
||||
. liftE
|
||||
. getArchiveFiles
|
||||
$ p
|
||||
Left ShimGen -> do
|
||||
tmpUnpack <- lift mkGhcupTmpDir
|
||||
_ <- liftE $ download (_dlUri dli) Nothing (Just (_dlHash dli)) tmpUnpack Nothing False
|
||||
pure Nothing
|
||||
fmap Just $ liftE
|
||||
. getArchiveFiles
|
||||
$ p
|
||||
case r of
|
||||
VRight (Just basePath) -> do
|
||||
VRight (Just entries) -> do
|
||||
case _dlSubdir dli of
|
||||
Just (RealDir prel) -> do
|
||||
logInfo
|
||||
$ " verifying subdir: " <> T.pack prel
|
||||
when (basePath /= prel) $ do
|
||||
when (normalise prel `notElem` fmap (normalise . takeDirectory) entries) $ do
|
||||
logError $
|
||||
"Subdir doesn't match: expected " <> T.pack prel <> ", got " <> T.pack basePath
|
||||
"Subdir doesn't match: expected " <> T.pack prel
|
||||
runReaderT addError ref
|
||||
Just (RegexDir regexString) -> do
|
||||
logInfo $
|
||||
@ -268,9 +296,9 @@ validateTarballs (TarballFilter etool versionRegex) dls gt = do
|
||||
compIgnoreCase
|
||||
execBlank
|
||||
regexString
|
||||
unless (match regex basePath) $ do
|
||||
unless (or $ fmap (match regex. normalise) entries) $ do
|
||||
logError $
|
||||
"Subdir doesn't match: expected regex " <> T.pack regexString <> ", got " <> T.pack basePath
|
||||
"Subdir doesn't match: expected regex " <> T.pack regexString
|
||||
runReaderT addError ref
|
||||
Nothing -> pure ()
|
||||
VRight Nothing -> pure ()
|
||||
|
@ -23,6 +23,7 @@ source-repository head
|
||||
executable ghcup-gen
|
||||
main-is: Main.hs
|
||||
other-modules: Validate
|
||||
Generate
|
||||
default-language: Haskell2010
|
||||
default-extensions:
|
||||
DeriveGeneric
|
||||
@ -44,13 +45,16 @@ executable ghcup-gen
|
||||
-fwarn-incomplete-record-updates -threaded
|
||||
|
||||
build-depends:
|
||||
, aeson-pretty ^>=0.8.9
|
||||
, base >=4.13 && <5
|
||||
, bytestring ^>=0.10
|
||||
, bytestring ^>=0.11
|
||||
, containers ^>=0.6
|
||||
, deepseq ^>=1.4
|
||||
, filepath ^>=1.4.2.1
|
||||
, ghcup ^>=0.1.17.3
|
||||
, haskus-utils-variant ^>=3.2
|
||||
, ghcup ^>=0.1.19.0
|
||||
, haskus-utils-variant ^>=3.3
|
||||
, libarchive ^>=3.0.3.0
|
||||
, megaparsec >=8.0.0 && <9.3
|
||||
, mtl ^>=2.2
|
||||
, optics ^>=0.4
|
||||
, optparse-applicative >=0.15.1.0 && <0.17
|
||||
@ -59,7 +63,7 @@ executable ghcup-gen
|
||||
, regex-posix ^>=0.96
|
||||
, resourcet ^>=1.2.2
|
||||
, safe-exceptions ^>=0.1
|
||||
, text ^>=1.2.4.0
|
||||
, text ^>=2.0
|
||||
, transformers ^>=0.5
|
||||
, versions >=4.0.1 && <5.1
|
||||
, versions >=6.0.0
|
||||
, yaml-streamly ^>=0.12.0
|
||||
|
1649
ghcup-prereleases-0.0.7.yaml
Normal file
1649
ghcup-prereleases-0.0.7.yaml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
ghcup-prereleases-0.0.7.yaml.sig
Normal file
BIN
ghcup-prereleases-0.0.7.yaml.sig
Normal file
Binary file not shown.
2207
ghcup-prereleases-0.0.8.yaml
Normal file
2207
ghcup-prereleases-0.0.8.yaml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
ghcup-prereleases-0.0.8.yaml.sig
Normal file
BIN
ghcup-prereleases-0.0.8.yaml.sig
Normal file
Binary file not shown.
6699
ghcup-vanilla-0.0.7.yaml
Normal file
6699
ghcup-vanilla-0.0.7.yaml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
ghcup-vanilla-0.0.7.yaml.sig
Normal file
BIN
ghcup-vanilla-0.0.7.yaml.sig
Normal file
Binary file not shown.
6744
ghcup-vanilla-0.0.8.yaml
Normal file
6744
ghcup-vanilla-0.0.8.yaml
Normal file
File diff suppressed because it is too large
Load Diff
BIN
ghcup-vanilla-0.0.8.yaml.sig
Normal file
BIN
ghcup-vanilla-0.0.8.yaml.sig
Normal file
Binary file not shown.
1687
hls-metadata-0.0.1.json
Normal file
1687
hls-metadata-0.0.1.json
Normal file
File diff suppressed because it is too large
Load Diff
BIN
hls-metadata-0.0.1.json.sig
Normal file
BIN
hls-metadata-0.0.1.json.sig
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user