unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
To: Peter Polidoro <peter@polidoro.io>
Cc: help-guix@gnu.org
Subject: Re: Guarantee of no broken dependencies?
Date: Fri, 10 Nov 2023 09:22:24 -0500	[thread overview]
Message-ID: <87il69eli7.fsf@gmail.com> (raw)
In-Reply-To: <32CCC1D2-D832-484F-84CF-B5ABA6EA2C2B@polidoro.io> (Peter Polidoro's message of "Fri, 10 Nov 2023 13:37:20 +0100")

Hi Peter,

Peter Polidoro <peter@polidoro.io> writes:

> For every commit to the Guix master branch, is there a guarantee that
> there are no packages with broken dependencies?

There's no strong guarantee; we rely on people having well tested their
changes and reviewing what QA had to say about it.  Any unexpected
breakage can be caught by Cuirass notifications and hopefully acted on
quickly.

In the future, we'd want to have QA and or Cuirass gate the merge, to
ensure the change (and all impacted packages) were properly built before
being merged.

> I have not experienced packages with broken dependencies, so I am
> curious how that is checked. In theory, someone could make a commit
> that accidentally breaks other packages correct? Aren’t most inputs
> just found by name, not name and version or hash?

The inputs are referenced exactly, via their Scheme variable name.

> Do packages not get broken, though, because right before every commit
> the updated package is built, along with every package that depends on
> the updated package? Is that enough to make sure all dependencies are
> fine? There are no race conditions with other people making updates at
> the same time?

No race condition, thanks to Git; but after rebasing a change on master,
it should be rebuilt and retested ideally.

> How can we do such a consistency check or have such a guarantee when
> we use multiple channels? Does we just rebuild every package in every
> non-Guix channel every time we update Guix to find out what breaks?

I'd suggest setting up a private Cuirass instance testing your channel.
That's actually easier painful than it sounds.

-- 
Thanks,
Maxim


      parent reply	other threads:[~2023-11-10 14:23 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-10 12:37 Guarantee of no broken dependencies? Peter Polidoro
2023-11-10 14:00 ` Ignas Lapėnas
2023-11-10 14:22 ` Maxim Cournoyer [this message]

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

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87il69eli7.fsf@gmail.com \
    --to=maxim.cournoyer@gmail.com \
    --cc=help-guix@gnu.org \
    --cc=peter@polidoro.io \
    /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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).