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. ...@@ -31,8 +31,9 @@ The procedure for creating the source distribution.
\begin{itemize} \begin{itemize}
\item In particular, check and update a full known good configuration for \item In particular, check and update a full known good configuration for
opam packages, including alt-ergo, why3, coq, etc. opam packages, including alt-ergo, why3, coq, etc.
Use \verb+ptests.opt -config qualif src/plugins/wp/tests+ to help check if Use \verb+bin/check-reference-configuration.sh+ to help check if the
the configuration is ok. configuration is ok. You can also try running
\verb+ptests.opt -config qualif src/plugins/wp/tests+.
\end{itemize} \end{itemize}
\item Check the contents of \texttt{README.md} \todo{Should always be up to date} \item Check the contents of \texttt{README.md} \todo{Should always be up to date}
\item Check the contents of \texttt{Changelog} \item Check the contents of \texttt{Changelog}
...@@ -236,15 +237,13 @@ website git. ...@@ -236,15 +237,13 @@ website git.
\texttt{build-src-distrib.sh} for this purpose (\texttt{bash version \texttt{build-src-distrib.sh} for this purpose (\texttt{bash version
4} required) after cloning the following repositories 4} required) after cloning the following repositories
\begin{itemize} \begin{itemize}
\item \texttt{Frama-C-snapshot} (\texttt{git@github.com:Frama-C/Frama-C-snapshot}), \item \texttt{pub-frama-c} (\texttt{git@git.frama-c.com:pub/frama-c}),
\item \texttt{Frama-C-snapshot.wiki} (\texttt{git@github.com:Frama-C/Frama-C-snapshot.wiki}), and \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}) \item \texttt{website} (\texttt{git@git.frama-c.com:frama-c/website})
\end{itemize} \end{itemize}
in the root directory of Frama-C. The last one is only needed when creating a 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 final release. Release candidates are pushed as a branch \texttt{stable/<codename>}
\texttt{Frama-C-snapshot} and its associated wiki. Branch on and added to the \texttt{pub/frama-c} wiki.
\texttt{Frama-C-snapshot} should be \texttt{latest} for every release
(for final releases, \texttt{latest} is merged into \texttt{master} at the end).
For \texttt{website}, a new branch should be created over \texttt{online}. 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, 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: ...@@ -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} \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 (CWD must be where the tar was extracted). Fix issues and/or update
the script if needed. the script if needed.
\item On a pristine clone of the Github Frama-C-snapshot repository \end{enumerate}
(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}
\item check for possible path/environment leaks in the \texttt{tar.gz}: \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. 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. \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 \item test the installed binaries (especially the GUI). (On Linux, OCI tests
everything but the GUI); everything but the GUI);
\item redo the two steps above on Windows/WSL \expertise{André/Allan}, macOS \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: ...@@ -290,7 +279,7 @@ Please check that the distribution (sources and API) is OK:
\item \verb+./configure --prefix="$PWD/build"+ \item \verb+./configure --prefix="$PWD/build"+
\item \verb+make+; \item \verb+make+;
\item \verb+make install+; \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 \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+ \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). 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: ...@@ -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). \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 If there are minor bugs/typos, note them for later, but it's not
worth delaying the release to fix them. 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} \end{enumerate}
......
...@@ -20,7 +20,7 @@ roles, and we must distinguish between: ...@@ -20,7 +20,7 @@ roles, and we must distinguish between:
%% \item[Binary Builders:] they are responsible for creating a binary distribution %% \item[Binary Builders:] they are responsible for creating a binary distribution
%% of the release for a specific architecture \expertise{none currently}. %% of the release for a specific architecture \expertise{none currently}.
\item[Web Site Maintainers:] they are responsible for updating the web site, \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 \item[Release Manager:] they are responsible for the organisation of the
release process release process
\end{description} \end{description}
......
...@@ -188,29 +188,24 @@ account. ...@@ -188,29 +188,24 @@ account.
about it, or ask directly on the merge request. about it, or ask directly on the merge request.
\end{itemize} \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. You'll need to be member of the \texttt{pub/frama-c} project to be able to
The release script \texttt{bin/build-src-distrib.sh} has prepared both the commit to it.
repository and the associated wiki (see section~\ref{sec:build-source-distr}).
\begin{itemize} \begin{itemize}
\item ensure that the sources in \texttt{Frama-C-snapshot} compile; \item add the \texttt{pub/frama-c} remote to your Git clone;
the following command must work:\\ \item make sure the last commit is tagged (either a release candidate, or a
\verb+./configure --prefix=/tmp/frama-c && make && make install+ final release);
\item commit in branch \texttt{latest} \item push the stable/\texttt{<codename>} branch to the \texttt{pub} remote.
\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
\end{itemize} \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} \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 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 \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: ...@@ -234,8 +229,9 @@ Check if other Frama-C (and related) repositories need to be updated:
\begin{itemize} \begin{itemize}
\item \texttt{acsl-language/acsl} (if last minute patches were applied) \item \texttt{acsl-language/acsl} (if last minute patches were applied)
\item \texttt{Frama-C/open-source-case-studies} \item \texttt{pub/open-source-case-studies}
\item \texttt{Frama-C/sate-vi} \item \texttt{pub/sate-6}
\item other \texttt{pub} repositories related to Frama-C...
\end{itemize} \end{itemize}
\section{Preparing the Next Release} \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