Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add distrib doc #99

Open
wants to merge 3 commits into
base: coq-master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions DISTRIBUTION.md
Original file line number Diff line number Diff line change
@@ -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.