From: Andreas Enge <andreas@enge.fr>
To: guix-devel@gnu.org
Subject: Discussion notes on releases and branches
Date: Thu, 9 Feb 2023 13:19:28 +0100 [thread overview]
Message-ID: <Y+Tk0OKTyKKDqqlm@jurong> (raw)
[-- Attachment #1: Type: text/plain, Size: 126 bytes --]
Attached are the notes of our discussion at the Guix Days concerning
releases, branches, teams and related matters.
Andreas
[-- Attachment #2: Release.txt --]
[-- Type: text/plain, Size: 5024 bytes --]
Releases, branches, teams
Problem: It took us 1.5 years for the last release, and the coreupdates
branch has been open for at least as much.
RELEASES
Why do we make releases?
- How else would people install Guix?
- Quality assurance: Fix the installer before release.
- Regular points for translation.
- Communication and publicity.
- Releases are separate from branches; the release team should pick
a commit and spin off a release branch from there.
- It is possible to have long term support release, mixed with
more frequent intermediate releases; example from another project:
"big" release every year, "smaller" releases every 4 months.
- Stable branches are a frequent user request!
- A release schedule for a release every 4 to 6 months sounds
reasonable.
- Mathieu, Simon, Julien and Andreas volunteer to be members of a release
team. The idea would be to change the team for each release, with an
overlap of about half the people: everyone would have "two terms".
Such a team could commit on a release date and coordinate contributors,
keep track of the status, ping people fixing bugs etc. Work should
start immediately after a release to spot problematic areas (poorly
supported architectures...) and big goals for the next release.
It could also coordinate with other teams on planned big changes.
Communication is key! For instance send a status update once per week.
At the same time, the team should lower their operational involvement
to avoid burn-out.
BRANCHES
Suggestion:
- Spin off a stable branch from master with security fixes, maybe important
backports; after 6 months, branch a new stable branch from master; this
is almost like a release, but continued into some future.
Counter-suggestion:
- Create branches with a few patches or patchsets; in any case with
a "semantic" description of the changes. The branches could be
shortlived. Feature branches are one incarnation of the concept.
- The numerical criteria for staging and core-updates is outdated:
Even non-core packages may create an enormous number of rebuilds.
- Negative point: There is a risk of churn, by not regrouping world-
rebuilding changes - but two non related world rebuilding changes
might be difficult to review.
Before creating new branches, we need to clarify how the old branches
are handled!
- Smaller branches could be taken care of by dedicated persons
responsible for pushing them forward. For instance by teams.
- Some people already do this for a feature branch on their local
machine for medium-sized updates (ocaml), or even on ci (haskell,
kernel updates).
- Branch creators should fix a goal and tentative timeline.
- We need a mapping between branches and maintainers responsible
for the merge. This could be a team leader, if such a role is created.
A wiki could be used to keep track of the branches.
- There is discussion whether we need a core-updates branch.
Core updates concern the toolchain, build phase changes, everything
that has big ramifications all over the system. It would be important
to not have several "parallel" branches with related (for instance,
but not exclusively, core-update) changes, which in fact should come
one after the other. Either they could be collected in one branch,
or would require coordination of branch creation (inside a team, say).
- "Merge trains" of gitlab are mentioned, as a way of merging several
branches at the same time.
- Grafts can also be handled in feature branches: The graft is applied
to master; the graft is applied to a different branch, directly followed
by an ungrafting commit and an update of the corresponding package;
once the branch is built it is merged back to master.
- Minor drawback: If qa has treated a world-rebuilding patch, the
substitutes will be available on bordeaux, but not on berlin; people
who have installed a long time ago and not authorised bordeaux might
be affected. If there are complaints, they can be handled on the
mailing list.
- Moving fast poses problems for non-x86 architectures, but the build farm
situation has improved for aarch64 and armhf sufficiently to keep up
with master. Handling feature branches remains an unsolved problem.
- Currently there is a cap on qa, only patches with at most 300 dependents
are treated. This cap could be increased. Or it could be weighed with
the build times of the packages.
TEAMS
- Issues could be tagged more often with responsible teams, or with
severity information (blocking bug or not).
- Each module should be covered by a team; otherwise it would be
difficult to get important updates through a feature branches.
ARCHITECTURES
- We distinguish in the manual between available architectures that are
"supported" or "unsupported". It would make sense to have a category
in-between, with architectures that are supported in principle, but may
be low on substitute availability.
- We could use the "supported-systems" fields in packages more liberally.
next reply other threads:[~2023-02-09 12:20 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-02-09 12:19 Andreas Enge [this message]
2023-02-12 21:13 ` Moving forward with teams and feature branches (was: Discussion notes on releases and branches) Josselin Poiret
2023-02-12 21:34 ` Andreas Enge
2023-02-13 9:32 ` Time for RFC? (was Re: Moving forward with teams and feature branches (was: Discussion notes on releases and branches)) zimoun
2023-02-13 14:04 ` bug#61475: Staging branch (was: Moving forward with teams and feature branches) Andreas Enge
2023-05-10 2:55 ` Maxim Cournoyer
2023-02-13 14:07 ` Moving forward with teams and feature branches (was: Discussion notes on releases and branches) Andreas Enge
2023-02-14 19:12 ` Leo Famulari
2023-02-13 9:22 ` Release (was " Simon Tournier
2023-02-14 10:14 ` Rust team branch " Efraim Flashner
2023-02-14 16:36 ` Rust team branch Andreas Enge
2023-02-14 20:07 ` Efraim Flashner
2023-02-16 10:56 ` Andreas Enge
2023-02-14 16:36 ` Rust team branch (was Re: Discussion notes on releases and branches) Katherine Cox-Buday
2023-02-14 20:08 ` Efraim Flashner
2023-02-15 17:49 ` Katherine Cox-Buday
2023-03-17 15:24 ` Discussion notes on releases and branches Felix Lechner via Development of GNU Guix and the GNU System distribution.
2023-03-18 17:42 ` Leo Famulari
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y+Tk0OKTyKKDqqlm@jurong \
--to=andreas@enge.fr \
--cc=guix-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.