* Managing openbmc with subtree @ 2018-07-19 20:08 Dave Cobbley 2018-07-20 17:42 ` Dave Cobbley 2018-07-20 17:43 ` Brad Bishop 0 siblings, 2 replies; 15+ messages in thread From: Dave Cobbley @ 2018-07-19 20:08 UTC (permalink / raw) To: Brad Bishop; +Cc: OpenBMC Maillist Brad, Trying to identify the appropriate work-flowfor using git subtree to maintain all the meta-data under openbmc. I'm imagining something like: 17 subtrees ** indicates an actual folder, not subtree. meta-openembedded/ meta-raspberrypi/ meta-virtualization/ poky/ **meta-openbmc-machines/ ** meta-arm ├── common └── meta-qualcomm **meta-evb ├── meta-evb-aspeed ├── meta-evb-nuvoton ├── meta-evb-raspberrypi **meta-openpower ├── meta-ibm ├── meta-ingrasys ├── meta-inventec ├── meta-rackspace **meta-x86 ├── meta-intel ├── meta-mellanox ├── meta-portwell └── meta-quanta **meta-openbmc-bsp/ ├── meta-aspeed ├── meta-ibm ├── meta-nuvoton meta-phosphor/ I began working on the workflows that a typical dev would do to check code in and have Jenkins automatically update the top level repo with the new additions, but run into troublewith a merge commit. 1. git clone openbmc-openbmc 2. #make changes 3. git add 4. git commit... 5. git subtree push --prefix=path/to/local/subtree ssh://openbmc.gerrit/openbmc/<subtree_name> HEAD:refs/for/master At this point, the build CI would run it's normal operations and code review would take place. Following a +2 and submit, Jenkins would: 1. cd openbmc-openbmc 2. git pull 3. git subtree pull --prefix=path/to/subtree --squash <remote> master #For all given subtrees However at this point, I end up with two commits in the parent repo, one with the squashed changes, and a merge commit. I don't know how to do this operation without ending up with a merge commit, do you have any advice here? I could be totally overthinking the whole strategy, so any advice and direction is much appreciated! Along those same lines, is subtree still the correct tool? I hear repo works for a lot of projects, Yocto uses https://wiki.yoctoproject.org/wiki/Combo-layer. Thanks, -Dave ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Managing openbmc with subtree 2018-07-19 20:08 Managing openbmc with subtree Dave Cobbley @ 2018-07-20 17:42 ` Dave Cobbley 2018-07-20 17:43 ` Brad Bishop 1 sibling, 0 replies; 15+ messages in thread From: Dave Cobbley @ 2018-07-20 17:42 UTC (permalink / raw) To: openbmc The closest paradigm I can figure is this: +---------+ | +-------------+ | Dev | | | Jenkins | +---------+ | +-------------+ +--------------------------------------------------------------------------------------------------------------+ 1. Modify subtree | 2. git add/commit | 3. git push gerrit HEAD:refs/for/master | | Once +2 is given | 4. git subtree pull --prefix=path/to/subtree <subtree> master | 5. git checkout <ref> | 6. git reset --soft ~1 | 7. git commit <with message from original author> | 8. git add/commit | 9. git push 10. git pull --rebase | | | | + It seems wrong to do a reset --soft. Git must have a better way of doing this with subtrees. Thanks, -Dave On 07/19/2018 01:08 PM, Dave Cobbley wrote: > Brad, > Trying to identify the appropriate work-flowfor using git subtree to > maintain all the meta-data under openbmc. > I'm imagining something like: > > 17 subtrees > ** indicates an actual folder, not subtree. > meta-openembedded/ > meta-raspberrypi/ > meta-virtualization/ > poky/ > **meta-openbmc-machines/ > ** meta-arm > ├── common > └── meta-qualcomm > **meta-evb > ├── meta-evb-aspeed > ├── meta-evb-nuvoton > ├── meta-evb-raspberrypi > **meta-openpower > ├── meta-ibm > ├── meta-ingrasys > ├── meta-inventec > ├── meta-rackspace > **meta-x86 > ├── meta-intel > ├── meta-mellanox > ├── meta-portwell > └── meta-quanta > **meta-openbmc-bsp/ > ├── meta-aspeed > ├── meta-ibm > ├── meta-nuvoton > meta-phosphor/ > > > I began working on the workflows that a typical dev would do to check > code in and have Jenkins automatically update the top level repo with > the new additions, but run into troublewith a merge commit. > > 1. git clone openbmc-openbmc > 2. #make changes > 3. git add > 4. git commit... > 5. git subtree push --prefix=path/to/local/subtree > ssh://openbmc.gerrit/openbmc/<subtree_name> HEAD:refs/for/master > > At this point, the build CI would run it's normal operations and code > review would take place. > Following a +2 and submit, Jenkins would: > > 1. cd openbmc-openbmc > 2. git pull > 3. git subtree pull --prefix=path/to/subtree --squash <remote> master > #For all given subtrees > > However at this point, I end up with two commits in the parent repo, > one with the squashed changes, and a merge commit. > I don't know how to do this operation without ending up with a merge > commit, do you have any advice here? > > I could be totally overthinking the whole strategy, so any advice and > direction is much appreciated! > Along those same lines, is subtree still the correct tool? I hear repo > works for a lot of projects, Yocto uses > https://wiki.yoctoproject.org/wiki/Combo-layer. > > Thanks, > -Dave ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Managing openbmc with subtree 2018-07-19 20:08 Managing openbmc with subtree Dave Cobbley 2018-07-20 17:42 ` Dave Cobbley @ 2018-07-20 17:43 ` Brad Bishop 2018-07-20 17:47 ` Brad Bishop 2018-08-01 21:53 ` Dave Cobbley 1 sibling, 2 replies; 15+ messages in thread From: Brad Bishop @ 2018-07-20 17:43 UTC (permalink / raw) To: Dave Cobbley; +Cc: OpenBMC Maillist > On Jul 19, 2018, at 4:08 PM, Dave Cobbley <david.j.cobbley@linux.intel.com> wrote: > > Brad, > Trying to identify the appropriate work-flowfor using git subtree to maintain all the meta-data under openbmc. > I'm imagining something like: > > 17 subtrees > ** indicates an actual folder, not subtree. > meta-openembedded/ > meta-raspberrypi/ > meta-virtualization/ > poky/ > **meta-openbmc-machines/ > ** meta-arm > ├── common > └── meta-qualcomm > **meta-evb > ├── meta-evb-aspeed > ├── meta-evb-nuvoton > ├── meta-evb-raspberrypi > **meta-openpower > ├── meta-ibm > ├── meta-ingrasys > ├── meta-inventec > ├── meta-rackspace > **meta-x86 > ├── meta-intel > ├── meta-mellanox > ├── meta-portwell > └── meta-quanta > **meta-openbmc-bsp/ > ├── meta-aspeed > ├── meta-ibm > ├── meta-nuvoton > meta-phosphor/ > This is a great picture, thanks. My longer-term vision is a bit more like this: meta-openembedded/ meta-virtualization/ poky/ meta-arm/ meta-openpower/ meta-x86/ meta-phosphor/ Or even ditching Yocto and just using OE-Core/bitbake directly: meta-openembedded/ meta-virtualization/ meta/ bitbake/ meta-arm/ meta-openpower/ meta-x86/ meta-phosphor/ I could understand a case for including the BSPs in the base distro: meta-openembedded/ meta-virtualization/ meta/ bitbake/ meta-arm/ meta-openpower/ meta-x86/ meta-phosphor/ meta-aspeed/ meta-ibm/ -> for our SOCs only, not servers meta-nuvoton/ meta-raspberrypi/ The main thing to notice with all of these is I’ve removed meta-foo from meta-openpower, meta-x86 and meta-arm. This lets people have arm, power and x86 servers all in the same layer or repo if they want: meta-xyzcorp/ |— meta-arm-server/ |- meta-x86-server/ |- meta-power-server/ Actually I’ve removed them from the repository completely. I think we need some kind of reference platform(s) just like Yocto. Otherwise we are going to wind up with too many server-layers in the distro. Another idea is to scrap meta-openpower, meta-arm and meta-x86 and put all that content in meta-phosphor: meta-openembedded/ meta-virtualization/ meta/ bitbake/ meta-phosphor/ What do you think of all this? There is a lot of change here, so some staging would be required. Obviously all ideas are debatable. > > I began working on the workflows that a typical dev would do to check code in and have Jenkins automatically update the top level repo with the new additions, but run into troublewith a merge commit. > > 1. git clone openbmc-openbmc > 2. #make changes > 3. git add > 4. git commit... > 5. git subtree push --prefix=path/to/local/subtree ssh://openbmc.gerrit/openbmc/<subtree_name> HEAD:refs/for/master Looks good to me. This should be pretty similar to the workflow for OE-Core -> Poky right? > > At this point, the build CI would run it's normal operations and code review would take place. > Following a +2 and submit, Jenkins would: > > 1. cd openbmc-openbmc > 2. git pull > 3. git subtree pull --prefix=path/to/subtree --squash <remote> master #For all given subtrees I think I read somewhere that Poky has another verification and approval step here, before merging OE-Core/bitbake patches into Poky. Do we want to be like Poky and require testing and/or maintainer approval here? > > However at this point, I end up with two commits in the parent repo, one with the squashed changes, and a merge commit. > I don't know how to do this operation without ending up with a merge commit, do you have any advice here? To avoid the merge you can skip the subtree pull (which does a merge) and instead generate a patch: git cherry-pick —strategy=subtree -Xsubtree=path/to/subtree <squash-commit> > > I could be totally overthinking the whole strategy, I don’t think so. Its par for the course I think for an OE based distribution. > so any advice and direction is much appreciated! > Along those same lines, is subtree still the correct tool? I think so. I had a look at Combo-layer awhile back…it seems to do the same thing as git cherry-pick, that is, generate patches and apply them to the parent repository. It does layer some features on top of that but I haven’t missed those yet. They are similar enough I feel we could switch back and forth if need be. I’m guessing Combo-layer was written before subtrees had the support they do today in Git. > I hear repo works for a lot of projects, Yocto uses https://wiki.yoctoproject.org/wiki/Combo-layer. > > Thanks, > -Dave Thanks for kicking off this conversation! -brad ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Managing openbmc with subtree 2018-07-20 17:43 ` Brad Bishop @ 2018-07-20 17:47 ` Brad Bishop 2018-08-01 21:53 ` Dave Cobbley 1 sibling, 0 replies; 15+ messages in thread From: Brad Bishop @ 2018-07-20 17:47 UTC (permalink / raw) To: Dave Cobbley; +Cc: OpenBMC Maillist > On Jul 20, 2018, at 1:43 PM, Brad Bishop <bradleyb@fuzziesquirrel.com> wrote: >> On Jul 19, 2018, at 4:08 PM, Dave Cobbley <david.j.cobbley@linux.intel.com> wrote: >> >> However at this point, I end up with two commits in the parent repo, one with the squashed changes, and a merge commit. >> I don't know how to do this operation without ending up with a merge commit, do you have any advice here? > > To avoid the merge you can skip the subtree pull (which does a merge) and > instead generate a patch: > > git cherry-pick —strategy=subtree -Xsubtree=path/to/subtree <squash-commit> Oops. You’ll still have to do the pull and _then_ generate a patch and discard the merge commit. Have a look here: https://github.com/openbmc/openbmc/blob/master/import-layers/HOWTO-update.md ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Managing openbmc with subtree 2018-07-20 17:43 ` Brad Bishop 2018-07-20 17:47 ` Brad Bishop @ 2018-08-01 21:53 ` Dave Cobbley 2018-08-06 17:30 ` Ed Tanous 2018-08-06 18:47 ` Brad Bishop 1 sibling, 2 replies; 15+ messages in thread From: Dave Cobbley @ 2018-08-01 21:53 UTC (permalink / raw) To: openbmc; +Cc: Brad Bishop, Andrew Geissler I posted an initial draft of what permissions could look like in the top level meta-data. https://gerrit.openbmc-project.xyz/#/c/openbmc/openbmc/+/11730/ This will require additional people receive +2 permissions, but the OWNERS plugin will ensure that a patch cannot get merged unless it has +2 from the appropriate people. Thanks, -Dave >> On Jul 19, 2018, at 4:08 PM, Dave Cobbley <david.j.cobbley@linux.intel.com> wrote: >> >> Brad, >> Trying to identify the appropriate work-flowfor using git subtree to maintain all the meta-data under openbmc. >> I'm imagining something like: >> >> 17 subtrees >> ** indicates an actual folder, not subtree. >> meta-openembedded/ >> meta-raspberrypi/ >> meta-virtualization/ >> poky/ >> **meta-openbmc-machines/ >> ** meta-arm >> ├── common >> └── meta-qualcomm >> **meta-evb >> ├── meta-evb-aspeed >> ├── meta-evb-nuvoton >> ├── meta-evb-raspberrypi >> **meta-openpower >> ├── meta-ibm >> ├── meta-ingrasys >> ├── meta-inventec >> ├── meta-rackspace >> **meta-x86 >> ├── meta-intel >> ├── meta-mellanox >> ├── meta-portwell >> └── meta-quanta >> **meta-openbmc-bsp/ >> ├── meta-aspeed >> ├── meta-ibm >> ├── meta-nuvoton >> meta-phosphor/ >> > This is a great picture, thanks. My longer-term vision is a bit more like this: > > meta-openembedded/ > meta-virtualization/ > poky/ > meta-arm/ > meta-openpower/ > meta-x86/ > meta-phosphor/ > > Or even ditching Yocto and just using OE-Core/bitbake directly: > > meta-openembedded/ > meta-virtualization/ > meta/ > bitbake/ > meta-arm/ > meta-openpower/ > meta-x86/ > meta-phosphor/ > > I could understand a case for including the BSPs in the base distro: > > meta-openembedded/ > meta-virtualization/ > meta/ > bitbake/ > meta-arm/ > meta-openpower/ > meta-x86/ > meta-phosphor/ > meta-aspeed/ > meta-ibm/ -> for our SOCs only, not servers > meta-nuvoton/ > meta-raspberrypi/ > > The main thing to notice with all of these is I’ve removed meta-foo from > meta-openpower, meta-x86 and meta-arm. This lets people have arm, power > and x86 servers all in the same layer or repo if they want: > > meta-xyzcorp/ > |— meta-arm-server/ > |- meta-x86-server/ > |- meta-power-server/ > > Actually I’ve removed them from the repository completely. I think we > need some kind of reference platform(s) just like Yocto. Otherwise we are > going to wind up with too many server-layers in the distro. > > Another idea is to scrap meta-openpower, meta-arm and meta-x86 > and put all that content in meta-phosphor: > > meta-openembedded/ > meta-virtualization/ > meta/ > bitbake/ > meta-phosphor/ > > What do you think of all this? There is a lot of change here, so some > staging would be required. Obviously all ideas are debatable. > >> I began working on the workflows that a typical dev would do to check code in and have Jenkins automatically update the top level repo with the new additions, but run into troublewith a merge commit. >> >> 1. git clone openbmc-openbmc >> 2. #make changes >> 3. git add >> 4. git commit... >> 5. git subtree push --prefix=path/to/local/subtree ssh://openbmc.gerrit/openbmc/<subtree_name> HEAD:refs/for/master > Looks good to me. This should be pretty similar to the workflow > for OE-Core -> Poky right? > >> At this point, the build CI would run it's normal operations and code review would take place. >> Following a +2 and submit, Jenkins would: >> >> 1. cd openbmc-openbmc >> 2. git pull >> 3. git subtree pull --prefix=path/to/subtree --squash <remote> master #For all given subtrees > I think I read somewhere that Poky has another verification and approval > step here, before merging OE-Core/bitbake patches into Poky. Do we want > to be like Poky and require testing and/or maintainer approval here? > >> However at this point, I end up with two commits in the parent repo, one with the squashed changes, and a merge commit. >> I don't know how to do this operation without ending up with a merge commit, do you have any advice here? > To avoid the merge you can skip the subtree pull (which does a merge) and > instead generate a patch: > > git cherry-pick —strategy=subtree -Xsubtree=path/to/subtree <squash-commit> > >> I could be totally overthinking the whole strategy, > I don’t think so. Its par for the course I think for an OE based distribution. > >> so any advice and direction is much appreciated! >> Along those same lines, is subtree still the correct tool? > I think so. I had a look at Combo-layer awhile back…it seems to do the > same thing as git cherry-pick, that is, generate patches and apply them > to the parent repository. It does layer some features on top of that > but I haven’t missed those yet. They are similar enough I feel we could > switch back and forth if need be. I’m guessing Combo-layer was written > before subtrees had the support they do today in Git. > >> I hear repo works for a lot of projects, Yocto uses https://wiki.yoctoproject.org/wiki/Combo-layer. >> >> Thanks, >> -Dave > Thanks for kicking off this conversation! > > -brad ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Managing openbmc with subtree 2018-08-01 21:53 ` Dave Cobbley @ 2018-08-06 17:30 ` Ed Tanous 2018-08-06 18:47 ` Brad Bishop 1 sibling, 0 replies; 15+ messages in thread From: Ed Tanous @ 2018-08-06 17:30 UTC (permalink / raw) To: openbmc +1 This looks like exactly what I'd like to see moving forward for the repo management as a whole. individual meta layers can be broken out, and don't need to wait on merges to the top layer, which will likely take more time than simply applying it to a single layer or product. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Managing openbmc with subtree 2018-08-01 21:53 ` Dave Cobbley 2018-08-06 17:30 ` Ed Tanous @ 2018-08-06 18:47 ` Brad Bishop 2018-08-07 17:16 ` Dave Cobbley 1 sibling, 1 reply; 15+ messages in thread From: Brad Bishop @ 2018-08-06 18:47 UTC (permalink / raw) To: Dave Cobbley, prashanth.giri, sachit_bakshi; +Cc: OpenBMC Maillist > On Aug 1, 2018, at 5:53 PM, Dave Cobbley <david.j.cobbley@linux.intel.com> wrote: > > I posted an initial draft of what permissions could look like in the top level meta-data. > > https://gerrit.openbmc-project.xyz/#/c/openbmc/openbmc/+/11730/ At first I was OK with this idea but instead of rushing to something I’d like to slow down for a sec and be sure we don’t like the other options. My issue with 11730 is that we wind up with different workflows for updating the different subtrees - for example updating meta-virtualization is different than updating meta-phosphor. If we go back to your original workflow where the developer pushes directly to the subtree repository instead of openbmc/openbmc, recall we were stuck on how to do it: >>> However at this point, I end up with two commits in the parent repo, one with the squashed changes, and a merge commit. >>> I don't know how to do this operation without ending up with a merge commit, do you have any advice here? >> To avoid the merge you can skip the subtree pull (which does a merge) and >> instead generate a patch: >> >> git cherry-pick —strategy=subtree -Xsubtree=path/to/subtree <squash-commit> Elaborating on my suggestion from before - here is a possible workflow. Consider a repository with two remotes: $ cat ~/.ssh/config Host openbmc.gerrit Hostname gerrit.openbmc-project.xyz Port 29418 User user IdentityFile ~/.ssh/my-gerrit-key $ git remote -v meta-phosphor-gerrit ssh://openbmc.gerrit/openbmc/meta-phosphor (fetch) meta-phosphor-gerrit ssh://openbmc.gerrit/openbmc/meta-phosphor (push) openbmc-gerrit ssh://openbmc.gerrit/openbmc/openbmc (fetch) openbmc-gerrit ssh://openbmc.gerrit/openbmc/openbmc (push) You can make and commit changes as usual. When it comes time to push for review: $ git checkout -b phosphor-master meta-phosphor-gerrit/master $ git cherry-pick —-strategy=subtree -Xsubtree=meta-phosphor <openbmc/openbmc-sha> $ git push meta-phosphor-gerrit HEAD:refs/for/master This gives us the same process for all subtrees, whether or not they are openbmc hosted subtrees. It also does not require people hacking on a subtree to clone OpenBMC when it doesn’t make sense for them to do that, such as someone just using the Aspeed BSP layer. Granted it is a couple extra commands, but it seems like something that could be scripted pretty easily. Thoughts? -brad > > This will require additional people receive +2 permissions, but the OWNERS plugin will ensure that a patch cannot get merged unless it has +2 from the appropriate people. > > Thanks, > -Dave ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Managing openbmc with subtree 2018-08-06 18:47 ` Brad Bishop @ 2018-08-07 17:16 ` Dave Cobbley 2018-08-07 19:30 ` Brad Bishop 0 siblings, 1 reply; 15+ messages in thread From: Dave Cobbley @ 2018-08-07 17:16 UTC (permalink / raw) To: openbmc I do agree that we can find a scriptable solution to this, however, I feel using the OWNERS plugin provides a much easier workflow for all developers, i.e. nothing changes from their perspective. Additionally, we can still subtree on the back end after code is successfully merged into master. Thanks, -Dave On 08/06/2018 11:47 AM, Brad Bishop wrote: >> On Aug 1, 2018, at 5:53 PM, Dave Cobbley <david.j.cobbley@linux.intel.com> wrote: >> >> I posted an initial draft of what permissions could look like in the top level meta-data. >> >> https://gerrit.openbmc-project.xyz/#/c/openbmc/openbmc/+/11730/ > At first I was OK with this idea but instead of rushing to something > I’d like to slow down for a sec and be sure we don’t like the other > options. > > My issue with 11730 is that we wind up with different workflows for > updating the different subtrees - for example updating meta-virtualization > is different than updating meta-phosphor. > > If we go back to your original workflow where the developer pushes directly > to the subtree repository instead of openbmc/openbmc, recall we were stuck > on how to do it: > >>>> However at this point, I end up with two commits in the parent repo, one with the squashed changes, and a merge commit. >>>> I don't know how to do this operation without ending up with a merge commit, do you have any advice here? >>> To avoid the merge you can skip the subtree pull (which does a merge) and >>> instead generate a patch: >>> >>> git cherry-pick —strategy=subtree -Xsubtree=path/to/subtree <squash-commit> > > Elaborating on my suggestion from before - here is a possible workflow. > > Consider a repository with two remotes: > > $ cat ~/.ssh/config > Host openbmc.gerrit > Hostname gerrit.openbmc-project.xyz > Port 29418 > User user > IdentityFile ~/.ssh/my-gerrit-key > > $ git remote -v > meta-phosphor-gerrit ssh://openbmc.gerrit/openbmc/meta-phosphor (fetch) > meta-phosphor-gerrit ssh://openbmc.gerrit/openbmc/meta-phosphor (push) > openbmc-gerrit ssh://openbmc.gerrit/openbmc/openbmc (fetch) > openbmc-gerrit ssh://openbmc.gerrit/openbmc/openbmc (push) > > You can make and commit changes as usual. When it comes time to push for > review: > > $ git checkout -b phosphor-master meta-phosphor-gerrit/master > $ git cherry-pick —-strategy=subtree -Xsubtree=meta-phosphor <openbmc/openbmc-sha> > $ git push meta-phosphor-gerrit HEAD:refs/for/master > > This gives us the same process for all subtrees, whether or not they are > openbmc hosted subtrees. It also does not require people hacking on a > subtree to clone OpenBMC when it doesn’t make sense for them to do that, > such as someone just using the Aspeed BSP layer. > > Granted it is a couple extra commands, but it seems like something that could > be scripted pretty easily. Thoughts? > > -brad > >> This will require additional people receive +2 permissions, but the OWNERS plugin will ensure that a patch cannot get merged unless it has +2 from the appropriate people. >> >> Thanks, >> -Dave ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Managing openbmc with subtree 2018-08-07 17:16 ` Dave Cobbley @ 2018-08-07 19:30 ` Brad Bishop 2018-08-08 22:14 ` Dave Cobbley 0 siblings, 1 reply; 15+ messages in thread From: Brad Bishop @ 2018-08-07 19:30 UTC (permalink / raw) To: Dave Cobbley; +Cc: OpenBMC Maillist, prashanth.giri, sachit_bakshi > On Aug 7, 2018, at 1:16 PM, Dave Cobbley <david.j.cobbley@linux.intel.com> wrote: > > I do agree that we can find a scriptable solution to this, however, I feel using the OWNERS plugin provides a much easier workflow for all developers, i.e. nothing changes from their perspective. Hrm, while I agree that the OWNERS plugin preserves the existing workflow I’m not convinced that is the best path forward. >> This gives us the same process for all subtrees, whether or not they are >> openbmc hosted subtrees. It also does not require people hacking on a >> subtree to clone OpenBMC when it doesn’t make sense for them to do that, >> such as someone just using the Aspeed BSP layer. I still have these concerns. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Managing openbmc with subtree 2018-08-07 19:30 ` Brad Bishop @ 2018-08-08 22:14 ` Dave Cobbley 2018-08-09 20:16 ` Brad Bishop 0 siblings, 1 reply; 15+ messages in thread From: Dave Cobbley @ 2018-08-08 22:14 UTC (permalink / raw) To: Brad Bishop; +Cc: openbmc, prashanth.giri, sachit_bakshi >> On Aug 7, 2018, at 1:16 PM, Dave Cobbley <david.j.cobbley@linux.intel.com> wrote: >> >> I do agree that we can find a scriptable solution to this, however, I feel using the OWNERS plugin provides a much easier workflow for all developers, i.e. nothing changes from their perspective. > Hrm, while I agree that the OWNERS plugin preserves the existing workflow > I’m not convinced that is the best path forward. I suppose it does only give us one of the two goals, where as moving straight to subtrees fulfills all of the goals. > >>> This gives us the same process for all subtrees, whether or not they are >>> openbmc hosted subtrees. It also does not require people hacking on a >>> subtree to clone OpenBMC when it doesn’t make sense for them to do that, >>> such as someone just using the Aspeed BSP layer. > > I still have these concerns. I understand your concerns and agree - Here is what I would propose for the subtree folder structure: Splat * represents a subtree Yocto & more: import-layers/ *meta-openembedded/ *meta-virtualization/ *poky/ *meta-security/ BSP: meta-openbmc-bsp/ *meta-ibm/ *meta-aspeed/ *meta-nuvoton/ *meta-raspberrypi/ MACHINES: meta-openbmc-machines/ meta-arm/ *meta-qualcomm/ meta-openpower/ * meta-ibm/ * meta-ingrasys/ * meta-inventec/ * meta-rackspace/ meta-x86/ *meta-intel/ *meta-mellanox/ *meta-portwell/ *meta-quanta/ REFERENCE: meta-phosphor/ -Dave ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Managing openbmc with subtree 2018-08-08 22:14 ` Dave Cobbley @ 2018-08-09 20:16 ` Brad Bishop 2018-08-09 22:23 ` Dave Cobbley 0 siblings, 1 reply; 15+ messages in thread From: Brad Bishop @ 2018-08-09 20:16 UTC (permalink / raw) To: Dave Cobbley; +Cc: openbmc, prashanth.giri, sachit_bakshi > On Aug 8, 2018, at 6:14 PM, Dave Cobbley <david.j.cobbley@linux.intel.com> wrote: > > >>> On Aug 7, 2018, at 1:16 PM, Dave Cobbley <david.j.cobbley@linux.intel.com> wrote: >>> >>> I do agree that we can find a scriptable solution to this, however, I feel using the OWNERS plugin provides a much easier workflow for all developers, i.e. nothing changes from their perspective. >> Hrm, while I agree that the OWNERS plugin preserves the existing workflow >> I’m not convinced that is the best path forward. > I suppose it does only give us one of the two goals, where as moving straight to subtrees fulfills all of the goals. >> >>>> This gives us the same process for all subtrees, whether or not they are >>>> openbmc hosted subtrees. It also does not require people hacking on a >>>> subtree to clone OpenBMC when it doesn’t make sense for them to do that, >>>> such as someone just using the Aspeed BSP layer. >> >> I still have these concerns. > I understand your concerns and agree Is this an agreement to my proposed workflow? For reference the proposal was distro hackers could have an openbmc/openbmc repo with multiple remotes, one for the distro and one for each subtree and then: >>>> $ git checkout -b phosphor-master meta-phosphor-gerrit/master >>>> $ git cherry-pick —-strategy=subtree -Xsubtree=meta-phosphor <openbmc/openbmc-sha> >>>> $ git push meta-phosphor-gerrit HEAD:refs/for/master > > - Here is what I would propose for the subtree folder structure: > > Splat * represents a subtree > > Yocto & more: > import-layers/ > *meta-openembedded/ > *meta-virtualization/ > *poky/ > *meta-security/ Would it make sense to put meta-* directly in the root, along with all our other subtrees? I don’t see the point in calling them out as upstream trees - I’d like to see some or all of our project meta trees become hosted elsewhere someday, much in the same way as meta-virt for example. > > BSP: > meta-openbmc-bsp/ > *meta-ibm/ > *meta-aspeed/ > *meta-nuvoton/ > *meta-raspberrypi/ lgtm > > MACHINES: > meta-openbmc-machines/ > meta-arm/ > *meta-qualcomm/ > meta-openpower/ > * meta-ibm/ > * meta-ingrasys/ > * meta-inventec/ > * meta-rackspace/ > meta-x86/ > *meta-intel/ > *meta-mellanox/ > *meta-portwell/ > *meta-quanta/ I’d like to get away from this and just put the company subtrees at the root. That way meta-xyzcorp could support both an x86 and an arm server. > > REFERENCE: > meta-phosphor/ I’d suggest the arch metas here, at the root. Honestly I’d like to get to a point where all the arch layers are just merged into meta-phosphor and we can say meta-phosphor supports x86, power, and arm servers (along with TORSes). But we can save that for another day. > > > -Dave So to net these all out: *poky/ *meta-openembedded/ *meta-virtualization/ *meta-security/ *meta-arm/ *meta-openpower/ *meta-x86/ *meta-phosphor/ *meta-aspeed/ *meta-nuvoton/ *meta-raspberrypi/ *meta-intel/ *meta-mellanox/ *meta-portwell/ *meta-quanta/ *meta-ibm/ *meta-ingrasys/ *meta-inventec/ *meta-rackspace/ *meta-qualcomm/ ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Managing openbmc with subtree 2018-08-09 20:16 ` Brad Bishop @ 2018-08-09 22:23 ` Dave Cobbley 2018-08-10 0:31 ` Dave Cobbley 0 siblings, 1 reply; 15+ messages in thread From: Dave Cobbley @ 2018-08-09 22:23 UTC (permalink / raw) To: Brad Bishop; +Cc: openbmc, prashanth.giri, sachit_bakshi On 08/09/2018 01:16 PM, Brad Bishop wrote: >> On Aug 8, 2018, at 6:14 PM, Dave Cobbley <david.j.cobbley@linux.intel.com> wrote: >> >> >>>> On Aug 7, 2018, at 1:16 PM, Dave Cobbley <david.j.cobbley@linux.intel.com> wrote: >>>> >>>> I do agree that we can find a scriptable solution to this, however, I feel using the OWNERS plugin provides a much easier workflow for all developers, i.e. nothing changes from their perspective. >>> Hrm, while I agree that the OWNERS plugin preserves the existing workflow >>> I’m not convinced that is the best path forward. >> I suppose it does only give us one of the two goals, where as moving straight to subtrees fulfills all of the goals. >>>>> This gives us the same process for all subtrees, whether or not they are >>>>> openbmc hosted subtrees. It also does not require people hacking on a >>>>> subtree to clone OpenBMC when it doesn’t make sense for them to do that, >>>>> such as someone just using the Aspeed BSP layer. >>> I still have these concerns. >> I understand your concerns and agree > Is this an agreement to my proposed workflow? I am running through the workflows locally to ensure the paradigm works as planned. I have verified that the commit and subtree branch/push works - still working through how a dev would go work on something else, and then jump back into the feature to update the commit. > > For reference the proposal was distro hackers could have an openbmc/openbmc repo > with multiple remotes, one for the distro and one for each subtree and then: > >>>>> $ git checkout -b phosphor-master meta-phosphor-gerrit/master >>>>> $ git cherry-pick —-strategy=subtree -Xsubtree=meta-phosphor <openbmc/openbmc-sha> >>>>> $ git push meta-phosphor-gerrit HEAD:refs/for/master >> - Here is what I would propose for the subtree folder structure: >> >> Splat * represents a subtree >> >> Yocto & more: >> import-layers/ >> *meta-openembedded/ >> *meta-virtualization/ >> *poky/ >> *meta-security/ > Would it make sense to put meta-* directly in the root, along with all our other > subtrees? I don’t see the point in calling them out as upstream trees - I’d like > to see some or all of our project meta trees become hosted elsewhere someday, > much in the same way as meta-virt for example. > Sure I believe that is fine. I like to put things in boxes so that habit is bleeding through :) >> BSP: >> meta-openbmc-bsp/ >> *meta-ibm/ >> *meta-aspeed/ >> *meta-nuvoton/ >> *meta-raspberrypi/ > lgtm > >> MACHINES: >> meta-openbmc-machines/ >> meta-arm/ >> *meta-qualcomm/ >> meta-openpower/ >> * meta-ibm/ >> * meta-ingrasys/ >> * meta-inventec/ >> * meta-rackspace/ >> meta-x86/ >> *meta-intel/ >> *meta-mellanox/ >> *meta-portwell/ >> *meta-quanta/ > I’d like to get away from this and just put the company subtrees at the root. > That way meta-xyzcorp could support both an x86 and an arm server. Makes sense. > >> REFERENCE: >> meta-phosphor/ > I’d suggest the arch metas here, at the root. Honestly I’d like to get to a point > where all the arch layers are just merged into meta-phosphor and we can say > meta-phosphor supports x86, power, and arm servers (along with TORSes). But we can > save that for another day. > >> >> -Dave > So to net these all out: > > *poky/ > > *meta-openembedded/ > *meta-virtualization/ > *meta-security/ > *meta-arm/ > *meta-openpower/ > *meta-x86/ > *meta-phosphor/ > > *meta-aspeed/ > *meta-nuvoton/ > *meta-raspberrypi/ > > *meta-intel/ > *meta-mellanox/ > *meta-portwell/ > *meta-quanta/ > *meta-ibm/ > *meta-ingrasys/ > *meta-inventec/ > *meta-rackspace/ > *meta-qualcomm/ Just to clarify - *meta-intel would contain our machine specific configurations for particular intel platforms, while *meta-x86 would contain image-like things that are generic to all x86 server platforms? Not sure I understand why meta-x86 exists if meta-intel/mellanox/portwell/quanta are all on the top level. Meta-x86 was simply a folder in my proposal. -Dave ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Managing openbmc with subtree 2018-08-09 22:23 ` Dave Cobbley @ 2018-08-10 0:31 ` Dave Cobbley 2018-08-10 3:17 ` Brad Bishop 0 siblings, 1 reply; 15+ messages in thread From: Dave Cobbley @ 2018-08-10 0:31 UTC (permalink / raw) To: Brad Bishop; +Cc: openbmc, prashanth.giri, sachit_bakshi >> So to net these all out: >> >> *poky/ >> >> *meta-openembedded/ >> *meta-virtualization/ >> *meta-security/ >> *meta-arm/ >> *meta-openpower/ >> *meta-x86/ >> *meta-phosphor/ >> >> *meta-aspeed/ >> *meta-nuvoton/ >> *meta-raspberrypi/ >> >> *meta-intel/ >> *meta-mellanox/ >> *meta-portwell/ >> *meta-quanta/ >> *meta-ibm/ >> *meta-ingrasys/ >> *meta-inventec/ >> *meta-rackspace/ >> *meta-qualcomm/ > Just to clarify - *meta-intel would contain our machine specific > configurations for particular intel platforms, while *meta-x86 would > contain image-like things that are generic to all x86 server platforms? > Not sure I understand why meta-x86 exists if > meta-intel/mellanox/portwell/quanta are all on the top level. Meta-x86 > was simply a folder in my proposal. Looking at this further, I believe I understand the difference: meta-intel is our actual baseboard products meta-x86 is all things that relate specifically to baseboards that contain x86 processors. Does that sound right? > -Dave ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Managing openbmc with subtree 2018-08-10 0:31 ` Dave Cobbley @ 2018-08-10 3:17 ` Brad Bishop 2018-08-10 20:44 ` Dave Cobbley 0 siblings, 1 reply; 15+ messages in thread From: Brad Bishop @ 2018-08-10 3:17 UTC (permalink / raw) To: Dave Cobbley; +Cc: openbmc, prashanth.giri, sachit_bakshi > On Aug 9, 2018, at 8:31 PM, Dave Cobbley <david.j.cobbley@linux.intel.com> wrote: > >>> >>> So to net these all out: >>> >>> *poky/ >>> >>> *meta-openembedded/ >>> *meta-virtualization/ >>> *meta-security/ >>> *meta-arm/ >>> *meta-openpower/ >>> *meta-x86/ >>> *meta-phosphor/ >>> >>> *meta-aspeed/ >>> *meta-nuvoton/ >>> *meta-raspberrypi/ >>> >>> *meta-intel/ >>> *meta-mellanox/ >>> *meta-portwell/ >>> *meta-quanta/ >>> *meta-ibm/ >>> *meta-ingrasys/ >>> *meta-inventec/ >>> *meta-rackspace/ >>> *meta-qualcomm/ >> Just to clarify - *meta-intel would contain our machine specific configurations for particular intel platforms, while *meta-x86 would contain image-like things that are generic to all x86 server platforms? >> Not sure I understand why meta-x86 exists if meta-intel/mellanox/portwell/quanta are all on the top level. Meta-x86 was simply a folder in my proposal. > Looking at this further, I believe I understand the difference: > meta-intel is our actual baseboard products > meta-x86 is all things that relate specifically to baseboards that contain x86 processors. > > Does that sound right? Yes, exactly. >> -Dave ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Managing openbmc with subtree 2018-08-10 3:17 ` Brad Bishop @ 2018-08-10 20:44 ` Dave Cobbley 0 siblings, 0 replies; 15+ messages in thread From: Dave Cobbley @ 2018-08-10 20:44 UTC (permalink / raw) To: Brad Bishop; +Cc: openbmc, prashanth.giri, sachit_bakshi On 08/09/2018 08:17 PM, Brad Bishop wrote: >> On Aug 9, 2018, at 8:31 PM, Dave Cobbley <david.j.cobbley@linux.intel.com> wrote: >> >>>> So to net these all out: >>>> >>>> *poky/ >>>> >>>> *meta-openembedded/ >>>> *meta-virtualization/ >>>> *meta-security/ >>>> *meta-arm/ >>>> *meta-openpower/ >>>> *meta-x86/ >>>> *meta-phosphor/ >>>> >>>> *meta-aspeed/ >>>> *meta-nuvoton/ >>>> *meta-raspberrypi/ >>>> >>>> *meta-intel/ >>>> *meta-mellanox/ >>>> *meta-portwell/ >>>> *meta-quanta/ >>>> *meta-ibm/ >>>> *meta-ingrasys/ >>>> *meta-inventec/ >>>> *meta-rackspace/ >>>> *meta-qualcomm/ >>> Just to clarify - *meta-intel would contain our machine specific configurations for particular intel platforms, while *meta-x86 would contain image-like things that are generic to all x86 server platforms? >>> Not sure I understand why meta-x86 exists if meta-intel/mellanox/portwell/quanta are all on the top level. Meta-x86 was simply a folder in my proposal. >> Looking at this further, I believe I understand the difference: >> meta-intel is our actual baseboard products >> meta-x86 is all things that relate specifically to baseboards that contain x86 processors. >> >> Does that sound right? > Yes, exactly. > >>> -Dave Brad, Can you make new github projects for the following? Just about everything else has a repo for subtrees. meta-arm/ meta-x86/ meta-nuvoton/ meta-intel/ meta-mellanox/ meta-portwell/ meta-quanta/ meta-ibm/ meta-ingrasys/ meta-inventec/ meta-rackspace/ Subtress that already have a repo: *poky/ *meta-openembedded/ *meta-security/ *meta-openpower/ *meta-phosphor/ *meta-aspeed/ *meta-raspberrypi/ *meta-qualcomm/ -- is this qualcomm-misc? Should we need to rename qualcomm-mist to meta-qualcomm? Additionally, looking at next steps for this: - Modify the build script to run a full yocto build with each individual subtree review. - Need to create a script which will merge code into the top level openbmc/openbmc Still trying to image what this script will look like, for example: $ git clone openbmc/openbmc $ git cherry-pick --strategy=subtree -Xsubtree=$SubtreePath $SubtreeSHA $ git push #does it need to push for review? I'm assuming at this point the build had already run on the subtree repo... - How to handle existing reviews? Do we need a script to keep the subtrees up to date? Are there any other steps I am missing? Thanks, -Dave ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2018-08-10 20:44 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-07-19 20:08 Managing openbmc with subtree Dave Cobbley 2018-07-20 17:42 ` Dave Cobbley 2018-07-20 17:43 ` Brad Bishop 2018-07-20 17:47 ` Brad Bishop 2018-08-01 21:53 ` Dave Cobbley 2018-08-06 17:30 ` Ed Tanous 2018-08-06 18:47 ` Brad Bishop 2018-08-07 17:16 ` Dave Cobbley 2018-08-07 19:30 ` Brad Bishop 2018-08-08 22:14 ` Dave Cobbley 2018-08-09 20:16 ` Brad Bishop 2018-08-09 22:23 ` Dave Cobbley 2018-08-10 0:31 ` Dave Cobbley 2018-08-10 3:17 ` Brad Bishop 2018-08-10 20:44 ` Dave Cobbley
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.