Skip to content

Commit d11de6a

Browse files
committed
Test CI
1 parent 9969af4 commit d11de6a

File tree

7 files changed

+4237
-0
lines changed

7 files changed

+4237
-0
lines changed

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

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

.nix/config.nix

+233
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,233 @@
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+
# "coq-hammer" -> overlay
117+
# "flocq" -> overlay
118+
# TODO coq-performance-tests
119+
# TODO coq-tools
120+
"coquelicot"
121+
# "compcert" -> overlay
122+
# "vst" -> overlay
123+
# TODO cross-crypto
124+
# TODO rewriter
125+
# TODO fiat_parsers
126+
# TODO fiat_crypto_legacy
127+
# TODO fiat_crypto
128+
# TODO rupicola
129+
# TODO bedrock2
130+
# TODO coqutil
131+
# TODO kami
132+
# TODO riscv_coq
133+
"CoLoR"
134+
"bignums"
135+
"coqprime"
136+
# TODO bbv
137+
# TODO coinduction
138+
# "coq-elpi" -> overlay
139+
"hierarchy-builder"
140+
# TODO engine bench
141+
# TODO fcsl_pcm
142+
# "coq-ext-lib" -> overlay
143+
# "simple-io" -> overlay
144+
# "QuickChick" -> overlay
145+
# TODO reduction_effects
146+
# TODO menhirlib
147+
# TODO neural_net_interp
148+
# "aac-tactics" -> overlay
149+
"paco"
150+
# "ITree" -> overlay
151+
# TODO itree_io
152+
"ceres"
153+
"parsec"
154+
# TODO json
155+
# TODO async_test
156+
# TODO http
157+
"paramcoq"
158+
# "relation-algebra" -> overlay
159+
"StructTact"
160+
"InfSeqExt"
161+
"Cheerios"
162+
"Verdi"
163+
# TODO verdi-raft
164+
# TODO stdlib2
165+
# TODO argosy
166+
# TODO atbr
167+
# TODO perennial
168+
# TODO sf
169+
# TODO Coqtail
170+
"deriving"
171+
# TODO vscoq (is vscoq-language-server enough?)
172+
# "category-theory" -> overlay
173+
"itauto"
174+
# TODO jasmin
175+
# TODO coq-lean-importer
176+
# TODO smtcoq_trakt
177+
# TODO stalmarck
178+
# TODO tactician
179+
# TODO ltac2_compiler
180+
# TODO waterproof
181+
# TODO autosubst OCaml
182+
];
183+
coq-master = [
184+
"dpdgraph"
185+
# "smtcoq" -> overlay
186+
"trakt"
187+
];
188+
main = [
189+
"coq-lsp"
190+
# "equations" -> overlay
191+
# "metacoq" -> overlay
192+
# "serapi" -> overlay
193+
"mathcomp-word"
194+
];
195+
common-bundles = listToAttrs (forEach master (p:
196+
{ name = p; value.override.version = "master"; }))
197+
// listToAttrs (forEach coq-master (p:
198+
{ name = p; value.override.version = "coq-master"; }))
199+
// listToAttrs (forEach main (p:
200+
{ name = p; value.override.version = "main"; }))
201+
// {
202+
coq-elpi.override.version = "proux01:split_stdlib";
203+
mathcomp.override.version = "proux01:split_stdlib";
204+
# tlc.override.version = "master-for-coq-ci"; -> overlay
205+
tlc.override.version = "proux01:split_stdlib";
206+
flocq.override.version = "split_stdlib";
207+
coq-ext-lib.override.version = "split_stdlib";
208+
aac-tactics.override.version = "split_stdlib";
209+
coq-hammer.override.version = "proux01:split_stdlib";
210+
math-classes.override.version = "split_stdlib";
211+
corn.override.version = "split_stdlib";
212+
equations.override.version = "proux01:split_stdlib";
213+
autosubst.override.version = "split_stdlib";
214+
relation-algebra.override.version = "proux01:split_stdlib";
215+
category-theory.override.version = "proux01:split_stdlib";
216+
metacoq.override.version = "proux01:split_stdlib";
217+
compcert.override.version = "proux01:split_stdlib";
218+
simple-io.override.version = "proux01:split_stdlib";
219+
QuickChick.override.version = "proux01:split_stdlib";
220+
serapi.override.version = "proux01:coq_19310";
221+
iris.override.version = "proux:split_stdlib";
222+
vst.override.version = "proux01:split_stdlib";
223+
smtcoq.override.version = "split_stdlib";
224+
CoLoR.override.version = "proux01:split_stdlib";
225+
ITree.override.version = "proux01:split_stdlib";
226+
};
227+
in {
228+
"coq-master".coqPackages = common-bundles // {
229+
coq.override.version = "proux01:split_stdlib";
230+
};
231+
"coq-master".ocamlPackages = { elpi.override.version = "1.19.2"; };
232+
};
233+
}

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