From: dan <i@dan.games>
To: John Kehayias <john.kehayias@protonmail.com>,
Ricardo Wurmus <rekado@elephly.net>
Cc: Attila Lendvai <attila@lendvai.name>,
Philip McGrath <philip@philipmcgrath.com>,
Saku Laesvuori <saku@laesvuori.fi>,
Liliana Marie Prikler <liliana.prikler@gmail.com>,
guix-devel@gnu.org, 69461@debbugs.gnu.org
Subject: Re: Should commits rather be buildable or small
Date: Tue, 5 Mar 2024 12:32:39 +0800 [thread overview]
Message-ID: <4baeb31e-d8e7-4cef-944b-7214627d7905@dan.games> (raw)
In-Reply-To: <87jzmhad9s.fsf@protonmail.com>
Hi John,
On 3/5/2024 5:38 AM, John Kehayias wrote:
> In this case all the vulkan packages share a version through a variable name. I would assume packages wouldn't like mixed versions, but maybe some would work (I haven't tried). I'll be taking this series on mesa-updates with related changes, so the plan is that when it hits master there are no/few broken packages and full substitute coverage. So perhaps this makes this more of a style and convention question.
>
> Some options:
>
> 1. Essentially squash to one commit where all of vulkan is updated in one commit. The main upside is that nothing should break (within vulkan, dependents to be fixed as needed) and it shows as "one" change; the main downside is that the proposed changes are not just trivial version bumps. Harder to then disentangle as needed.
>
> 2. Make each commit updating a package, but don't use the variable %vulkan-sdk-version, updating each package with a version as it is done. Then do a commit where all the versions are replaced by the variable. This seems like unnecessary work to me and while it stops the obvious breaking (source hashes don't match once variable is updated but package hasn't yet) versions are still mixed which is likely a problem.
>
> 3. Go with the series as proposed: this means after the first commit for sure all other vulkan packages and dependents don't build, as the source hashes won't match until the commit that updates that package. Along with version mixing, this perhaps doesn't give you a helpful git bisect either?
>
> None are perfect. What do people think?
>
> My instinct is to go with the series as proposed (after review) accepting that there will be for sure builds failing if time traveling to the middle of the series. I don't think we can really avoid that anyway, as sometimes we only see an issue after a commit and it is fixed some time later. We could have a note in the first commit that this requires the next n commits to update vulkan packages. That might help if someone is on an intermediate commit and can see quickly in git log this note.
>
> Or perhaps we can note something is part of a dependent series when we make commits so this is easier for someone to tell in general?
I think to make each commit able to build, it's feasible to remove this
%vulkan-sdk-version variable. However, this doesn't fundamentally solve
the problem: when updating several packages in a patch series, some
packages might be broken since their dependencies are updated.
Another question is how should we treat vulkan packages. Some distros
package them on a per package basis (I see in Arch Linux, vulkan-headers
and vulkan-icd-loaders have version 1.3.276 while other packages like
spirv-headers has 1.3.275). I had to admit that I'm not that familiar
with vulkan packages, but I feel it's safer to keep their version
matched since each vulkan-sdk release makes sure every vulkan packages
are compatible with others. Thus, I prefer updating them in batch.
I think maybe it's a good option that we mark these commits are a series.
--
dan
next prev parent reply other threads:[~2024-03-05 4:33 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-08 8:42 Should commits rather be buildable or small Saku Laesvuori
2023-12-08 11:41 ` Tomas Volf
2023-12-08 12:05 ` Lars-Dominik Braun
2023-12-08 16:35 ` Felix Lechner via Development of GNU Guix and the GNU System distribution.
2023-12-08 15:44 ` Liliana Marie Prikler
2023-12-10 15:28 ` Saku Laesvuori
2023-12-10 15:50 ` Liliana Marie Prikler
2023-12-10 17:02 ` Attila Lendvai
2023-12-10 17:50 ` Ricardo Wurmus
2023-12-10 23:20 ` Attila Lendvai
2023-12-10 23:56 ` Philip McGrath
2023-12-11 10:51 ` Attila Lendvai
2023-12-11 11:51 ` Ricardo Wurmus
2024-03-04 21:38 ` John Kehayias
2024-03-05 4:32 ` dan [this message]
2024-03-05 5:19 ` Liliana Marie Prikler
2024-03-25 1:15 ` John Kehayias
2024-03-25 3:23 ` dan
2024-03-25 3:23 ` [bug#69461] " dan
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=4baeb31e-d8e7-4cef-944b-7214627d7905@dan.games \
--to=i@dan.games \
--cc=69461@debbugs.gnu.org \
--cc=attila@lendvai.name \
--cc=guix-devel@gnu.org \
--cc=john.kehayias@protonmail.com \
--cc=liliana.prikler@gmail.com \
--cc=philip@philipmcgrath.com \
--cc=rekado@elephly.net \
--cc=saku@laesvuori.fi \
/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 public inbox
https://git.savannah.gnu.org/cgit/guix.git
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).