all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Attila Lendvai <attila@lendvai.name>
To: Simon Tournier <zimon.toutoune@gmail.com>
Cc: Andreas Enge <andreas@enge.fr>,
	Christopher Baines <mail@cbaines.net>,
	guix-devel@gnu.org
Subject: Re: Proposed changes to the commit policy (#59513)
Date: Tue, 24 Jan 2023 09:07:03 +0000	[thread overview]
Message-ID: <piTsDs1MQwHe7wwkVuJkQUxINA3-CLVamZLhb3QG4zZAepFsO82PmBIo-wsZu5SRE0CATWoll3uBx4hS37YfmWA_drorb8BFcQ02ARjlUiA=@lendvai.name> (raw)
In-Reply-To: <86k01dzjpz.fsf@gmail.com>

> While I understand this “extra“ work is a burden, what would you suggest
> to reduce the number of broken packages? Because all the red circles in
> the dashboard [2] is a strong issue, IMHO.


some random 0.02 follows from a non-committer. i don't think this would be a lot of extra burden, but i'm not sure how this scales up to several committers.

with that in mind:

besides the `master` branch, i would introduce a number of consequtive branches called `staging1`..`staging4`.

the more "problematic" a commit is, the deeper it should land in the stack of the staging branches.

commits are "promoted" stage-by-stage from staging4 towards master. the deeper we are in the stack, the less frequently it happens, and in larger batches. a major releases means promoting staging4 all the way up to master.

master is manually fast-forwarded to `staging1` every few days/hours, after checking the CI. this should be done by a dedicated person/role/group.

when master is updated, then an immediate attempt should also be made to rebase the staging branches on top of the new master. when this rebasing requires substantial effort, then it should be abandoned, and whoever is responsible for the problematic commits should do the rebasing.

all the branches are built automatically by the CI, but there's a strict priority: e.g. `staging2` is only built when `staging1` has finished building, or when manually requested by a maintainer.

the staging branches may be force-pushed, but the closer they are to master, the less haphazardly it should happen. when a committer sees that a history-rewrite is in order, they should drop a mail to the committer mailing list informing the others, and a "done" reply when finished (this would work better on a communication channel where deleting not-anymore-relevant messages is possible).

---------

further details:

LTS (Long Term Support): depending on the available human resources, when a major release is made, a branch (and a channel) could be opened for that release. this branch would receive backported fixes on a best effort basis. users, who want to delay dealing with the API changes introduced by the major release, may decide to stick to this channel for a while.

in the new setup master is always fully covered by the substitute servers. in the current setup i often find myself locally building large packages like chromium, which is a regular headache to me as a user.

compared to the current setup, `staging1` would be a new branch; rename `staging` -> `staging2`; `core-updates` -> `staging3`. API changes should land in `staging4`, waiting there until a major release.

this naming scheme is more intuitive for newcomers, but it might also be more error prone in everyday routine work.

HTH,

-- 
• attila lendvai
• PGP: 963F 5D5F 45C7 DFCD 0A39
--
“To be human is not a fact, but a task.”
	— Søren Kierkegaard (1813–1855), paraphrased



  reply	other threads:[~2023-01-24  9:08 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-13 14:10 Proposed changes to the commit policy (#59513) Christopher Baines
2023-01-16 21:47 ` Christopher Baines
2023-01-17 16:35   ` Ludovic Courtès
2023-01-18 11:23   ` Andreas Enge
2023-01-18 11:45     ` Christopher Baines
2023-01-18 16:54       ` Kaelyn
2023-01-22 17:18       ` Andreas Enge
2023-01-23  9:24         ` Simon Tournier
2023-01-24  9:07           ` Attila Lendvai [this message]
2023-01-25 15:03           ` Proposed changes to the commit policy Andreas Enge
2023-01-30 21:40             ` Ludovic Courtès
2023-02-13 11:41               ` Efraim Flashner
2023-01-30 22:03         ` Proposed changes to the commit policy (#59513) Christopher Baines
2023-01-31 11:00           ` Simon Tournier
2023-02-01 13:09           ` Andreas Enge
2023-01-20 11:50     ` Simon Tournier

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='piTsDs1MQwHe7wwkVuJkQUxINA3-CLVamZLhb3QG4zZAepFsO82PmBIo-wsZu5SRE0CATWoll3uBx4hS37YfmWA_drorb8BFcQ02ARjlUiA=@lendvai.name' \
    --to=attila@lendvai.name \
    --cc=andreas@enge.fr \
    --cc=guix-devel@gnu.org \
    --cc=mail@cbaines.net \
    --cc=zimon.toutoune@gmail.com \
    /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.