Skip to content

Commit b410c3a

Browse files
committed
Test CI
1 parent 9969af4 commit b410c3a

File tree

7 files changed

+4117
-0
lines changed

7 files changed

+4117
-0
lines changed

.github/workflows/nix-action-coq-master.yml

+3,701
Large diffs are not rendered by default.

.nix/config.nix

+232
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,232 @@
1+
with builtins; with (import <nixpkgs> {}).lib;
2+
{
3+
## DO NOT CHANGE THIS
4+
format = "1.0.0";
5+
## unless you made an automated or manual update
6+
## to another supported format.
7+
8+
## The attribute to build from the local sources,
9+
## either using nixpkgs data or the overlays located in `.nix/coq-overlays`
10+
## Will determine the default main-job of the bundles defined below
11+
attribute = "stdlib";
12+
13+
## If you want to select a different attribute (to build from the local sources as well)
14+
## when calling `nix-shell` and `nix-build` without the `--argstr job` argument
15+
# shell-attribute = "{{nix_name}}";
16+
17+
## Maybe the shortname of the library is different from
18+
## the name of the nixpkgs attribute, if so, set it here:
19+
# pname = "{{shortname}}";
20+
21+
## Lists the dependencies, phrased in terms of nix attributes.
22+
## No need to list Coq, it is already included.
23+
## These dependencies will systematically be added to the currently
24+
## known dependencies, if any more than Coq.
25+
## /!\ Remove this field as soon as the package is available on nixpkgs.
26+
## /!\ Manual overlays in `.nix/coq-overlays` should be preferred then.
27+
# buildInputs = [ ];
28+
29+
## Indicate the relative location of your _CoqProject
30+
## If not specified, it defaults to "_CoqProject"
31+
coqproject = "theories/_CoqProject";
32+
33+
## Cachix caches to use in CI
34+
## Below we list some standard ones
35+
cachix.coq = {};
36+
cachix.math-comp = {};
37+
# cachix.coq-community = {};
38+
39+
## If you have write access to one of these caches you can
40+
## provide the auth token or signing key through a secret
41+
## variable on GitHub. Then, you should give the variable
42+
## name here. For instance, coq-community projects can use
43+
## the following line instead of the one above:
44+
cachix.coq-community.authToken = "CACHIX_AUTH_TOKEN";
45+
46+
## Or if you have a signing key for a given Cachix cache:
47+
# cachix.my-cache.signingKey = "CACHIX_SIGNING_KEY"
48+
49+
## Note that here, CACHIX_AUTH_TOKEN and CACHIX_SIGNING_KEY
50+
## are the names of secret variables. They are set in
51+
## GitHub's web interface.
52+
53+
## select an entry to build in the following `bundles` set
54+
## defaults to "default"
55+
default-bundle = "coq-master";
56+
57+
## write one `bundles.name` attribute set per
58+
## alternative configuration
59+
## When generating GitHub Action CI, one workflow file
60+
## will be created per bundle
61+
bundles = let
62+
## In some cases, light overrides are not available/enough
63+
## in which case you can use either
64+
# coqPackages.<coq-pkg>.overrideAttrs = o: <overrides>;
65+
## or a "long" overlay to put in `.nix/coq-overlays
66+
## you may use `nix-shell --run fetchOverlay <coq-pkg>`
67+
## to automatically retrieve the one from nixpkgs
68+
## if it exists and is correctly named/located
69+
70+
## You can override Coq and other coqPackages
71+
## through the following attribute
72+
## If <ocaml-pkg> does not support light overrides,
73+
## you may use `overrideAttrs` or long overlays
74+
## located in `.nix/ocaml-overlays`
75+
## (there is no automation for this one)
76+
# ocamlPackages.<ocaml-pkg>.override.version = "x.xx";
77+
78+
## You can also override packages from the nixpkgs toplevel
79+
# <nix-pkg>.override.overrideAttrs = o: <overrides>;
80+
## Or put an overlay in `.nix/overlays`
81+
82+
## you may mark a package as a main CI job (one to take deps and
83+
## rev deps from) as follows
84+
# coqPackages.<main-pkg>.main-job = true;
85+
## by default the current package and its shell attributes are main jobs
86+
87+
## you may mark a package as a CI job as follows
88+
# coqPackages.<another-pkg>.job = "test";
89+
## It can then built through
90+
## nix-build --argstr bundle "default" --arg job "test";
91+
## in the absence of such a directive, the job "another-pkg" will
92+
## is still available, but will be automatically included in the CI
93+
## via the command genNixActions only if it is a dependency or a
94+
## reverse dependency of a job flagged as "main-job" (see above).
95+
96+
## Run on push on following branches (default [ "master" ])
97+
# push-branches = [ "master" "branch2" ];
98+
99+
master = [
100+
"stdlib"
101+
"mathcomp"
102+
"fourcolor"
103+
"odd-order"
104+
"mathcomp-zify"
105+
"mathcomp-finmap"
106+
"mathcomp-bigenough"
107+
"mathcomp-analysis"
108+
# TODO unimath
109+
"unicoq"
110+
# "math-classes" -> overlay
111+
# "corn" -> overlay
112+
"stdpp"
113+
# "iris" -> overlay
114+
# "autosubst" -> overlay
115+
# TODO tests from iris/examples
116+
# TODO hott
117+
# "coq-hammer" -> overlay
118+
# "flocq" -> overlay
119+
# TODO coq-performance-tests
120+
# TODO coq-tools
121+
"coquelicot"
122+
# "compcert" -> overlay
123+
# "vst" -> overlay
124+
# TODO cross-crypto
125+
# TODO rewriter
126+
# TODO fiat_parsers
127+
# TODO fiat_crypto_legacy
128+
# TODO fiat_crypto
129+
# TODO rupicola
130+
# TODO bedrock2
131+
# TODO coqutil
132+
# TODO kami
133+
# TODO riscv_coq
134+
# TODO color
135+
"bignums"
136+
"coqprime"
137+
# TODO bbv
138+
# TODO coinduction
139+
# "coq-elpi" -> overlay
140+
"hierarchy-builder"
141+
# TODO engine bench
142+
# TODO fcsl_pcm
143+
# "coq-ext-lib" -> overlay
144+
# "simple-io" -> overlay
145+
# "QuickChick" -> overlay
146+
# TODO reduction_effects
147+
# TODO menhirlib
148+
# TODO neural_net_interp
149+
# "aac-tactics" -> overlay
150+
"paco"
151+
# TODO itree
152+
# TODO itree_io
153+
"ceres"
154+
"parsec"
155+
# TODO json
156+
# TODO async_test
157+
# TODO http
158+
"paramcoq"
159+
# "relation-algebra" -> overlay
160+
"StructTact"
161+
"InfSeqExt"
162+
"Cheerios"
163+
"Verdi"
164+
# TODO verdi-raft
165+
# TODO stdlib2
166+
# TODO argosy
167+
# TODO atbr
168+
# TODO perennial
169+
# TODO sf
170+
# TODO Coqtail
171+
"deriving"
172+
# TODO vscoq (is vscoq-language-server enough?)
173+
# "category-theory" -> overlay
174+
"itauto"
175+
# TODO jasmin
176+
# TODO coq-lean-importer
177+
# TODO smtcoq_trakt
178+
# TODO stalmarck
179+
# TODO tactician
180+
# TODO ltac2_compiler
181+
# TODO waterproof
182+
# TODO autosubst OCaml
183+
];
184+
coq-master = [
185+
"dpdgraph"
186+
# "smtcoq" -> overlay
187+
"trakt"
188+
];
189+
main = [
190+
"coq-lsp"
191+
# "equations" -> overlay
192+
# "metacoq" -> overlay
193+
# "serapi" -> overlay
194+
"mathcomp-word"
195+
];
196+
common-bundles = listToAttrs (forEach master (p:
197+
{ name = p; value.override.version = "master"; }))
198+
// listToAttrs (forEach coq-master (p:
199+
{ name = p; value.override.version = "coq-master"; }))
200+
// listToAttrs (forEach main (p:
201+
{ name = p; value.override.version = "main"; }))
202+
// {
203+
coq-elpi.override.version = "proux01:split_stdlib";
204+
mathcomp.override.version = "proux01:split_stdlib";
205+
# tlc.override.version = "master-for-coq-ci"; -> overlay
206+
tlc.override.version = "proux01:split_stdlib";
207+
flocq.override.version = "split_stdlib";
208+
coq-ext-lib.override.version = "split_stdlib";
209+
aac-tactics.override.version = "split_stdlib";
210+
coq-hammer.override.version = "proux01:split_stdlib";
211+
math-classes.override.version = "split_stdlib";
212+
corn.override.version = "split_stdlib";
213+
equations.override.version = "proux01:split_stdlib";
214+
autosubst.override.version = "split_stdlib";
215+
relation-algebra.override.version = "proux01:split_stdlib";
216+
category-theory.override.version = "proux01:split_stdlib";
217+
metacoq.override.version = "proux01:split_stdlib";
218+
compcert.override.version = "proux01:split_stdlib";
219+
simple-io.override.version = "proux01:split_stdlib";
220+
QuickChick.override.version = "proux01:split_stdlib";
221+
serapi.override.version = "proux01:coq_19310";
222+
iris.override.version = "proux:split_stdlib";
223+
vst.override.version = "proux01:split_stdlib";
224+
smtcoq.override.version = "split_stdlib";
225+
};
226+
in {
227+
"coq-master".coqPackages = common-bundles // {
228+
coq.override.version = "proux01:split_stdlib";
229+
};
230+
"coq-master".ocamlPackages = { elpi.override.version = "1.19.2"; };
231+
};
232+
}

