diff --git a/DISTRIBUTION.md b/DISTRIBUTION.md new file mode 100644 index 000000000..7603c3b95 --- /dev/null +++ b/DISTRIBUTION.md @@ -0,0 +1,75 @@ +## Indications for the preparation of successive releases + +The branch `coq-master` is monitored by Coq continuous integration, so that +the Coq developers help making sure that the code of this Coq plugin is +compatible with the master branch of the Coq development. + +Every Coq release, it is necessary to produce a tagged version of this package +so that this version can then be distributed with coq-platform. + +There are only few operations to perform, thanks to the coq-community templates. + + - First create a branch for this new release. For instance, for version 8.14 + of Coq, the branch `coq-v8.14` was created. + + - Edit file `meta.yml` To know what modifications should be performed, the + best is to compare versions of `meta.yml` for branch `coq-master` and the + latest branch for a coq release. + + - To make sure the modifications of `meta.yml` are taken into + account, the command `generate.sh` from `coq-community/templates` + should be run. + + - Edit file `configure.ac` Here again, the modifications should be + similar to modification from branch `coq-master` to the latest + branch for a coq release. + + - The new version of `meta.yml`, `configure.ac` and the files + generated by `generate.sh` that are under version control should + then be committed on this branch. This branch should be pushed on github. + + - run the following commands: + ```bash + autoconf + ./configure + make distrib +``` + + This creates a tar-gz archive with the right naming. + + - on github, create a new release for this version. The name is + usually composed of two parts. The first part is the revision for + coq-dpdgraph (as used in the `coq-master` version of + `configure.ac`), then the + sign, then the targeted revision of + coq. The contents of this release are given by the branch you created. + + The archive that was generated by `make distrib` should be added to + that release (as an asset). + + - The next step is to add an opam file for this revision in + `opam-coq-archive`. + + - Clone the `opam-coq-archive` repository, create a working branch + stemming from `master`, and then add the new opam file at the + relevant place. + + - If the targeted revision of Coq is already + official, then this opam file can be added directly in the + `released` directory. The name of the directory for this file + should be the similar to the name of the tag + (`v` being replaced by `coq-dpdgraph.`). The opam file should be + inspired from the opam file for the previous revision except that + the url src and checksum should be adapted to the new name and its + checksum (obtained using `sha512sum`. + + - If you want to test that your new `opam` file is correct, a first + step is to call `opam lint` on this file. The second step is to + test an installation. Here is a way to do it quickly: + +```bash + opam repo add tmp-coq-released .../opam-coq-archive/released + opam install coq-dpdgraph +``` + + Do not forget to perform an `opam update` after every modification + to any file in the opam archive.