2 patch dependency

Brad Bishop bradleyb at fuzziesquirrel.com
Sat Nov 23 05:41:14 AEDT 2019


> On Nov 22, 2019, at 12:36 PM, Patrick Williams <patrick at stwcx.xyz> wrote:
> 
> Thanks Brad.
> 
> On Fri, Nov 22, 2019 at 10:44:16AM -0500, Brad Bishop wrote:
> 
>> A brief history lesson for any that aren’t aware - the original workflow was patches were submitted to openbmc/openbmc for subtrees where we are as far upstream as you can get.  We moved from that to the workflow we have today because of a desire of mine and others for de-centralized ownership of metadata.
>> 
>> To enable that I proposed the same process that the Yocto project uses to aggregate the various sub-projects into the poky distribution.  This is how we wound up with the workflow we have today.  In hindsight this was a mistake.
> 
> Can you elaborate briefly on the issues you've had with it?  

Well for one, the issue that started this thread - coreqs.  they are harder than they need to be with the current workflow.

Also the two step CI verification that comes with it is not good - it halves our already limited resources.  Although now that I think about it I don’t recall why we felt this was necessary…

Finally it is just awkward and lame to clone openbmc/openbmc, hack on it, and then have mess around with adding additional remotes and doing subtree cherry-picks, etc… to submit a patch.

> It seems 
> like many metas with subtree, many metas with repo, or mono-repo all have
> advantages and disadvantages and are just different ways people have
> attempted to skin the same animal.  

Could we not have all of them at the same time?

> 
>> The proposed change would simply be that we revert back to the old workflow, which was much simpler, and use the Gerrit plugin to implement the de-centralized ownership requirement.  There have been and will be a couple enhancements since we last used that workflow though:
>> 
>> 1 - I track poky/meta-openembedded head. Last time we tracked the latest released version.  This has worked fine; I am not aware of a single instance of upstream breaking us or causing any instability.
> 
> Is there any interest in supporting multiple Yocto releases at a time?

I don’t have a need for this.

> This would be one advantage of using repo.  

The word advantage implies repo would replace something else.  What do you want it to replace?

> You can have different
> manifest files for the different Yocto branches.  That way we can keep
> pointing to an LTS Yocto but with newer OpenBMC code (for people who
> might desire that when putting OpenBMC into production).

makes sense.

> 
> 
>> As far as repo goes - in my mind that is something completely separate.  If anyone wants to maintain a repo manifest somewhere I don’t have a problem with that.  It doesn’t have to have anything to do with the patch submission workflow.
> 
> I'm not really following how any of the options have a big impact on patch
> submission workflow.  

agreed.  In fact…is there anything you need from the community to start maintaining a repo manifest today?  I don’t think there is, is there?  Maybe a git repo to put it in?

> Most developers just contribute to whatever
> repository is considered the "master" of where they're making changes.
> If that is a subtree or a monorepo, does it really have much bearing?
> (I guess it has impact in the cases where we need to span what are
> currently subtrees?)
> 
> Having a repo manifest simplifies two things:
>    1. Implementation of cross-repo CI (and the topic-based testing I
>       mentioned) because there is a clear assembling of all the git
>       repositories that might be impacted by a topic.
> 
>    2. A mechanism for developers to "get all the code".  I've heard
>       complaints of developers having to manually assemble a collection
>       of git-clones for all the different sub-projects they tend to
>       work on.  A maintained manifest of all the openbmc/* repositories
>       would alleviate this.

I think you are driving at a couple things:

1 - patch submitters should continue to submit patches to meta-*, poky, meta-openembedded, etc.
2 - you start maintaining a repo manifest.
3 - everyone will abandon the current monorepo composed of subtrees.

Do I have it right?

What I’m asking for instead is:

1 - patch submitters submit patches to openbmc/openbmc (unless there is an upstream community)
2 - patches (immediately) find their way into meta-* via automation
3 - you start maintaining a repo manifest
4 - I continue to maintain a monorepo composed of subtrees (the ones with upstream communities) & directly submitted patches

thx - brad


More information about the openbmc mailing list