.nix/coq-nix-toolbox.nix

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
"cfb0ce8c984ad362a87eefb4096392dfad92b6e3"

.nix/coq-overlays/flocq/default.nix

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{ lib, bash, autoconf, automake,
2+
mkCoqDerivation, coq, stdlib, version ? null }:
3+
4+
mkCoqDerivation {
5+
pname = "flocq";
6+
owner = "proux01";
7+
inherit version;
8+
defaultVersion = with lib.versions; lib.switch coq.coq-version [
9+
{ case = range "8.14" "8.19"; out = "4.1.4"; }
10+
{ case = range "8.14" "8.18"; out = "4.1.3"; }
11+
{ case = range "8.14" "8.17"; out = "4.1.1"; }
12+
{ case = range "8.14" "8.16"; out = "4.1.0"; }
13+
{ case = range "8.7" "8.15"; out = "3.4.3"; }
14+
{ case = range "8.5" "8.8"; out = "2.6.1"; }
15+
] null;
16+
release."4.1.4".sha256 = "sha256-Use6Mlx79yef1CkCPyGoOItsD69B9KR+mQArCtmre4s=";
17+
release."4.1.3".sha256 = "sha256-os3cI885xNpxI+1p5rb8fSNnxKr7SFxqh83+3AM3t4I=";
18+
release."4.1.1".sha256 = "sha256-FbClxlV0ZaxITe7s9SlNbpeMNDJli+Dfh2TMrjaMtHo=";
19+
release."4.1.0".sha256 = "sha256:09rak9cha7q11yfqracbcq75mhmir84331h1218xcawza48rbjik";
20+
release."3.4.3".sha256 = "sha256-YTdWlEmFJjCcHkl47jSOgrGqdXoApJY4u618ofCaCZE=";
21+
release."3.4.2".sha256 = "1s37hvxyffx8ccc8mg5aba7ivfc39p216iibvd7f2cb9lniqk1pw";
22+
release."3.3.1".sha256 = "1mk8adhi5hrllsr0hamzk91vf2405sjr4lh5brg9201mcw11abkz";
23+
release."2.6.1".sha256 = "0q5a038ww5dn72yvwn5298d3ridkcngb1dik8hdyr3xh7gr5qibj";
24+
releaseRev = v: "flocq-${v}";
25+
26+
nativeBuildInputs = [ bash autoconf ];
27+
mlPlugin = true;
28+
useMelquiondRemake.logpath = "Flocq";
29+
30+
propagatedBuildInputs = [ stdlib ];
31+
32+
meta = with lib; {
33+
description = "Floating-point formalization for the Coq system";
34+
license = licenses.lgpl3;
35+
maintainers = with maintainers; [ jwiegley ];
36+
};
37+
}

.nix/coq-overlays/smtcoq/default.nix

+59
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
{ lib, stdenv, pkgs, mkCoqDerivation, coq, veriT, zchaff, fetchurl, cvc5, stdlib, version ? null }:
2+
3+
let
4+
# version of veriT that works with SMTCoq
5+
veriT' = veriT.overrideAttrs (oA: {
6+
src = fetchurl {
7+
url = "https://www.lri.fr/~keller/Documents-recherche/Smtcoq/veriT9f48a98.tar.gz";
8+
sha256 = "sha256-Pe46PxQVHWwWwx5Ei4Bl95A0otCiXZuUZ2nXuZPYnhY=";
9+
};
10+
meta.broken = false;
11+
});
12+
in
13+
14+
mkCoqDerivation {
15+
pname = "smtcoq";
16+
repo = "smtcoq";
17+
owner = "proux01";
18+
19+
release."SMTCoq-2.2+8.19".sha256 = "sha256-9Wv8AXRRyOHG/cjA/V9tSK55R/bofDMLTkDpuwYWkks=";
20+
release."SMTCoq-2.2+8.18".sha256 = "sha256-1iJAruI5Qn9nTZcUDjk8t/1Q+eFkYLOe9Ee0DmK03w8=";
21+
release."SMTCoq-2.2+8.17".sha256 = "sha256-kaodsyVUl1+QQagzoBTIjxbdD4X3IaaH0x2AsVUL+Z0=";
22+
release."SMTCoq-2.2+8.16".sha256 = "sha256-Hwm8IFlw97YiOY6H63HyJlwIXvQHr9lqc1+PgTnBtkw=";
23+
release."SMTCoq-2.2+8.15".sha256 = "sha256-+GYOasJ32KJyOfqJlTtFmsJ2exd6gdueKwHdeMPErTo=";
24+
release."SMTCoq-2.2+8.14".sha256 = "sha256-jqnF33E/4CqR1HSrLmUmLVCKslw9h3bbWi4YFmFYrhY=";
25+
release."SMTCoq-2.2+8.13".sha256 = "sha256-AVpKU/SLaLYnCnx6GOEPGJjwbRrp28Fs5O50kJqdclI=";
26+
release."SMTCoq-2.1+8.16".rev = "4996c00b455bfe98400e96c954839ceea93efdf7";
27+
release."SMTCoq-2.1+8.16".sha256 = "sha256-k53e+frUjwq+ZZKbbOKd/EfVC40QeAzB2nCsGkCKnHA=";
28+
release."SMTCoq-2.1+8.14".rev = "e11d9b424b0113f32265bcef0ddc962361da4dae";
29+
release."SMTCoq-2.1+8.14".sha256 = "sha256-4a01/CRHUon2OfpagAnMaEVkBFipPX3MCVmSFS1Bnt4=";
30+
release."SMTCoq-2.1+8.13".rev = "d02269c43739f4559d83873563ca00daad9faaf1";
31+
release."SMTCoq-2.1+8.13".sha256 = "sha256-VZetGghdr5uJWDwZWSlhYScoNEoRHIbwqwJKSQyfKKg=";
32+
33+
releaseRev = v: v;
34+
35+
inherit version;
36+
defaultVersion = with lib.versions; lib.switch coq.version [
37+
{ case = isEq "8.19"; out = "SMTCoq-2.2+8.19"; }
38+
{ case = isEq "8.18"; out = "SMTCoq-2.2+8.18"; }
39+
{ case = isEq "8.17"; out = "SMTCoq-2.2+8.17"; }
40+
{ case = isEq "8.16"; out = "SMTCoq-2.2+8.16"; }
41+
{ case = isEq "8.15"; out = "SMTCoq-2.2+8.15"; }
42+
{ case = isEq "8.14"; out = "SMTCoq-2.2+8.14"; }
43+
{ case = isEq "8.13"; out = "SMTCoq-2.2+8.13"; }
44+
] null;
45+
46+
propagatedBuildInputs = [ cvc5 veriT' zchaff stdlib ] ++ (with coq.ocamlPackages; [ findlib num zarith ]);
47+
mlPlugin = true;
48+
nativeBuildInputs = (with pkgs; [ gnumake42 ]) ++ (with coq.ocamlPackages; [ ocamlbuild ]);
49+
50+
# This is meant to ease future troubleshooting of cvc5 build failures
51+
passthru = { inherit cvc5; };
52+
53+
meta = with lib; {
54+
description = "Communication between Coq and SAT/SMT solvers";
55+
maintainers = with maintainers; [ siraben ];
56+
license = licenses.cecill-b;
57+
platforms = platforms.unix;
58+
};
59+
}

0 commit comments

Comments
 (0)