guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Should commits rather be buildable or small


From: dan
Subject: Re: Should commits rather be buildable or small
Date: Tue, 5 Mar 2024 12:32:39 +0800
User-agent: Mozilla Thunderbird

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]