mirror of
https://github.com/AdaCore/why3.git
synced 2026-02-12 12:34:55 -08:00
5.5 KiB
5.5 KiB
Making a release
-
assuming some variables
VERSION=1.8RELEASE=1.8.1
-
perform a sanity check
- check the BTS: there should be no more open issues and MR in the milestone page https://gitlab.inria.fr/why3/why3/-/milestones
- check that the nightly bench is OK
make xml-validate-local(see below forwhy3session.dtd)- check
CHANGES.md - run
make detect-unusedand remove unused files - run
make update-doc-pngand check if some pictures need to be updated - run
make doc/latex/manual.pdfand check the manual - run
make distand check the content ofdistrib/why3-X.X.X.tar.gz - check
lib/why3/META.in(in particular againstEXTPKGSinMakefile.in) - update
opam/why3{,-ide,-coq}.opamwith correct dependencies on external packages - check the gallery, especially the new examples (see below)
- run the manual job
trywhy3-extrato build Alt-Ergo for TryWhy3 if needed (see below) this is done by opening the pipeline on the gitlab site and manually click on the arrow on the right of the job.
-
check/update authors and copyright
- update the content of the About dialog in
src/ide/gconfig.mlaround lines 680-700 - update the
copyrightfield indoc/conf.pyaround line 50 - update
doc/foreword.rst - update
src/trywhy3/trywhy3.html - check headers, modify
misc/header.txtand runmake headersif needed - commit as needed
- update the content of the About dialog in
-
perform and push the release commit
- create a branch if needed,
git checkout -b bugfix/v$VERSION master - or just move to it,
git checkout bugfix/v$VERSION - update the first line of
configure.inusing$RELEASE - update the
versionandreleasefields indoc/conf.pyaround line 60 - add the release date to
CHANGES.md - update the date in
doc/index.rst - make a last commit
git commit -am "Version $RELEASE" git tag $RELEASE git push git push --tags
- create a branch if needed,
-
prepare and upload the archive to https://gitlab.inria.fr/why3/releases
make dist- important: make sure your have git-lfs installed
- get the Git repository of the releases and move to it
cp .../distrib/why3-$RELEASE.tar.gz releases/ git add releases/why3-$RELEASE.tar.gz git commit -m "Add release $RELEASE." git push
-
update the repository, if this is the most recent release
- forward the
stablebranch of the Why3 repository:git push origin bugfix/v$VERSION:stable - merge back the changes to the
masterbranch. There might be a conflict inconfigure.in: see below. - update the first line of
configure.inusing$RELEASE+git, commit and push the change tomaster(this requires to change the settings/repository in gitlab: temporary allow Maintainers to push into master)
- forward the
-
update the website, if this is the most recent release
- get the sources from https://gitlab.com/why3project/why3project.gitlab.io
- update
index.htmlwith the new url for download - update
.gitlab-ci.ymlif the Alt-Ergo worker was rebuilt (jobtrywhy3-extra) you need to put the right number in TRYWHY3_JOB with the pipeline wheretrywhy3-extrawas run - update
why3session.dtdwith the current version - wait for completion of the pipeline of the
stablebranch - commit and push the changes, to trigger an update of the website
Last time this failed because the token to access Why3 project on
Inria gitlab expired. Regenerate again a token from
https://gitlab.inria.fr/why3/why3/-/settings/access_tokens, give
it a name like
Why3WebSiteand access levelreporterat least, with rightsread_apiat least. Put the the new token in https://gitlab.com/why3project/why3project.gitlab.io/-/settings/ci_cd#js-cicd-variables-settings as the value of variableUPSTREAM_TOKEN
-
prepare and upload the OPAM packages to https://github.com/ocaml/opam-repository
- reinitialize the repository if not fresh:
git remote add upstream https://github.com/ocaml/opam-repository.git git fetch upstream git reset --hard upstream/master mkdir packages/why3/why3.$RELEASE packages/why3-coq/why3-coq.$RELEASE packages/why3-ide/why3-ide.$RELEASE- copy the
opamfiles from the directories of the previous release - reconcile with the changes from Why3's repository
- update the
urlsection of all threeopamfiles - push and make a pull request on Github
- check whether some downstream developments were broken and update the pull request accordingly
- reinitialize the repository if not fresh:
-
produce the Why3 part of Toccata gallery, if this is the most recent release
- update the git repository of Toccata
- have
GALLERYDIRpoint to the sub-directorygalleryof that git repository, e.g.,export GALLERYDIR=.../toccata/web/gallery - in Why3 sources, run
make gallery; it exports to$GALLERYDIRall the Why3 programs for which there is a session - now move to the directory
$GALLERYDIR - check the examples that are currently untracked in the Toccata repository
and update
examples.rcaccordingly - put the directories of the broken examples in
.gitignore - run
make; this requires to have installed the newly released Why3; the presence of.prehtml.newfiles means that something went wrong, hopefully only for non-Why3 examples git addthe new files (except for the.htmlfiles, which should go inweb/gallery/.gitignore)- commit and push the modified files
-
announce the release using the features of
CHANGES.mdWait for the opam packages to appear, then announce on Zulip and on the mailing list