aboutsummaryrefslogtreecommitdiff
path: root/dev
diff options
context:
space:
mode:
Diffstat (limited to 'dev')
-rwxr-xr-xdev/bench/gitlab.sh12
-rwxr-xr-xdev/build/windows/makecoq_mingw.sh11
-rwxr-xr-xdev/ci/azure-build.sh1
-rwxr-xr-xdev/ci/ci-basic-overlay.sh285
-rw-r--r--dev/ci/ci-common.sh30
-rwxr-xr-xdev/ci/ci-elpi.sh4
-rwxr-xr-xdev/ci/ci-gappa.sh4
-rw-r--r--dev/ci/docker/README.md28
-rw-r--r--dev/ci/docker/bionic_coq/Dockerfile3
-rw-r--r--dev/ci/user-overlays/12218-proux01-numeral-notations-non-inductive.sh18
-rw-r--r--dev/ci/user-overlays/12449-SkySkimmer-minim-prop-toset.sh6
-rw-r--r--dev/ci/user-overlays/12611-ejgallego-record+refactor.sh9
-rw-r--r--dev/ci/user-overlays/12653-SkySkimmer-cumul-syntax.sh15
-rw-r--r--dev/ci/user-overlays/12873-master+minifix-unification-error-reporting-recheck-applications.sh6
-rw-r--r--dev/ci/user-overlays/13075-ppedrot-explicit-names-quotient.sh9
-rw-r--r--dev/ci/user-overlays/13128-SkySkimmer-noinstance.sh5
-rw-r--r--dev/ci/user-overlays/13139-ppedrot-clean-hint-constr.sh9
-rw-r--r--dev/ci/user-overlays/13166-herbelin-master+fixes13165-missing-impargs-defined-fields.sh6
-rw-r--r--dev/ci/user-overlays/13312-ejgallego-attributes+bool_single.sh6
-rw-r--r--dev/ci/user-overlays/13386-master+fix9971-primproj-canonical-structure-on-evar-type.sh9
-rw-r--r--dev/ci/user-overlays/13415-SkySkimmer-intern-univs.sh8
-rw-r--r--dev/ci/user-overlays/13481-elpi-1.12.sh6
-rw-r--r--dev/ci/user-overlays/13537-ppedrot-lazy-subst-kernel.sh5
-rw-r--r--dev/ci/user-overlays/README.md31
-rw-r--r--dev/doc/changes.md5
-rw-r--r--dev/doc/release-process.md28
-rwxr-xr-xdev/tools/create_overlays.sh7
-rwxr-xr-xdev/tools/notify-upstream-pins.sh23
-rwxr-xr-xdev/tools/pin-ci.sh6
29 files changed, 207 insertions, 388 deletions
diff --git a/dev/bench/gitlab.sh b/dev/bench/gitlab.sh
index 7796ae3b01..b616371ef8 100755
--- a/dev/bench/gitlab.sh
+++ b/dev/bench/gitlab.sh
@@ -287,8 +287,8 @@ create_opam() {
/usr/bin/time -o "$log_dir/coq.$RUNNER.1.time" --format="%U %M %F" \
perf stat -e instructions:u,cycles:u -o "$log_dir/coq.$RUNNER.1.perf" \
opam pin add -y -b -j "$number_of_processors" --kind=path coq.dev . \
- 3>$log_dir/coq.$RUNNER.opam_install.1.stdout 1>&3 \
- 4>$log_dir/coq.$RUNNER.opam_install.1.stderr 2>&4 || \
+ 3>$log_dir/coq.$RUNNER.opam_install.1.stdout.log 1>&3 \
+ 4>$log_dir/coq.$RUNNER.opam_install.1.stderr.log 2>&4 || \
_RES=$?
if [ $_RES = 0 ]; then
echo "Coq ($RUNNER) installed successfully"
@@ -363,8 +363,8 @@ for coq_opam_package in $sorted_coq_opam_packages; do
opam config set-global jobs $number_of_processors
opam install $coq_opam_package -v -b -j$number_of_processors --deps-only -y \
- 3>$log_dir/$coq_opam_package.$RUNNER.opam_install.deps_only.stdout 1>&3 \
- 4>$log_dir/$coq_opam_package.$RUNNER.opam_install.deps_only.stderr 2>&4 || continue 2
+ 3>$log_dir/$coq_opam_package.$RUNNER.opam_install.deps_only.stdout.log 1>&3 \
+ 4>$log_dir/$coq_opam_package.$RUNNER.opam_install.deps_only.stderr.log 2>&4 || continue 2
opam config set-global jobs 1
@@ -375,8 +375,8 @@ for coq_opam_package in $sorted_coq_opam_packages; do
/usr/bin/time -o "$log_dir/$coq_opam_package.$RUNNER.$iteration.time" --format="%U %M %F" \
perf stat -e instructions:u,cycles:u -o "$log_dir/$coq_opam_package.$RUNNER.$iteration.perf" \
opam install -v -b -j1 $coq_opam_package \
- 3>$log_dir/$coq_opam_package.$RUNNER.opam_install.$iteration.stdout 1>&3 \
- 4>$log_dir/$coq_opam_package.$RUNNER.opam_install.$iteration.stderr 2>&4 || \
+ 3>$log_dir/$coq_opam_package.$RUNNER.opam_install.$iteration.stdout.log 1>&3 \
+ 4>$log_dir/$coq_opam_package.$RUNNER.opam_install.$iteration.stderr.log 2>&4 || \
_RES=$?
if [ $_RES = 0 ];
then
diff --git a/dev/build/windows/makecoq_mingw.sh b/dev/build/windows/makecoq_mingw.sh
index ebbf10f548..beed8bc443 100755
--- a/dev/build/windows/makecoq_mingw.sh
+++ b/dev/build/windows/makecoq_mingw.sh
@@ -949,7 +949,7 @@ function make_arch_pkg_config {
##### OCAML #####
function make_ocaml {
- if build_prep https://github.com/ocaml/ocaml/archive 4.08.1 tar.gz 1 ocaml-4.08.1 ; then
+ if build_prep https://github.com/ocaml/ocaml/archive 4.10.2 tar.gz 1 ocaml-4.10.2 ; then
# see https://github.com/ocaml/ocaml/blob/4.08/README.win32.adoc
# get flexdll sources into folder ./flexdll
@@ -1047,8 +1047,7 @@ function make_ocamlbuild {
function make_findlib {
make_ocaml
make_ocamlbuild
- # Note: latest is 1.8.1 but http://projects.camlcity.org/projects/dl/findlib-1.8.1/doc/README says this is for OCaml 4.09
- if build_prep https://opam.ocaml.org/1.2.2/archives ocamlfind.1.8.0+opam tar.gz 1 ; then
+ if build_prep http://download.camlcity.org/download/ findlib-1.8.1 tar.gz 1; then
logn configure ./configure -bindir "$PREFIXOCAML\\bin" -sitelib "$PREFIXOCAML\\libocaml\\site-lib" -config "$PREFIXOCAML\\etc\\findlib.conf"
# Note: findlib doesn't support -j 8, so don't pass MAKE_OPT
log2 make all
@@ -1153,7 +1152,7 @@ function make_lablgtk {
make_gtk_sourceview3
make_ocaml_cairo2
- if build_prep https://github.com/garrigue/lablgtk/archive 3.0.beta5 tar.gz 1 lablgtk-3.0.beta5 ; then
+ if build_prep https://github.com/garrigue/lablgtk/archive 3.1.1 tar.gz 1 lablgtk-3.1.1 ; then
make_arch_pkg_config
# lablgtk3 includes more packages that are not relevant for Coq,
@@ -1436,12 +1435,12 @@ function make_coq {
# make clean
# Copy these files somewhere the plugin builds can find them
- logn copy-basic-overlays cp dev/ci/ci-basic-overlay.sh /build/
+ #logn copy-basic-overlays cp dev/ci/ci-basic-overlay.sh /build/
build_post
fi
- load_overlay_data
+ #load_overlay_data
}
##### GNU Make for MinGW #####
diff --git a/dev/ci/azure-build.sh b/dev/ci/azure-build.sh
index 494651c5bf..1b02cd45ed 100755
--- a/dev/ci/azure-build.sh
+++ b/dev/ci/azure-build.sh
@@ -4,4 +4,5 @@ set -e -x
cd $(dirname $0)/../..
+eval $(opam env)
dune build coq.install coqide-server.install
diff --git a/dev/ci/ci-basic-overlay.sh b/dev/ci/ci-basic-overlay.sh
index 18fdd83218..97d9537508 100755
--- a/dev/ci/ci-basic-overlay.sh
+++ b/dev/ci/ci-basic-overlay.sh
@@ -1,54 +1,71 @@
#!/usr/bin/env bash
-# This is the basic overlay set for repositories in the CI.
-
-# Maybe we should just use Ruby to have real objects...
-
-# : "${foo:=bar}" sets foo to "bar" if it is unset or null
+# This is the list of repositories used by the CI scripts, unless overridden
+# by a call to the "overlay" function in ci-common
+
+declare -a projects # the list of project repos that can be be overlayed
+
+# checks if the given argument is a known project
+function is_in_projects {
+ for x in "${projects[@]}"; do
+ if [ "$1" = "$x" ]; then return 0; fi;
+ done
+ return 1
+}
+
+# project <name> <giturl> <ref> [<archiveurl>]
+# [<archiveurl>] defaults to <giturl>/archive on github.com
+# and <giturl>/-/archive on gitlab
+function project {
+
+ local var_ref=${1}_CI_REF
+ local var_giturl=${1}_CI_GITURL
+ local var_archiveurl=${1}_CI_ARCHIVEURL
+ local giturl=$2
+ local ref=$3
+ local archiveurl=$4
+ case $giturl in
+ *github.com*) archiveurl=${archiveurl:-$giturl/archive} ;;
+ *gitlab*) archiveurl=${archiveurl:-$giturl/-/archive} ;;
+ esac
+
+ # register the project in the list of projects
+ projects[${#projects[*]}]=$1
+
+ # bash idiom for setting a variable if not already set
+ : "${!var_ref:=$ref}"
+ : "${!var_giturl:=$giturl}"
+ : "${!var_archiveurl:=$archiveurl}"
+
+}
########################################################################
# MathComp
########################################################################
-: "${mathcomp_CI_REF:=master}"
-: "${mathcomp_CI_GITURL:=https://github.com/math-comp/math-comp}"
-: "${mathcomp_CI_ARCHIVEURL:=${mathcomp_CI_GITURL}/archive}"
+project mathcomp "https://github.com/math-comp/math-comp" "master"
-: "${fourcolor_CI_REF:=master}"
-: "${fourcolor_CI_GITURL:=https://github.com/math-comp/fourcolor}"
-: "${fourcolor_CI_ARCHIVEURL:=${fourcolor_CI_GITURL}/archive}"
+project fourcolor "https://github.com/math-comp/fourcolor" "master"
-: "${oddorder_CI_REF:=master}"
-: "${oddorder_CI_GITURL:=https://github.com/math-comp/odd-order}"
-: "${oddorder_CI_ARCHIVEURL:=${oddorder_CI_GITURL}/archive}"
+project oddorder "https://github.com/math-comp/odd-order" "master"
########################################################################
# UniMath
########################################################################
-: "${unimath_CI_REF:=master}"
-: "${unimath_CI_GITURL:=https://github.com/UniMath/UniMath}"
-: "${unimath_CI_ARCHIVEURL:=${unimath_CI_GITURL}/archive}"
+project unimath "https://github.com/UniMath/UniMath" "master"
########################################################################
# Unicoq + Mtac2
########################################################################
-: "${unicoq_CI_REF:=master}"
-: "${unicoq_CI_GITURL:=https://github.com/unicoq/unicoq}"
-: "${unicoq_CI_ARCHIVEURL:=${unicoq_CI_GITURL}/archive}"
+project unicoq "https://github.com/unicoq/unicoq" "master"
-: "${mtac2_CI_REF:=master}"
-: "${mtac2_CI_GITURL:=https://github.com/Mtac2/Mtac2}"
-: "${mtac2_CI_ARCHIVEURL:=${mtac2_CI_GITURL}/archive}"
+project mtac2 "https://github.com/Mtac2/Mtac2" "master"
########################################################################
# Mathclasses + Corn
########################################################################
-: "${math_classes_CI_REF:=master}"
-: "${math_classes_CI_GITURL:=https://github.com/coq-community/math-classes}"
-: "${math_classes_CI_ARCHIVEURL:=${math_classes_CI_GITURL}/archive}"
+project math_classes "https://github.com/coq-community/math-classes" "master"
-: "${corn_CI_REF:=master}"
-: "${corn_CI_GITURL:=https://github.com/coq-community/corn}"
-: "${corn_CI_ARCHIVEURL:=${corn_CI_GITURL}/archive}"
+project corn "https://github.com/coq-community/corn" "master"
########################################################################
# Iris
@@ -56,342 +73,238 @@
# NB: stdpp and Iris refs are gotten from the opam files in the Iris
# and lambdaRust repos respectively.
-: "${stdpp_CI_GITURL:=https://gitlab.mpi-sws.org/iris/stdpp}"
-: "${stdpp_CI_ARCHIVEURL:=${stdpp_CI_GITURL}/-/archive}"
+project stdpp "https://gitlab.mpi-sws.org/iris/stdpp" ""
-: "${iris_CI_GITURL:=https://gitlab.mpi-sws.org/iris/iris}"
-: "${iris_CI_ARCHIVEURL:=${iris_CI_GITURL}/-/archive}"
+project iris "https://gitlab.mpi-sws.org/iris/iris" ""
-: "${autosubst_CI_REF:=coq86-devel}"
-: "${autosubst_CI_GITURL:=https://github.com/RalfJung/autosubst}"
-: "${autosubst_CI_ARCHIVEURL:=${autosubst_CI_GITURL}/archive}"
+project autosubst "https://github.com/coq-community/autosubst" "master"
-: "${iris_string_ident_CI_REF:=master}"
-: "${iris_string_ident_CI_GITURL:=https://gitlab.mpi-sws.org/iris/string-ident}"
-: "${iris_string_ident_CI_ARCHIVEURL:=${iris_string_ident_CI_GITURL}/-/archive}"
+project iris_string_ident "https://gitlab.mpi-sws.org/iris/string-ident" "master"
-: "${iris_examples_CI_REF:=master}"
-: "${iris_examples_CI_GITURL:=https://gitlab.mpi-sws.org/iris/examples}"
-: "${iris_examples_CI_ARCHIVEURL:=${iris_examples_CI_GITURL}/-/archive}"
+project iris_examples "https://gitlab.mpi-sws.org/iris/examples" "master"
########################################################################
# HoTT
########################################################################
-: "${hott_CI_REF:=master}"
-: "${hott_CI_GITURL:=https://github.com/HoTT/HoTT}"
-: "${hott_CI_ARCHIVEURL:=${hott_CI_GITURL}/archive}"
+project hott "https://github.com/HoTT/HoTT" "master"
########################################################################
# CoqHammer
########################################################################
-: "${coqhammer_CI_REF:=master}"
-: "${coqhammer_CI_GITURL:=https://github.com/lukaszcz/coqhammer}"
-: "${coqhammer_CI_ARCHIVEURL:=${coqhammer_CI_GITURL}/archive}"
+project coqhammer "https://github.com/lukaszcz/coqhammer" "master"
########################################################################
# GeoCoq
########################################################################
-: "${geocoq_CI_REF:=master}"
-: "${geocoq_CI_GITURL:=https://github.com/GeoCoq/GeoCoq}"
-: "${geocoq_CI_ARCHIVEURL:=${geocoq_CI_GITURL}/archive}"
+project geocoq "https://github.com/GeoCoq/GeoCoq" "master"
########################################################################
# Flocq
########################################################################
-: "${flocq_CI_REF:=master}"
-: "${flocq_CI_GITURL:=https://gitlab.inria.fr/flocq/flocq}"
-: "${flocq_CI_ARCHIVEURL:=${flocq_CI_GITURL}/-/archive}"
+project flocq "https://gitlab.inria.fr/flocq/flocq" "master"
########################################################################
# coq-performance-tests
########################################################################
-: "${coq_performance_tests_CI_REF:=master}"
-: "${coq_performance_tests_CI_GITURL:=https://github.com/coq-community/coq-performance-tests}"
-: "${coq_performance_tests_CI_ARCHIVEURL:=${coq_performance_tests_CI_GITURL}/archive}"
+project coq_performance_tests "https://github.com/coq-community/coq-performance-tests" "master"
########################################################################
# coq-tools
########################################################################
-: "${coq_tools_CI_REF:=master}"
-: "${coq_tools_CI_GITURL:=https://github.com/JasonGross/coq-tools}"
-: "${coq_tools_CI_ARCHIVEURL:=${coq_tools_CI_GITURL}/archive}"
+project coq_tools "https://github.com/JasonGross/coq-tools" "master"
########################################################################
# Coquelicot
########################################################################
-: "${coquelicot_CI_REF:=master}"
-: "${coquelicot_CI_GITURL:=https://gitlab.inria.fr/coquelicot/coquelicot}"
-: "${coquelicot_CI_ARCHIVEURL:=${coquelicot_CI_GITURL}/-/archive}"
+project coquelicot "https://gitlab.inria.fr/coquelicot/coquelicot" "master"
########################################################################
# Coq-interval
########################################################################
-: "${interval_CI_REF:=master}"
-: "${interval_CI_GITURL:=https://gitlab.inria.fr/coqinterval/interval}"
-: "${interval_CI_ARCHIVEURL:=${interval_CI_GITURL}/-/archive}"
+project interval "https://gitlab.inria.fr/coqinterval/interval" "master"
########################################################################
# Gappa stand alone tool
########################################################################
-: "${gappa_tool_CI_REF:=master}"
-: "${gappa_tool_CI_GITURL:=https://gitlab.inria.fr/gappa/gappa}"
-: "${gappa_tool_CI_ARCHIVEURL:=${gappa_tool_CI_GITURL}/-/archive}"
+project gappa_tool "https://gitlab.inria.fr/gappa/gappa" "master"
########################################################################
# Gappa plugin
########################################################################
-: "${gappa_plugin_CI_REF:=master}"
-: "${gappa_plugin_CI_GITURL:=https://gitlab.inria.fr/gappa/coq}"
-: "${gappa_plugin_CI_ARCHIVEURL:=${gappa_plugin_CI_GITURL}/-/archive}"
+project gappa "https://gitlab.inria.fr/gappa/coq" "master"
########################################################################
# CompCert
########################################################################
-: "${compcert_CI_REF:=master}"
-: "${compcert_CI_GITURL:=https://github.com/AbsInt/CompCert}"
-: "${compcert_CI_ARCHIVEURL:=${compcert_CI_GITURL}/archive}"
+project compcert "https://github.com/AbsInt/CompCert" "master"
########################################################################
# VST
########################################################################
-: "${vst_CI_REF:=master}"
-: "${vst_CI_GITURL:=https://github.com/PrincetonUniversity/VST}"
-: "${vst_CI_ARCHIVEURL:=${vst_CI_GITURL}/archive}"
+project vst "https://github.com/PrincetonUniversity/VST" "master"
########################################################################
# cross-crypto
########################################################################
-: "${cross_crypto_CI_REF:=master}"
-: "${cross_crypto_CI_GITURL:=https://github.com/mit-plv/cross-crypto}"
-: "${cross_crypto_CI_ARCHIVEURL:=${cross_crypto_CI_GITURL}/archive}"
+project cross_crypto "https://github.com/mit-plv/cross-crypto" "master"
########################################################################
# rewriter
########################################################################
-: "${rewriter_CI_REF:=master}"
-: "${rewriter_CI_GITURL:=https://github.com/mit-plv/rewriter}"
-: "${rewriter_CI_ARCHIVEURL:=${rewriter_CI_GITURL}/archive}"
+project rewriter "https://github.com/mit-plv/rewriter" "master"
########################################################################
# fiat_parsers
########################################################################
-: "${fiat_parsers_CI_REF:=master}"
-: "${fiat_parsers_CI_GITURL:=https://github.com/mit-plv/fiat}"
-: "${fiat_parsers_CI_ARCHIVEURL:=${fiat_parsers_CI_GITURL}/archive}"
+project fiat_parsers "https://github.com/mit-plv/fiat" "master"
########################################################################
# fiat_crypto
########################################################################
-: "${fiat_crypto_CI_REF:=master}"
-: "${fiat_crypto_CI_GITURL:=https://github.com/mit-plv/fiat-crypto}"
-: "${fiat_crypto_CI_ARCHIVEURL:=${fiat_crypto_CI_GITURL}/archive}"
+project fiat_crypto "https://github.com/mit-plv/fiat-crypto" "master"
########################################################################
# fiat_crypto_legacy
########################################################################
-: "${fiat_crypto_legacy_CI_REF:=sp2019latest}"
-: "${fiat_crypto_legacy_CI_GITURL:=https://github.com/mit-plv/fiat-crypto}"
-: "${fiat_crypto_legacy_CI_ARCHIVEURL:=${fiat_crypto_legacy_CI_GITURL}/archive}"
+project fiat_crypto_legacy "https://github.com/mit-plv/fiat-crypto" "sp2019latest"
########################################################################
# coq_dpdgraph
########################################################################
-: "${coq_dpdgraph_CI_REF:=coq-master}"
-: "${coq_dpdgraph_CI_GITURL:=https://github.com/Karmaki/coq-dpdgraph}"
-: "${coq_dpdgraph_CI_ARCHIVEURL:=${coq_dpdgraph_CI_GITURL}/archive}"
+project coq_dpdgraph "https://github.com/Karmaki/coq-dpdgraph" "coq-master"
########################################################################
# CoLoR
########################################################################
-: "${color_CI_REF:=master}"
-: "${color_CI_GITURL:=https://github.com/fblanqui/color}"
-: "${color_CI_ARCHIVEURL:=${color_CI_GITURL}/archive}"
+project color "https://github.com/fblanqui/color" "master"
########################################################################
# TLC
########################################################################
-: "${tlc_CI_REF:=master-for-coq-ci}"
-: "${tlc_CI_GITURL:=https://github.com/charguer/tlc}"
-: "${tlc_CI_ARCHIVEURL:=${tlc_CI_GITURL}/archive}"
+project tlc "https://github.com/charguer/tlc" "master-for-coq-ci"
########################################################################
# Bignums
########################################################################
-: "${bignums_CI_REF:=master}"
-: "${bignums_CI_GITURL:=https://github.com/coq/bignums}"
-: "${bignums_CI_ARCHIVEURL:=${bignums_CI_GITURL}/archive}"
+project bignums "https://github.com/coq/bignums" "master"
########################################################################
# coqprime
########################################################################
-: "${coqprime_CI_REF:=master}"
-: "${coqprime_CI_GITURL:=https://github.com/thery/coqprime}"
-: "${coqprime_CI_ARCHIVEURL:=${coqprime_CI_GITURL}/archive}"
+project coqprime "https://github.com/thery/coqprime" "master"
########################################################################
# bbv
########################################################################
-: "${bbv_CI_REF:=master}"
-: "${bbv_CI_GITURL:=https://github.com/mit-plv/bbv}"
-: "${bbv_CI_ARCHIVEURL:=${bbv_CI_GITURL}/archive}"
+project bbv "https://github.com/mit-plv/bbv" "master"
########################################################################
# bedrock2
########################################################################
-: "${bedrock2_CI_REF:=tested}"
-: "${bedrock2_CI_GITURL:=https://github.com/mit-plv/bedrock2}"
-: "${bedrock2_CI_ARCHIVEURL:=${bedrock2_CI_GITURL}/archive}"
+project bedrock2 "https://github.com/mit-plv/bedrock2" "tested"
########################################################################
# Equations
########################################################################
-: "${equations_CI_REF:=master}"
-: "${equations_CI_GITURL:=https://github.com/mattam82/Coq-Equations}"
-: "${equations_CI_ARCHIVEURL:=${equations_CI_GITURL}/archive}"
+project equations "https://github.com/mattam82/Coq-Equations" "master"
########################################################################
# Elpi + Hierarchy Builder
########################################################################
-: "${elpi_CI_REF:=coq-master}"
-: "${elpi_CI_GITURL:=https://github.com/LPCIC/coq-elpi}"
-: "${elpi_CI_ARCHIVEURL:=${elpi_CI_GITURL}/archive}"
+project elpi "https://github.com/LPCIC/coq-elpi" "coq-master"
-: "${elpi_hb_CI_REF:=coq-master}"
-: "${elpi_hb_CI_GITURL:=https://github.com/math-comp/hierarchy-builder}"
-: "${elpi_hb_CI_ARCHIVEURL:=${elpi_hb_CI_GITURL}/archive}"
+project hierarchy_builder "https://github.com/math-comp/hierarchy-builder" "coq-master"
########################################################################
# Engine-Bench
########################################################################
-: "${engine_bench_CI_REF:=master}"
-: "${engine_bench_CI_GITURL:=https://github.com/mit-plv/engine-bench}"
-: "${engine_bench_CI_ARCHIVEURL:=${engine_bench_CI_GITURL}/archive}"
+project engine_bench "https://github.com/mit-plv/engine-bench" "master"
########################################################################
# fcsl-pcm
########################################################################
-: "${fcsl_pcm_CI_REF:=master}"
-: "${fcsl_pcm_CI_GITURL:=https://github.com/imdea-software/fcsl-pcm}"
-: "${fcsl_pcm_CI_ARCHIVEURL:=${fcsl_pcm_CI_GITURL}/archive}"
+project fcsl_pcm "https://github.com/imdea-software/fcsl-pcm" "master"
########################################################################
# ext-lib
########################################################################
-: "${ext_lib_CI_REF:=master}"
-: "${ext_lib_CI_GITURL:=https://github.com/coq-community/coq-ext-lib}"
-: "${ext_lib_CI_ARCHIVEURL:=${ext_lib_CI_GITURL}/archive}"
+project ext_lib "https://github.com/coq-community/coq-ext-lib" "master"
########################################################################
# simple-io
########################################################################
-: "${simple_io_CI_REF:=master}"
-: "${simple_io_CI_GITURL:=https://github.com/Lysxia/coq-simple-io}"
-: "${simple_io_CI_ARCHIVEURL:=${simple_io_CI_GITURL}/archive}"
+project simple_io "https://github.com/Lysxia/coq-simple-io" "master"
########################################################################
# quickchick
########################################################################
-: "${quickchick_CI_REF:=master}"
-: "${quickchick_CI_GITURL:=https://github.com/QuickChick/QuickChick}"
-: "${quickchick_CI_ARCHIVEURL:=${quickchick_CI_GITURL}/archive}"
+project quickchick "https://github.com/QuickChick/QuickChick" "master"
########################################################################
# reduction-effects
########################################################################
-: "${reduction_effects_CI_REF:=master}"
-: "${reduction_effects_CI_GITURL:=https://github.com/coq-community/reduction-effects}"
-: "${reduction_effects_CI_ARCHIVEURL:=${reduction_effects_CI_GITURL}/archive}"
+project reduction_effects "https://github.com/coq-community/reduction-effects" "master"
########################################################################
# menhirlib
########################################################################
# Note: menhirlib is now in subfolder coq-menhirlib of menhir
-: "${menhirlib_CI_REF:=20201122}"
-: "${menhirlib_CI_GITURL:=https://gitlab.inria.fr/fpottier/menhir}"
-: "${menhirlib_CI_ARCHIVEURL:=${menhirlib_CI_GITURL}/-/archive}"
+project menhirlib "https://gitlab.inria.fr/fpottier/menhir" "20201122"
########################################################################
# aac_tactics
########################################################################
-: "${aac_tactics_CI_REF:=master}"
-: "${aac_tactics_CI_GITURL:=https://github.com/coq-community/aac-tactics}"
-: "${aac_tactics_CI_ARCHIVEURL:=${aac_tactics_CI_GITURL}/archive}"
+project aac_tactics "https://github.com/coq-community/aac-tactics" "master"
########################################################################
# paramcoq
########################################################################
-: "${paramcoq_CI_REF:=master}"
-: "${paramcoq_CI_GITURL:=https://github.com/coq-community/paramcoq}"
-: "${paramcoq_CI_ARCHIVEURL:=${paramcoq_CI_GITURL}/archive}"
+project paramcoq "https://github.com/coq-community/paramcoq" "master"
########################################################################
# relation_algebra
########################################################################
-: "${relation_algebra_CI_REF:=master}"
-: "${relation_algebra_CI_GITURL:=https://github.com/damien-pous/relation-algebra}"
-: "${relation_algebra_CI_ARCHIVEURL:=${relation_algebra_CI_GITURL}/archive}"
+project relation_algebra "https://github.com/damien-pous/relation-algebra" "master"
########################################################################
# StructTact + InfSeqExt + Cheerios + Verdi + Verdi Raft
########################################################################
-: "${struct_tact_CI_REF:=master}"
-: "${struct_tact_CI_GITURL:=https://github.com/uwplse/StructTact}"
-: "${struct_tact_CI_ARCHIVEURL:=${struct_tact_CI_GITURL}/archive}"
+project struct_tact "https://github.com/uwplse/StructTact" "master"
-: "${inf_seq_ext_CI_REF:=master}"
-: "${inf_seq_ext_CI_GITURL:=https://github.com/DistributedComponents/InfSeqExt}"
-: "${inf_seq_ext_CI_ARCHIVEURL:=${inf_seq_ext_CI_GITURL}/archive}"
+project inf_seq_ext "https://github.com/DistributedComponents/InfSeqExt" "master"
-: "${cheerios_CI_REF:=master}"
-: "${cheerios_CI_GITURL:=https://github.com/uwplse/cheerios}"
-: "${cheerios_CI_ARCHIVEURL:=${cheerios_CI_GITURL}/archive}"
+project cheerios "https://github.com/uwplse/cheerios" "master"
-: "${verdi_CI_REF:=master}"
-: "${verdi_CI_GITURL:=https://github.com/uwplse/verdi}"
-: "${verdi_CI_ARCHIVEURL:=${verdi_CI_GITURL}/archive}"
+project verdi "https://github.com/uwplse/verdi" "master"
-: "${verdi_raft_CI_REF:=master}"
-: "${verdi_raft_CI_GITURL:=https://github.com/uwplse/verdi-raft}"
-: "${verdi_raft_CI_ARCHIVEURL:=${verdi_raft_CI_GITURL}/archive}"
+project verdi_raft "https://github.com/uwplse/verdi-raft" "master"
########################################################################
# stdlib2
########################################################################
-: "${stdlib2_CI_REF:=master}"
-: "${stdlib2_CI_GITURL:=https://github.com/coq/stdlib2}"
-: "${stdlib2_CI_ARCHIVEURL:=${stdlib2_CI_GITURL}/archive}"
+project stdlib2 "https://github.com/coq/stdlib2" "master"
########################################################################
# argosy
########################################################################
-: "${argosy_CI_REF:=master}"
-: "${argosy_CI_GITURL:=https://github.com/mit-pdos/argosy}"
-: "${argosy_CI_ARCHIVEURL:=${argosy_CI_GITURL}/archive}"
+project argosy "https://github.com/mit-pdos/argosy" "master"
########################################################################
# perennial
########################################################################
-: "${perennial_CI_REF:=coq/tested}"
-: "${perennial_CI_GITURL:=https://github.com/mit-pdos/perennial}"
-: "${perennial_CI_ARCHIVEURL:=${perennial_CI_GITURL}/archive}"
+project perennial "https://github.com/mit-pdos/perennial" "coq/tested"
########################################################################
# metacoq
########################################################################
-: "${metacoq_CI_REF:=master}"
-: "${metacoq_CI_GITURL:=https://github.com/MetaCoq/metacoq}"
-: "${metacoq_CI_ARCHIVEURL:=${metacoq_CI_GITURL}/archive}"
+project metacoq "https://github.com/MetaCoq/metacoq" "master"
########################################################################
# SF suite
########################################################################
-: "${sf_CI_REF:=master}"
-: "${sf_CI_GITURL:=https://github.com/DeepSpec/sf}"
-: "${sf_CI_ARCHIVEURL:=${sf_CI_GITURL}/archive}"
+project sf "https://github.com/DeepSpec/sf" "master"
########################################################################
# Coqtail
########################################################################
-: "${coqtail_CI_REF:=master}"
-: "${coqtail_CI_GITURL:=https://github.com/whonore/Coqtail}"
-: "${coqtail_CI_ARCHIVEURL:=${coqtail_CI_GITURL}/archive}"
+project coqtail "https://github.com/whonore/Coqtail" "master"
diff --git a/dev/ci/ci-common.sh b/dev/ci/ci-common.sh
index 1a4ebc0e90..8d8f78e10c 100644
--- a/dev/ci/ci-common.sh
+++ b/dev/ci/ci-common.sh
@@ -49,24 +49,38 @@ ls -l "$CI_BUILD_DIR" || true
declare -A overlays
-overlay()
+# overlay <project> <giturl> <ref> <prnumber> [<prbranch>]
+# creates an overlay for project using a given url and branch which is
+# active for prnumber or prbranch. prbranch defaults to ref.
+function overlay()
{
local project=$1
local ov_url=$2
local ov_ref=$3
-
- overlays[${project}_URL]=$ov_url
- overlays[${project}_REF]=$ov_ref
+ local ov_prnumber=$4
+ local ov_prbranch=$5
+ : "${ov_prbranch:=$ov_ref}"
+
+ if [ "$CI_PULL_REQUEST" = "$ov_prnumber" ] || [ "$CI_BRANCH" = "$ov_prbranch" ]; then
+ if ! is_in_projects "$project"; then
+ echo "Error: $1 is not a known project which can be overlayed"
+ exit 1
+ fi
+
+ overlays[${project}_URL]=$ov_url
+ overlays[${project}_REF]=$ov_ref
+ fi
}
set +x
+# shellcheck source=ci-basic-overlay.sh
+. "${ci_dir}/ci-basic-overlay.sh"
+
for overlay in "${ci_dir}"/user-overlays/*.sh; do
# shellcheck source=/dev/null
- . "${overlay}"
+ # the directoy can be empty
+ if [ -e "${overlay}" ]; then . "${overlay}"; fi
done
-
-# shellcheck source=ci-basic-overlay.sh
-. "${ci_dir}/ci-basic-overlay.sh"
set -x
# [git_download project] will download [project] and unpack it
diff --git a/dev/ci/ci-elpi.sh b/dev/ci/ci-elpi.sh
index 4f185db813..d8caf8ee87 100755
--- a/dev/ci/ci-elpi.sh
+++ b/dev/ci/ci-elpi.sh
@@ -7,6 +7,6 @@ git_download elpi
( cd "${CI_BUILD_DIR}/elpi" && make && make install )
-git_download elpi_hb
+git_download hierarchy_builder
-( cd "${CI_BUILD_DIR}/elpi_hb" && make && make install )
+( cd "${CI_BUILD_DIR}/hierarchy_builder" && make && make install )
diff --git a/dev/ci/ci-gappa.sh b/dev/ci/ci-gappa.sh
index c346354b70..1af37aa7c1 100755
--- a/dev/ci/ci-gappa.sh
+++ b/dev/ci/ci-gappa.sh
@@ -7,6 +7,6 @@ git_download gappa_tool
( cd "${CI_BUILD_DIR}/gappa_tool" && ( if [ ! -x ./configure ]; then autoreconf && touch stamp-config_h.in && ./configure --prefix=${CI_INSTALL_DIR}; fi ) && ./remake "-j${NJOBS}" && ./remake install )
-git_download gappa_plugin
+git_download gappa
-( cd "${CI_BUILD_DIR}/gappa_plugin" && ( if [ ! -x ./configure ]; then autoconf && ./configure; fi ) && ./remake "-j${NJOBS}" && ./remake install )
+( cd "${CI_BUILD_DIR}/gappa" && ( if [ ! -x ./configure ]; then autoconf && ./configure; fi ) && ./remake "-j${NJOBS}" && ./remake install )
diff --git a/dev/ci/docker/README.md b/dev/ci/docker/README.md
index 16c4ac37d9..ed51c8afd3 100644
--- a/dev/ci/docker/README.md
+++ b/dev/ci/docker/README.md
@@ -4,31 +4,29 @@ This directory provides Docker images to be used by Coq's CI. The
images do support Docker autobuild on `hub.docker.com` and Gitlab's
private registry.
-The Gitlab CI will build a docker image unless the CI environment variable
+The Gitlab CI will build a Docker image unless the CI environment variable
`SKIP_DOCKER` is set to `true`. This image will be
stored in the [Gitlab container registry](https://gitlab.com/coq/coq/container_registry)
under the name given by the `CACHEKEY` variable from
the [Gitlab CI configuration file](../../../.gitlab-ci.yml).
-In Coq's default CI, `SKIP_DOCKER` is set so as to avoid running a lengthy redundant job.
+`SKIP_DOCKER` is set to "true" in `https://gitlab.com/coq/coq` to avoid running
+a lengthy redundant job. For efficiency, users should enable that setting
+in forked repositories after the initial Docker build in the fork succeeds.
-It can be used to regenerate a fresh Docker image on Gitlab through the following steps.
-- Change the `CACHEKEY` variable to a fresh name in the CI configuration in a new commit.
-- Push this commit to a Github PR. This will trigger a Gitlab CI run that will
- immediately fail, as the Docker image is missing and the `SKIP_DOCKER`
+The steps to generate a new Docker image are:
+- Update the `CACHEKEY` variable in .gitlab-ci.yml with the date and md5.
+- Submit the change in a PR. This triggers a Gitlab CI run that
+ immediately fails, as the Docker image is missing and the `SKIP_DOCKER`
default value prevents rebuilding the image.
-- Run a new pipeline on Gitlab with that PR branch, using the green "Run pipeline"
- button on the [web interface](https://gitlab.com/coq/coq/pipelines),
- with the `SKIP_DOCKER` environment variable set to `false`. This will run a `docker-boot` process, and
- once completed, a new Docker image will be available in the container registry,
- with the name set in `CACHEKEY`.
+- Run a new pipeline on Gitlab with that PR branch (e.g. "pr-99999"), using the green
+ "Run pipeline" button on the [web interface](https://gitlab.com/coq/coq/pipelines),
+ with the `SKIP_DOCKER` environment variable set to `false`. This will run a
+ `docker-boot` process, and once completed, a new Docker image will be available in
+ the container registry, with the name set in `CACHEKEY`.
- Any pipeline with the same `CACHEKEY` will now automatically reuse that
image without rebuilding it from scratch.
-For documentation purposes, we also require keeping in sync the `CACHEKEY` comment
-from the first line of the [Dockerfile](bionic_coq/Dockerfile) in the same
-commit.
-
In case you do not have the rights to run Gitlab CI pipelines, you should ask
the ci-maintainers Github team to do it for you.
diff --git a/dev/ci/docker/bionic_coq/Dockerfile b/dev/ci/docker/bionic_coq/Dockerfile
index 1aefebb007..b4b6411d28 100644
--- a/dev/ci/docker/bionic_coq/Dockerfile
+++ b/dev/ci/docker/bionic_coq/Dockerfile
@@ -71,3 +71,6 @@ RUN opam switch create "${COMPILER_EDGE}+flambda" && eval $(opam env) && \
opam install $BASE_OPAM $BASE_OPAM_EDGE $COQIDE_OPAM $CI_OPAM
RUN opam clean -a -c
+
+# set the locale for the benefit of Python
+ENV LANG C.UTF-8
diff --git a/dev/ci/user-overlays/12218-proux01-numeral-notations-non-inductive.sh b/dev/ci/user-overlays/12218-proux01-numeral-notations-non-inductive.sh
deleted file mode 100644
index d9b49ad0d1..0000000000
--- a/dev/ci/user-overlays/12218-proux01-numeral-notations-non-inductive.sh
+++ /dev/null
@@ -1,18 +0,0 @@
-if [ "$CI_PULL_REQUEST" = "12218" ] || [ "$CI_BRANCH" = "numeral-notations-non-inductive" ]; then
-
- stdlib2_CI_REF=numeral-notations-non-inductive
- stdlib2_CI_GITURL=https://github.com/proux01/stdlib2
-
- hott_CI_REF=numeral-notations-non-inductive
- hott_CI_GITURL=https://github.com/proux01/HoTT
-
- paramcoq_CI_REF=numeral-notations-non-inductive
- paramcoq_CI_GITURL=https://github.com/proux01/paramcoq
-
- quickchick_CI_REF=numeral-notations-non-inductive
- quickchick_CI_GITURL=https://github.com/proux01/QuickChick
-
- metacoq_CI_REF=numeral-notations-non-inductive
- metacoq_CI_GITURL=https://github.com/proux01/metacoq
-
-fi
diff --git a/dev/ci/user-overlays/12449-SkySkimmer-minim-prop-toset.sh b/dev/ci/user-overlays/12449-SkySkimmer-minim-prop-toset.sh
deleted file mode 100644
index fb5947d218..0000000000
--- a/dev/ci/user-overlays/12449-SkySkimmer-minim-prop-toset.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-if [ "$CI_PULL_REQUEST" = "12449" ] || [ "$CI_BRANCH" = "minim-prop-toset" ]; then
-
- mtac2_CI_REF=janno/coq-12449
- mtac2_CI_GITURL=https://github.com/mtac2/mtac2
-
-fi
diff --git a/dev/ci/user-overlays/12611-ejgallego-record+refactor.sh b/dev/ci/user-overlays/12611-ejgallego-record+refactor.sh
deleted file mode 100644
index b7d21ed59c..0000000000
--- a/dev/ci/user-overlays/12611-ejgallego-record+refactor.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-if [ "$CI_PULL_REQUEST" = "12611" ] || [ "$CI_BRANCH" = "record+refactor" ]; then
-
- elpi_CI_REF=record+refactor
- elpi_CI_GITURL=https://github.com/ejgallego/coq-elpi
-
-# mtac2_CI_REF=record+refactor
-# mtac2_CI_GITURL=https://github.com/ejgallego/Mtac2
-
-fi
diff --git a/dev/ci/user-overlays/12653-SkySkimmer-cumul-syntax.sh b/dev/ci/user-overlays/12653-SkySkimmer-cumul-syntax.sh
deleted file mode 100644
index 1473f6df8b..0000000000
--- a/dev/ci/user-overlays/12653-SkySkimmer-cumul-syntax.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-if [ "$CI_PULL_REQUEST" = "12653" ] || [ "$CI_BRANCH" = "cumul-syntax" ]; then
-
- overlay elpi https://github.com/SkySkimmer/coq-elpi cumul-syntax
-
- overlay equations https://github.com/SkySkimmer/Coq-Equations cumul-syntax
-
- overlay mtac2 https://github.com/SkySkimmer/Mtac2 cumul-syntax
-
- overlay paramcoq https://github.com/SkySkimmer/paramcoq cumul-syntax
-
- overlay rewriter https://github.com/SkySkimmer/rewriter cumul-syntax
-
- overlay metacoq https://github.com/SkySkimmer/metacoq cumul-syntax
-
-fi
diff --git a/dev/ci/user-overlays/12873-master+minifix-unification-error-reporting-recheck-applications.sh b/dev/ci/user-overlays/12873-master+minifix-unification-error-reporting-recheck-applications.sh
deleted file mode 100644
index 7680e8da78..0000000000
--- a/dev/ci/user-overlays/12873-master+minifix-unification-error-reporting-recheck-applications.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-if [ "$CI_PULL_REQUEST" = "12873" ] || [ "$CI_BRANCH" = "master+minifix-unification-error-reporting-recheck-applications" ]; then
-
- equations_CI_REF=master+fix12873-better-unification
- equations_CI_GITURL=https://github.com/herbelin/Coq-Equations
-
-fi
diff --git a/dev/ci/user-overlays/13075-ppedrot-explicit-names-quotient.sh b/dev/ci/user-overlays/13075-ppedrot-explicit-names-quotient.sh
deleted file mode 100644
index 8b223719ea..0000000000
--- a/dev/ci/user-overlays/13075-ppedrot-explicit-names-quotient.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-if [ "$CI_PULL_REQUEST" = "13075" ] || [ "$CI_BRANCH" = "explicit-names-quotient" ]; then
-
- elpi_CI_REF=explicit-names-quotient
- elpi_CI_GITURL=https://github.com/ppedrot/coq-elpi
-
- coq_dpdgraph_CI_REF=explicit-names-quotient
- coq_dpdgraph_CI_GITURL=https://github.com/ppedrot/coq-dpdgraph
-
-fi
diff --git a/dev/ci/user-overlays/13128-SkySkimmer-noinstance.sh b/dev/ci/user-overlays/13128-SkySkimmer-noinstance.sh
deleted file mode 100644
index f16cf1497e..0000000000
--- a/dev/ci/user-overlays/13128-SkySkimmer-noinstance.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-if [ "$CI_PULL_REQUEST" = "13128" ] || [ "$CI_BRANCH" = "noinstance" ]; then
-
- overlay elpi https://github.com/SkySkimmer/coq-elpi noinstance
-
-fi
diff --git a/dev/ci/user-overlays/13139-ppedrot-clean-hint-constr.sh b/dev/ci/user-overlays/13139-ppedrot-clean-hint-constr.sh
deleted file mode 100644
index 2f70f43a2b..0000000000
--- a/dev/ci/user-overlays/13139-ppedrot-clean-hint-constr.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-if [ "$CI_PULL_REQUEST" = "13139" ] || [ "$CI_BRANCH" = "clean-hint-constr" ]; then
-
- equations_CI_REF=clean-hint-constr
- equations_CI_GITURL=https://github.com/ppedrot/Coq-Equations
-
- fiat_parsers_CI_REF=clean-hint-constr
- fiat_parsers_CI_GITURL=https://github.com/ppedrot/fiat
-
-fi
diff --git a/dev/ci/user-overlays/13166-herbelin-master+fixes13165-missing-impargs-defined-fields.sh b/dev/ci/user-overlays/13166-herbelin-master+fixes13165-missing-impargs-defined-fields.sh
deleted file mode 100644
index 7d55cf6883..0000000000
--- a/dev/ci/user-overlays/13166-herbelin-master+fixes13165-missing-impargs-defined-fields.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-if [ "$CI_PULL_REQUEST" = "13166" ] || [ "$CI_BRANCH" = "master+fixes13165-missing-impargs-defined-fields" ]; then
-
- elpi_CI_REF=coq-master+adapt-coq-pr13166-impargs-record-fields
- elpi_CI_GITURL=https://github.com/herbelin/coq-elpi
-
-fi
diff --git a/dev/ci/user-overlays/13312-ejgallego-attributes+bool_single.sh b/dev/ci/user-overlays/13312-ejgallego-attributes+bool_single.sh
deleted file mode 100644
index 3bdbcf7d6e..0000000000
--- a/dev/ci/user-overlays/13312-ejgallego-attributes+bool_single.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-if [ "$CI_PULL_REQUEST" = "13312" ] || [ "$CI_BRANCH" = "attributes+bool_single" ]; then
-
- overlay unicoq https://github.com/ejgallego/unicoq attributes+bool_single
- overlay elpi https://github.com/ejgallego/coq-elpi attributes+bool_single
-
-fi
diff --git a/dev/ci/user-overlays/13386-master+fix9971-primproj-canonical-structure-on-evar-type.sh b/dev/ci/user-overlays/13386-master+fix9971-primproj-canonical-structure-on-evar-type.sh
deleted file mode 100644
index 95f0de2bd3..0000000000
--- a/dev/ci/user-overlays/13386-master+fix9971-primproj-canonical-structure-on-evar-type.sh
+++ /dev/null
@@ -1,9 +0,0 @@
-if [ "$CI_PULL_REQUEST" = "13386" ] || [ "$CI_BRANCH" = "master+fix9971-primproj-canonical-structure-on-evar-type" ]; then
-
- unicoq_CI_REF=master+adapting-coq-pr13386
- unicoq_CI_GITURL=https://github.com/herbelin/unicoq
-
- elpi_CI_REF=coq-master+adapting-coq-pr13386
- elpi_CI_GITURL=https://github.com/herbelin/coq-elpi
-
-fi
diff --git a/dev/ci/user-overlays/13415-SkySkimmer-intern-univs.sh b/dev/ci/user-overlays/13415-SkySkimmer-intern-univs.sh
deleted file mode 100644
index 0bf806085e..0000000000
--- a/dev/ci/user-overlays/13415-SkySkimmer-intern-univs.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-if [ "$CI_PULL_REQUEST" = "13415" ] || [ "$CI_BRANCH" = "intern-univs" ]; then
-
- overlay equations https://github.com/SkySkimmer/Coq-Equations intern-univs
-
- overlay paramcoq https://github.com/SkySkimmer/paramcoq intern-univs
-
- overlay elpi https://github.com/SkySkimmer/coq-elpi intern-univs
-fi
diff --git a/dev/ci/user-overlays/13481-elpi-1.12.sh b/dev/ci/user-overlays/13481-elpi-1.12.sh
deleted file mode 100644
index a6be2e3a1a..0000000000
--- a/dev/ci/user-overlays/13481-elpi-1.12.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-if [ "$CI_PULL_REQUEST" = "13481" ] || [ "$CI_BRANCH" = "elpi-1.12" ]; then
-
- elpi_CI_REF=coq-master+elpi.1.12
- elpi_hb_CI_REF=coq-master+coq-elpi-1.7.0+elpi-1.12
-
-fi
diff --git a/dev/ci/user-overlays/13537-ppedrot-lazy-subst-kernel.sh b/dev/ci/user-overlays/13537-ppedrot-lazy-subst-kernel.sh
new file mode 100644
index 0000000000..aa686ea619
--- /dev/null
+++ b/dev/ci/user-overlays/13537-ppedrot-lazy-subst-kernel.sh
@@ -0,0 +1,5 @@
+if [ "$CI_PULL_REQUEST" = "13537" ] || [ "$CI_BRANCH" = "lazy-subst-kernel" ]; then
+
+ overlay mtac2 https://github.com/ppedrot/Mtac2 lazy-subst-kernel
+
+fi
diff --git a/dev/ci/user-overlays/README.md b/dev/ci/user-overlays/README.md
index 3f9ad5e878..cf1d71c1cd 100644
--- a/dev/ci/user-overlays/README.md
+++ b/dev/ci/user-overlays/README.md
@@ -5,30 +5,29 @@ have prepared a branch with the fix, you can add an "overlay" to your pull
request to test it with the adapted version of the external project.
An overlay is a file which defines where to look for the patched
-version so that testing is possible. This is done by calling the
-`overlay` command for each project with the project name (as used in
-the variables in [`ci-basic-overlay.sh`](../ci-basic-overlay.sh)), the
-location of your fork and the branch containing the patch on your
-fork.
-
-Moreover, the file contains very simple logic to test the pull request number
-or branch name and apply it only in this case.
-
+version so that testing is possible.
The name of your overlay file should start with a five-digit pull request
number, followed by a dash, anything (for instance your GitHub nickname
and the branch name), then a `.sh` extension (`[0-9]{5}-[a-zA-Z0-9-_]+.sh`).
-Example: `13128-SkySkimmer-noinstance.sh` containing
-
+This file must contain one or more invocation of the `overlay` function:
```
-if [ "$CI_PULL_REQUEST" = "13128" ] || [ "$CI_BRANCH" = "noinstance" ]; then
-
- overlay elpi https://github.com/SkySkimmer/coq-elpi noinstance
+overlay <project> <giturl> <ref> <prnumber> [<prbranch>]
+```
+Each call creates an overlay for `project` using a given `giturl` and
+`ref` which is active for `prnumber` or `prbranch` (`prbranch` defaults
+to `ref`).
-fi
+Example of an overlay for the project `elpi` that uses the branch `noinstance`
+from the fork of `SkySkimmer` and is active for pull request `13128`
+```
+overlay elpi https://github.com/SkySkimmer/coq-elpi noinstance 13128
```
-(`CI_PULL_REQUEST` and `CI_BRANCH` are set in [`ci-common.sh`](../ci-common.sh))
+Such a file can be created automatically using the scripts
+[`create_overlays.sh`](../../dev/tools/create_overlays.sh).
+See also the list of projects for which one can write an overlay in
+the file [`ci-basic-overlay.sh`](../ci-basic-overlay.sh).
### Branching conventions
diff --git a/dev/doc/changes.md b/dev/doc/changes.md
index 5adeafaa38..26c4b01c9f 100644
--- a/dev/doc/changes.md
+++ b/dev/doc/changes.md
@@ -37,6 +37,11 @@ Dumpglob:
plugins to temporarily change/pause the output of Dumpglob, and then
restore it to the original setting.
+Glob_term:
+
+- Removing useless `binding_kind` argument of `GLocalDef` in
+ `extended_glob_local_binder`.
+
## Changes between Coq 8.11 and Coq 8.12
### Code formatting
diff --git a/dev/doc/release-process.md b/dev/doc/release-process.md
index e0271d8c62..19562b60a2 100644
--- a/dev/doc/release-process.md
+++ b/dev/doc/release-process.md
@@ -140,16 +140,16 @@ in time.
- [ ] Draft a release on GitHub.
- [ ] Sign the Windows and MacOS packages and upload them on GitHub.
+ The Windows packages must be signed by the Inria IT security service. They
- should be sent as a link to the binary together with its SHA256 hash in a
- signed e-mail, via our local contact (currently `@maximedenes`).
- + The MacOS packages should be signed by our own certificate, by sending them
- to `@maximedenes`. A detailed step-by-step guide can be found [on the wiki](https://github.com/coq/coq/wiki/SigningReleases).
+ should be sent as a link to the binary (via [filesender](https://filesender.renater.fr) for example)
+ together with its SHA256 hash in a signed e-mail to `dsi.securite` @ `inria.fr`
+ putting `@maximedenes` in carbon copy.
+ + The MacOS packages should be signed with our own certificate. A detailed step-by-step guide can be found [on the wiki](https://github.com/coq/coq/wiki/SigningReleases).
- [ ] Prepare a page of news on the website with the link to the GitHub release
(see [coq/www#63](https://github.com/coq/www/pull/63)).
-- [ ] Upload the new version of the reference manual to the website.
- *TODO: setup some continuous deployment for this.*
- [ ] Merge the website update, publish the release
- and send announcement e-mails.
+ and send announcement e-mails, typically on
+ the `coq-club@inria.fr` mailing list and the discourse forum
+ ([posting by mail](https://github.com/coq/coq/wiki/Discourse))
- [ ] Close the milestone
## At the final release time ##
@@ -171,7 +171,19 @@ Repeat the generic process documented above for all releases.
Ping `@Zimmi48` to:
- [ ] Switch the default version of the reference manual on the website.
-- [ ] Publish a new version on Zenodo.
+
+ This is done by logging into the server (`vps697916.ovh.net`),
+ editing two `ProxyPass` lines (one for the refman and one for the
+ stdlib doc) with `sudo vim /etc/apache2/sites-available/000-coq.inria.fr.conf`,
+ then running `sudo systemctl reload apache2`.
+
+ *TODO:* automate this or make it doable through the `www` git
+ repository. See [coq/www#111](https://github.com/coq/www/issues/111)
+ and [coq/www#131](https://github.com/coq/www/issues/131).
+
+- [ ] Publish a new version on Zenodo (only once per major version).
+
+ *TODO:* automate this with coqbot.
## At the patch-level release time ##
diff --git a/dev/tools/create_overlays.sh b/dev/tools/create_overlays.sh
index 78ed27ba03..ac8fd1676d 100755
--- a/dev/tools/create_overlays.sh
+++ b/dev/tools/create_overlays.sh
@@ -42,7 +42,7 @@ OVERLAY_BRANCH=$(git rev-parse --abbrev-ref HEAD)
OVERLAY_FILE=$(mktemp overlay-XXXX)
# Create the overlay file
-printf 'if [ "$CI_PULL_REQUEST" = "%s" ] || [ "$CI_BRANCH" = "%s" ]; then\n\n' "$PR_NUMBER" "$OVERLAY_BRANCH" > "$OVERLAY_FILE"
+> "$OVERLAY_FILE"
# We first try to build the contribs
while test $# -gt 0
@@ -66,12 +66,11 @@ do
make ci-$_CONTRIB_NAME || true
setup_contrib_git $_CONTRIB_DIR $_CONTRIB_GITPUSHURL
- echo " overlay ${_CONTRIB_NAME} $_CONTRIB_GITURL $OVERLAY_BRANCH" >> $OVERLAY_FILE
+ echo "overlay ${_CONTRIB_NAME} $_CONTRIB_GITURL $OVERLAY_BRANCH $PR_NUMBER" >> $OVERLAY_FILE
echo "" >> $OVERLAY_FILE
shift
done
-# End the file; copy to overlays folder.
-echo "fi" >> $OVERLAY_FILE
+# Copy to overlays folder.
PR_NUMBER=$(printf '%05d' "$PR_NUMBER")
mv $OVERLAY_FILE dev/ci/user-overlays/$PR_NUMBER-$DEVELOPER_NAME-${OVERLAY_BRANCH///}.sh
diff --git a/dev/tools/notify-upstream-pins.sh b/dev/tools/notify-upstream-pins.sh
index 37fe0cbcbf..ebf920b0f7 100755
--- a/dev/tools/notify-upstream-pins.sh
+++ b/dev/tools/notify-upstream-pins.sh
@@ -14,24 +14,6 @@ REASON="bundled in the Windows installer"
git show master:dev/ci/ci-basic-overlay.sh > /tmp/master-ci-basic-overlay.sh
git show v${VERSION}:dev/ci/ci-basic-overlay.sh > /tmp/branch-ci-basic-overlay.sh
-# caveats:
-# - dev/ci/gitlab.bat has \r (windows)
-# - aactactics, gappa, HB, extlib have different names in ci
-# - menhir is not pinned but figures as an addon
-# - unicoq is not an addon
-WINDOWS_ADDONS=$(grep addon= dev/ci/gitlab.bat \
- | cut -d = -f 2 \
- | cut -d ' ' -f 1 \
- | tr -d '\r' \
- | sed -e 's/^aactactics$/aac_tactics/' \
- -e 's/^gappa$/gappa_plugin/' \
- -e 's/^HB$/elpi_hb/' \
- -e 's/^extlib$/ext_lib/' \
- \
- -e '/^menhir$/d' \
- ) \
-WINDOWS_ADDONS="$WINDOWS_ADDONS unicoq"
-
# reads a variable value from a ci-basic-overlay.sh file
function read_from() {
( . $1; varname="$2"; echo ${!varname} )
@@ -99,7 +81,10 @@ $CC
esac
}
-for addon in $WINDOWS_ADDONS; do
+# TODO: filter w.r.t. what is in the platform
+PROJECTS=`read_from /tmp/branch-ci-basic-overlay.sh "projects[@]"`
+
+for addon in $PROJECTS; do
URL=`read_from /tmp/master-ci-basic-overlay.sh "${addon}_CI_GITURL"`
REF=`read_from /tmp/master-ci-basic-overlay.sh "${addon}_CI_REF"`
PIN=`read_from /tmp/branch-ci-basic-overlay.sh "${addon}_CI_REF"`
diff --git a/dev/tools/pin-ci.sh b/dev/tools/pin-ci.sh
index dbf54d7f0a..676688bedc 100755
--- a/dev/tools/pin-ci.sh
+++ b/dev/tools/pin-ci.sh
@@ -38,9 +38,7 @@ process_development() {
# Execute the script to set the overlay variables
. $OVERLAYS
-# Find all variables declared in the base overlay of the form *_CI_GITURL
-for REPO_VAR in $(compgen -A variable | grep _CI_GITURL)
+for project in ${projects[@]}
do
- DEV=${REPO_VAR%_CI_GITURL}
- process_development $DEV
+ process_development $project
done