diff --git a/doc/release/build.tex b/doc/release/build.tex index 2cddd5b7e45cadebc0b319445ed4fe2796b97256..fc70329ed3cca10d01648f279362c723d6120d88 100644 --- a/doc/release/build.tex +++ b/doc/release/build.tex @@ -31,8 +31,9 @@ The procedure for creating the source distribution. \begin{itemize} \item In particular, check and update a full known good configuration for opam packages, including alt-ergo, why3, coq, etc. - Use \verb+ptests.opt -config qualif src/plugins/wp/tests+ to help check if - the configuration is ok. + Use \verb+bin/check-reference-configuration.sh+ to help check if the + configuration is ok. You can also try running + \verb+ptests.opt -config qualif src/plugins/wp/tests+. \end{itemize} \item Check the contents of \texttt{README.md} \todo{Should always be up to date} \item Check the contents of \texttt{Changelog} @@ -236,15 +237,13 @@ website git. \texttt{build-src-distrib.sh} for this purpose (\texttt{bash version 4} required) after cloning the following repositories \begin{itemize} -\item \texttt{Frama-C-snapshot} (\texttt{git@github.com:Frama-C/Frama-C-snapshot}), -\item \texttt{Frama-C-snapshot.wiki} (\texttt{git@github.com:Frama-C/Frama-C-snapshot.wiki}), and +\item \texttt{pub-frama-c} (\texttt{git@git.frama-c.com:pub/frama-c}), +\item \texttt{frama-c.wiki} (\texttt{git@git.frama-c.com:pub/frama-c.wiki}), and \item \texttt{website} (\texttt{git@git.frama-c.com:frama-c/website}) \end{itemize} in the root directory of Frama-C. The last one is only needed when creating a -final release. Release candidates are only put on github and require only -\texttt{Frama-C-snapshot} and its associated wiki. Branch on -\texttt{Frama-C-snapshot} should be \texttt{latest} for every release -(for final releases, \texttt{latest} is merged into \texttt{master} at the end). +final release. Release candidates are pushed as a branch \texttt{stable/<codename>} +and added to the \texttt{pub/frama-c} wiki. For \texttt{website}, a new branch should be created over \texttt{online}. Finally, ensure that locale \verb+en_US.UTF-8+ is available on your system, @@ -265,22 +264,12 @@ Please check that the distribution (sources and API) is OK: \item run \texttt{<path-to-frama-c-git-clone>/doc/release/checktar.sh} (CWD must be where the tar was extracted). Fix issues and/or update the script if needed. - \item On a pristine clone of the Github Frama-C-snapshot repository - (e.g. the one created a few steps before), - compare the untared directory and the Github clone using e.g. \texttt{meld}, - to see if there are suspicious newly-added files or directories (indicating - e.g. that the .tar.gz was created on a non-clean environment). - Note that comparing file contents is irrelevant at this stage, since - there are likely too many differences between this and the last release - (unless the previous one was a beta, in which case differences should be - small). - However, check for post-release commits (namely to \texttt{opam/opam}) and - see if there are changes that were forgotten to be ported back to Frama-C's git. -\end{enumerate} + \end{enumerate} \item check for possible path/environment leaks in the \texttt{tar.gz}: grep for the path where your Frama-C git directory is, e.g. \texttt{/home/user/git/frama-c}. It should appear nowhere in the archive. -\item check that \texttt{./configure \&\& make \&\& sudo make install} works fine; +\item check that \texttt{./configure \&\& make -j \&\& sudo make install} works fine + (or check e.g. \texttt{./configure --prefix=\$PWD/build \&\& make -j \&\& make install}); \item test the installed binaries (especially the GUI). (On Linux, OCI tests everything but the GUI); \item redo the two steps above on Windows/WSL \expertise{André/Allan}, macOS @@ -290,7 +279,7 @@ Please check that the distribution (sources and API) is OK: \item \verb+./configure --prefix="$PWD/build"+ \item \verb+make+; \item \verb+make install+; - \item \verb+rm -f ~/.why3.conf; why3 config+; + \item \verb+rm -f ~/.why3.conf; why3 config --full-config+; \item \verb+build/bin/frama-c tests/idct/*.c -eva -wp -wp-rte+ \item If you have a GUI, replace \verb+frama-c+ above with \verb+frama-c-gui+ and click around, see if things work (e.g. no segmentation faults). @@ -299,6 +288,9 @@ Please check that the distribution (sources and API) is OK: \texttt{index.html} in a browser, click on a few links, etc). If there are minor bugs/typos, note them for later, but it's not worth delaying the release to fix them. +\item consider decompressing both the current and the previous release archives + in different directories, then using \texttt{meld} to compare them. This + allows spotting if some files were unexpectedly added, for instance. \end{enumerate} diff --git a/doc/release/intro.tex b/doc/release/intro.tex index f3d47d4b1fdae348f82e9f1211e3248d583d78e2..3c37a442b6952117321a42789d46f157bd005503 100644 --- a/doc/release/intro.tex +++ b/doc/release/intro.tex @@ -20,7 +20,7 @@ roles, and we must distinguish between: %% \item[Binary Builders:] they are responsible for creating a binary distribution %% of the release for a specific architecture \expertise{none currently}. \item[Web Site Maintainers:] they are responsible for updating the web site, - during the release and for possible later updates \expertise{Florent}. + during the release and for possible later updates \expertise{Florent ? Thibaud ?}. \item[Release Manager:] they are responsible for the organisation of the release process \end{description} diff --git a/doc/release/website.tex b/doc/release/website.tex index 4f3700462cb4e0f949af5368858780ecb3e5e02a..b10cda813a798083bb2264a7e72001f29493b445 100644 --- a/doc/release/website.tex +++ b/doc/release/website.tex @@ -188,29 +188,24 @@ account. about it, or ask directly on the merge request. \end{itemize} -\section{Updating Frama-C-snapshot} +\section{Updating pub/frama-c} -You'll need a GitHub account with commit rights to Frama-C/Frama-C-snapshot. -The release script \texttt{bin/build-src-distrib.sh} has prepared both the -repository and the associated wiki (see section~\ref{sec:build-source-distr}). +You'll need to be member of the \texttt{pub/frama-c} project to be able to +commit to it. \begin{itemize} -\item ensure that the sources in \texttt{Frama-C-snapshot} compile; - the following command must work:\\ - \verb+./configure --prefix=/tmp/frama-c && make && make install+ -\item commit in branch \texttt{latest} -\item tag the commit with the version number (including suffix for beta - releases), then push -\item for a final release, merge \texttt{latest} into \texttt{master}, - and push \texttt{master} -\item in \texttt{Frama-C-snapshot.wiki}, update the new -\texttt{Frama-C-VERSION.md} page with the list of main changes. -\item Add your changes, commit and push +\item add the \texttt{pub/frama-c} remote to your Git clone; +\item make sure the last commit is tagged (either a release candidate, or a + final release); +\item push the stable/\texttt{<codename>} branch to the \texttt{pub} remote. \end{itemize} +({\em Non-beta only}) After pushing the tag to Gitlab, go to the Releases page +and create a release for the tag. + \section{Updating the BTS} -\expertise{Usually Julien performs this step.} +\expertise{Usually Julien performs this step. Soon to be obsoleted.} Each task marked as \texttt{Resolved} and really resolved in this release (say \texttt{VERSION}) must be marked as \texttt{Fixed in Version VERSION}, then @@ -234,8 +229,9 @@ Check if other Frama-C (and related) repositories need to be updated: \begin{itemize} \item \texttt{acsl-language/acsl} (if last minute patches were applied) -\item \texttt{Frama-C/open-source-case-studies} -\item \texttt{Frama-C/sate-vi} +\item \texttt{pub/open-source-case-studies} +\item \texttt{pub/sate-6} +\item other \texttt{pub} repositories related to Frama-C... \end{itemize} \section{Preparing the Next Release}