|
2 | 2 |
|
3 | 3 | ## opam |
4 | 4 |
|
5 | | -1. Update list of authors and contributors in `.zenodo.json`, `CITATION.cff` and `dune-project`. |
6 | | -2. Update `CHANGELOG.md`: |
| 5 | +1. Choose version name (collaboratively). |
| 6 | +2. Update list of authors and contributors in `.zenodo.json`, `CITATION.cff` and `dune-project`. |
| 7 | +3. Update `CHANGELOG.md`: |
7 | 8 |
|
8 | | - 1. Add a desired version number (`vX.Y.Z`) header at the top. |
| 9 | + 1. Add a desired version number (`vX.Y.Z`) and name header at the top. |
9 | 10 | 2. Add a list of biggest changes compared to the previous version. |
10 | 11 |
|
11 | | -3. Install dune-release: `opam install dune-release`. |
12 | 12 | 4. Remove all opam pins because _opam-repository doesn't allow them_. |
13 | 13 |
|
14 | 14 | * If the pinned changes have been released and published in opam, remove the pin (and add a version lower bound). |
15 | 15 | * If the pinned changes are not strictly necessary for building (but just optimization or stability), then temporarily remove the pin. |
16 | 16 |
|
17 | | -5. Regenerate `goblint.opam`: `dune build`. |
18 | | -6. Regenerate `goblint.opam.locked`: `opam pin add goblint.dev . --no-action` and `opam lock .`. |
| 17 | +5. Check opam file for previous release on opam-repository for changes. |
| 18 | +6. Regenerate `goblint.opam`: `dune build`. |
| 19 | +7. Regenerate `goblint.opam.locked`: `opam pin add goblint.dev . --no-action` and `opam lock .`. |
19 | 20 |
|
20 | 21 | Pinning the package is necessary for locking, otherwise lockfile will be generated for previously published version. |
21 | 22 | Manually remove not installed `depopts` from `conflicts`. |
22 | 23 |
|
23 | | -7. Check with `dune-release check`. |
| 24 | +8. Install dune-release: `opam install dune-release`. |
| 25 | + |
| 26 | +9. Check with `dune-release check`. |
24 | 27 |
|
25 | 28 | All changes must be committed because the working tree is not checked. |
26 | 29 |
|
27 | 30 | The warning `[FAIL] opam field doc cannot be parsed by dune-release` is fine and can be ignored (see <https://github.com/ocamllabs/dune-release/issues/154>). |
28 | 31 |
|
29 | | -8. Check that "unlocked" workflow passes on GitHub Actions. |
| 32 | +10. Check that "unlocked" workflow passes on GitHub Actions. |
30 | 33 |
|
31 | 34 | It can be run manually on the release branch for checking. |
32 | 35 |
|
33 | | -9. Tag the release: `dune-release tag`. |
34 | | -10. Create the distribution archive: `dune-release distrib`. |
| 36 | +11. Tag the release: `dune-release tag`. |
| 37 | +12. Create the distribution archive: `dune-release distrib`. |
35 | 38 |
|
36 | | -11. Check created _distribution archive_ (in `_build`) in a clean environment: |
| 39 | +13. Check created _distribution archive_ (in `_build`) in a clean environment: |
37 | 40 |
|
38 | 41 | 1. Pull Docker image: `docker pull ocaml/opam:ubuntu-22.04-ocaml-4.14` (or newer). |
39 | 42 | 2. Extract distribution archive. |
|
46 | 49 | 9. Check that analysis works: `goblint -v tests/regression/04-mutex/01-simple_rc.c`. |
47 | 50 | 10. Exit Docker container. |
48 | 51 |
|
49 | | -12. Temporarily enable Zenodo GitHub webhook. |
| 52 | +14. Temporarily enable Zenodo GitHub webhook. |
50 | 53 |
|
51 | 54 | This is because we only want numbered version releases to automatically add a new version to our Zenodo artifact. |
52 | 55 | Other tags (like SV-COMP or paper artifacts) have manually created Zenodo artifacts anyway and thus shouldn't add new versions to the main Zenodo artifact. |
53 | 56 |
|
54 | | -13. Create a GitHub release with the git tag: `DUNE_RELEASE_DELEGATE=github-dune-release-delegate dune-release publish distrib`. |
| 57 | +15. Create a GitHub release with the git tag: `DUNE_RELEASE_DELEGATE=github-dune-release-delegate dune-release publish distrib`. |
55 | 58 |
|
56 | 59 | Explicitly specify `distrib` because we don't want to publish OCaml API docs. |
57 | 60 | Environment variable workaround for the package having a Read the Docs `doc` URL (see <https://github.com/ocamllabs/dune-release/issues/154>). |
58 | 61 |
|
59 | | -14. Re-disable Zenodo GitHub webhook. |
| 62 | +16. Re-disable Zenodo GitHub webhook. |
60 | 63 |
|
61 | | -15. Create an opam package: `dune-release opam pkg`. |
62 | | -16. Submit the opam package to opam-repository: `dune-release opam submit`. |
63 | | -17. Revert temporary removal of opam pins. |
| 64 | +17. Edit GitHub release to add version name. |
| 65 | +18. Create an opam package: `dune-release opam pkg`. |
| 66 | +19. Submit the opam package to opam-repository: `dune-release opam submit`. |
| 67 | +20. Revert temporary removal of opam pins. |
64 | 68 |
|
65 | 69 |
|
66 | 70 | ## SV-COMP |
|
0 commit comments