all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Christopher Baines <mail@cbaines.net>
To: guix-devel@gnu.org
Subject: Proposed change for the disruptive changes process (staging/core-updates)
Date: Fri, 23 Oct 2020 18:20:05 +0100	[thread overview]
Message-ID: <877drg3lmi.fsf@cbaines.net> (raw)

[-- Attachment #1: Type: text/plain, Size: 2790 bytes --]

Hey,

So, the process as I currently understand it, commits that cause lots of
derivation outputs to change should be pushed to either the core-updates
or staging branches, rather than master. Additionally, these branches
should be periodically frozen (no one pushing new changes other than
fixes), and then once ci.guix.gnu.org has caught up, the branch and
associated changes can be merged to master.

From both the personal perspective as someone continuously building Guix
things to provide substitutes, and from my view on the operation of
ci.guix.gnu.org, I think with a small change to the process, could
benefit both ci.guix.gnu.org and others building Guix packages.

The issue that I'm thinking about with respect to the current process is
that ci.guix.gnu.org doesn't just build staging/core-updates when it's
frozen, it builds it all the time. This means that on top of the cost of
building everything you need to merge the branch, you're potentially
spending a lot of time building and storing outputs that no one is ever
going to request. Now there is some value in building
staging/core-updates all the time, for those who are working on pushing
changes/fixing things on those branches, but I think it would be good to
allow these things to be separated.

I think this issue is clearer for the substitute server I try and
operate. I could track and build things off of staging/core-updates, but
at the moment it's not worth the cost, because of the amount of
redundant building/storing that this would involve. I could also just
enable building staging/core-updates when I see that the relevant branch
is frozen, but that requires paying attention.

A simple process change that I think would help to address this is as
follows (I'll use core-updates as the example, but this applies for
staging as well):

 - core-updates is effectively renamed to core-updates-next

 - When you want to merge core-updates-next in to master, you create
   core-updates pointing at the same commit as core-updates-next. This
   begins the freeze.

 - Once a sufficient amount of time has past for the things on
   core-updates to have been built, you merge in to master

 - Shortly after the merge to master, you then delete the core-updates
   branch

This would mean that a build server can track core-updates, and it'll
only build things when they're relevant for substitutes. For
ci.guix.gnu.org, maybe it could build both branches initially, to
replicate the current setup, but I think in the long run, it would be
helpful to separate out the behaviour so that ci.guix.gnu.org
concentrates on builds for substitutes, and there's another thing for
actually testing out potential core-updates changes.

Thoughts?

Thanks,

Chris

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 987 bytes --]

             reply	other threads:[~2020-10-23 17:21 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-23 17:20 Christopher Baines [this message]
2020-12-11 14:30 ` Proposed change for the disruptive changes process (staging/core-updates) zimoun

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=877drg3lmi.fsf@cbaines.net \
    --to=mail@cbaines.net \
    --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.