Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
F
frama-c
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Container Registry
Model registry
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
pub
frama-c
Commits
b6f75676
Commit
b6f75676
authored
3 months ago
by
Virgile Prevosto
Browse files
Options
Downloads
Patches
Plain Diff
[releaseman] Instructions for releasing plug-ins together with Frama-C
parent
253cd08f
No related branches found
No related tags found
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
doc/release/branch.tex
+11
-0
11 additions, 0 deletions
doc/release/branch.tex
doc/release/deploy.tex
+38
-0
38 additions, 0 deletions
doc/release/deploy.tex
doc/release/validation.tex
+10
-0
10 additions, 0 deletions
doc/release/validation.tex
with
59 additions
and
0 deletions
doc/release/branch.tex
+
11
−
0
View file @
b6f75676
...
...
@@ -4,12 +4,15 @@
That is the procedure for forking the release from
\texttt
{
master
}
.
\section
{
Creating the milestones
}
\label
{
sec:creating-milestones
}
Create the milestone for the next releases on
\textsf
{
Gitlab
}
,
in the Frama-C group. They will be used for development that will not
be integrated into the upcoming release.
\expertise
{
François, Julien
}
.
\section
{
Creating the branch
}
\label
{
sec:creating-branch
}
\textbf
{
Note:
}
You must be member of the GitLab groups "frama-c", "dev" and have
access to each plugin of continuous integration.
...
...
@@ -41,6 +44,7 @@ allowed to push/merge).
sure to set their targeted branch to
\texttt
{
stable/release
}
.
\section
{
Retargeting Merge Requests
}
\label
{
sec:retarg-merge-requ
}
Another command of
\texttt
{
frama-ci
}
allows retargeting
the opened merge requests associated to the milestone corresponding
...
...
@@ -52,6 +56,7 @@ frama-ci-retarget-merge-requests --token=$TOKEN \
\end
{
shell
}
\section
{
GitLab issues
}
\label
{
sec:gitlab
-
issues
}
{
\em
This is currently done periodically in specific Frama
-
C meetings, so only
a final check is usually necessary.
}
~
\\
...
...
@@ -66,6 +71,7 @@ severity, the issues should be tagged with the current release, or with the next
one.
\section
{
Version
}
\label
{
sec:version
}
On the new
\texttt
{
stable
}
branch, execute the script:
\begin
{
verbatim
}
...
...
@@ -100,6 +106,7 @@ This will:
Commit this change and push.
\section
{
External plugins
}
\label
{
sec:external
-
plugins
}
List of external plugins repo names:
\begin
{
itemize
}
...
...
@@ -127,6 +134,7 @@ request targetting \texttt{stable/release} on each plugin and assign your co-rm.
This changes will need to be merged on master's branches later.
\section
{
Copyright
}
\label
{
sec:copyright
}
Check that the date in copyright headers is correct. If not then:
\begin
{
itemize
}
...
...
@@ -144,6 +152,9 @@ Check that the date in copyright headers is correct. If not then:
\item
Check if some copyrights are left to update by
\texttt
{
grep
}
-
ing the date in the sources:
\texttt
{
grep
-
r
-
e "
-
yyyy" .
}
\end
{
itemize
}
This must also be checked for Frama
-
Clang and MetAcsl if they are also to be
released.
%%%Local Variables:
%%%TeX-master: "release"
%%%End:
This diff is collapsed.
Click to expand it.
doc/release/deploy.tex
+
38
−
0
View file @
b6f75676
...
...
@@ -6,6 +6,7 @@ starting this stage. The tasks listed in this section are mostly performed by
the Release Manager.
\section
{
Release pipeline
}
\label
{
sec:release-pipeline
}
Go to the Build
$
\rightarrow
$
Pipelines section of GitLab. Start the release pipeline:
\begin{itemize}
...
...
@@ -40,6 +41,7 @@ release and the release should be available in
version in
\url
{
https://git.frama-c.com/pub/frama-c/-/tags
}
.
\section
{
Check the website
}
\label
{
sec:check-website
}
Once the pipeline for the website has run, open
\texttt
{
https://pub.frama-c.com
}
.
...
...
@@ -102,13 +104,37 @@ If everything is fine, merge the website and ask a website maintainer to put it
online (
\expertise
{
Allan, Augustin
}
).
\section
{
Public GitLab
}
\label
{
sec:public-gitlab
}
Open the generated wiki page (visible in the public website activity). Check the
links (files are available only once the website has been put online). If
everything is fine, edit the main wiki page and the sidebar with a link to the
page (
\url
{
https://git.frama-c.com/pub/frama-c/-/wikis/home
}
).
\section
{
External Plug-in Release
}
\label
{
sec:ext-plug-ins-release
}
If a release of Frama-Clang and MetAcsl is scheduled together
with the main Frama-C release, you can now launch the release pipelines
on their respective repositories (
\texttt
{
frama-c/frama-clang
}
and
\texttt
{
frama-c/meta
}
), with the same protocol as for the main
Frama-C repository described in Sect.~
\ref
{
sec:release-pipeline
}
.
The only difference is that there is only a single
\texttt
{
release
}
\todo
{
it would be good to split the script in several sub-jobs
}
task.
Then, check the website MR that have been created (one for each
plug-in), and merge them if everything is alright.
In particular, the
\texttt
{
\_
fc-plugins/frama-clang.md
}
needs manual
update
\todo
{
reword this page to avoid this manual step
}
.
Note that these releases can be done at a later point and independently from
Frama-C. If you happen to release a plug-ins after the PR for Frama-C has been
merged on opam repository (see Sect.~
\ref
{
sec:opam-package
}
), a new PR will be
opened for the plug-in. Otherwise, the same branch will be used to create all
the packages.
\section
{
Announcements
}
\label
{
sec:announcements
}
\begin{itemize}
\item
Send an e-mail to
\texttt
{
frama-c-discuss
}
announcing the release.
...
...
@@ -119,6 +145,7 @@ page (\url{https://git.frama-c.com/pub/frama-c/-/wikis/home}).
\end{itemize}
\section
{
Opam package
}
\label
{
sec:opam-package
}
You'll need a GitHub account to create a pull request on the official opam
repository
\footnote
{
\texttt
{
ocaml/opam-repository.git
}}
. Go to the
\FramaC
...
...
@@ -126,7 +153,17 @@ GitHub organization opam repository (\url{https://github.com/Frama-C/opam-reposi
Find the branch corresponding to the release and create the pull-request on the
official opam repository.
As mentioned in Sect.~
\ref
{
sec:ext-plug-ins-release
}
, the PR can contain
plug-in(s) package(s) in addition to the Frama-C package itself if plug-ins
have also been released.
Once the PR has been merged, make sure that the branch is removed from
the fork in
\texttt
{
Frama-C/opam-repository
}
\todo
{
If possible in github's REST API,
make sure that the merge will erase the branch automatically
}
.
\section
{
Other repositories to update
}
\label
{
sec:other-repos-update
}
Check if other
\FramaC
(and related) repositories need to be updated:
...
...
@@ -138,6 +175,7 @@ Check if other \FramaC (and related) repositories need to be updated:
\end{itemize}
\section
{
Docker image preparation
}
\label
{
sec:dock-image-prep
}
This section only applies to non-beta releases.
...
...
This diff is collapsed.
Click to expand it.
doc/release/validation.tex
+
10
−
0
View file @
b6f75676
...
...
@@ -219,6 +219,16 @@ Note that an extra pipeline will be run when the tag is pushed, and it will
likely fail due to external plugins. This is not a problem (if you really want
to avoid it, you can create and push the tag to each external plug-in).
\section
{
External Plug-in Validation
}
In case a release of Frama-Clang and/or MetAcsl is scheduled together with the
Frama-C release itself, their respective
\texttt
{
CHANGELOG.md
}
must be checked to confirm
that they contain a section corresponding to the upcoming release.
For Frama-Clang, the files
\texttt
{
FCLANG
\_
VERSION
}
,
\texttt
{
FC
\_
VERSION
}
, and
\texttt
{
FC
\_
VERSION
\_
NAME
}
must also be checked. If you have applied the
appropriate script in Sect.~
\ref
{
sec:external-plugins
}
, this should be the case.
%%%Local Variables:
%%%TeX-master: "release"
%%%End:
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment