[Ksummit-discuss] "Maintainer summit" invitation discussion

Lee Jones lee.jones at linaro.org
Tue Apr 25 09:10:58 UTC 2017


On Mon, 24 Apr 2017, Linus Walleij wrote:
> On Thu, Apr 20, 2017 at 3:46 PM, Daniel Vetter <daniel.vetter at ffwll.ch> wrote:
> 
> > Might just be good to chat a bit about when exactly a topic branch is
> > called for, and when exactly merging through each separate tree is
> > better. I get a bit the feeling that merging through separate trees is
> > done to make sure platforms use all the infrastructure correctly
> > (which is the topic below), but it seems like DT managed to get there
> > without merging things stricly only through a DT tree.
> 
> The typical case where we have to have a immutable topic branch
> is when there is a new API (or just a header file really) added in one
> patch and then a slew of patches need that API are sprinkled all over
> the kernel, so they by necessity need to base on this nexus commit.

[...]

> I think Lee Jones could contribute to discussions around this, as he's
> had the painful job to coordinate queue and quite a few of these hurdles
> due to the nature of MFD as a connection nexus for misc.
> 
> One thing he does is queue an immutable topic branch, announce it and
> let all affected subsystems pull it in, so that we (e.g. GPIO) can then
> refactor or apply local fixes in "our" subsystem from that point, even during
> the development cycle. It is pretty neat.

Multi-Function Devices (drivers/mfd) can waive a complicated web of
cross-subsystem/interdependent function calls, resources and time
sensitive H/W initialisation constraints.  Thus, when working with
such devices, the Maintainers of the children devices and I must work
together to avoid disruption to the user experience.

Our chosen method, or at least the one which causes the least pain, is
immutable branches.  Pull-requests to immutable branches are an
invaluable tool when coordination between 2 or more maintainers is
required.  The use-case does not always allow it, but we do try to
encapsulate all of the dependencies within a single branch, thus
minimising the chance of conflict during the merge-window.  My
MFD pull-request to Linus can contain between 1 and 7 immutable tags.

Although common place, immutable branches are still treated as the
last resort.  If patches can be taken via their respective subsystem
trees without fear of disruption, they are.  Contributors often
attempt to have their *new* cross-subsystem functionality taken in via
a single tree (requiring an immutable branch), purely because it's
convenient and the merge-time becomes deterministic, but we do not
allow that unless there are hard/unavoidable build-time dependencies.

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog


More information about the Ksummit-discuss mailing list