|
| 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 | +} |
0 commit comments