Skip to content
Snippets Groups Projects
Commit f13ae712 authored by Andre Maroneze's avatar Andre Maroneze
Browse files

[Doc/Release] update release manual

parent 9066b663
No related branches found
No related tags found
No related merge requests found
......@@ -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}
......
......@@ -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}
......
......@@ -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}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment