<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2018-08-27 23:31 GMT+08:00 Matt Riedemann <span dir="ltr"><<a href="mailto:mriedemos@gmail.com" target="_blank">mriedemos@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On 8/24/2018 7:36 AM, Chris Dent wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Over the past few days a few of us have been experimenting with<br>
extracting placement to its own repo, as has been discussed at<br>
length on this list, and in some etherpads:<br>
<br>
<a href="https://etherpad.openstack.org/p/placement-extract-stein" rel="noreferrer" target="_blank">https://etherpad.openstack.org<wbr>/p/placement-extract-stein</a><br>
<a href="https://etherpad.openstack.org/p/placement-extraction-file-notes" rel="noreferrer" target="_blank">https://etherpad.openstack.org<wbr>/p/placement-extraction-file-<wbr>notes</a><br>
<br>
As part of that, I've been doing some exploration to tease out the<br>
issues we're going to hit as we do it. None of this is work that<br>
will be merged, rather it is stuff to figure out what we need to<br>
know to do the eventual merging correctly and efficiently.<br>
<br>
Please note that doing that is just the near edge of a large<br>
collection of changes that will cascade in many ways to many<br>
projects, tools, distros, etc. The people doing this are aware of<br>
that, and the relative simplicity (and fairly immediate success) of<br>
these experiments is not misleading people into thinking "hey, no<br>
big deal". It's a big deal.<br>
<br>
There's a strategy now (described at the end of the first etherpad<br>
listed above) for trimming the nova history to create a thing which<br>
is placement. From the first run of that Ed created a github repo<br>
and I branched that to eventually create:<br>
<br>
<a href="https://github.com/EdLeafe/placement/pull/2" rel="noreferrer" target="_blank">https://github.com/EdLeafe/pla<wbr>cement/pull/2</a><br>
<br>
In that, all the placement unit and functional tests are now<br>
passing, and my placecat [1] integration suite also passes.<br>
<br>
That work has highlighted some gaps in the process for trimming<br>
history which will be refined to create another interim repo. We'll<br>
repeat this until the process is smooth, eventually resulting in an<br>
openstack/placement.<br>
</blockquote>
<br></div></div>
We talked about the github strategy a bit in the placement meeting today [1]. Without being involved in this technical extraction work for the past few weeks, I came in with a different perspective on the end-game, and it was not aligned with what Chris/Ed thought as far as how we get to the official openstack/placement repo.<br>
<br>
At a high level, Ed's repo [2] is a fork of nova with large changes on top using pull requests to do things like remove the non-placement nova files, update import paths (because the import structure changes from nova.api.openstack.placement to just placement), and then changes from Chris [3] to get tests working. Then the idea was to just use that to seed the openstack/placement repo and rather than review the changes along the way*, people that care about what changed (like myself) would see the tests passing and be happy enough.<br>
<br>
However, I disagree with this approach since it bypasses our community code review system of using Gerrit and relying on a core team to approve changes at the sake of expediency.<br>
<br>
What I would like to see are the changes that go into making the seed repo and what gets it to passing tests done in gerrit like we do for everything else. There are a couple of options on how this is done though:<br>
<br>
1. Seed the openstack/placement repo with the filter_git_history.sh script output as Ed has done here [4]. This would include moving the placement files to the root of the tree and dropping nova-specific files. Then make incremental changes in gerrit like with [5] and the individual changes which make up Chris's big pull request [3]. I am primarily interested in making sure there are not content changes happening, only mechanical tree-restructuring type changes, stuff like that. I'm asking for more changes in gerrit so they can be sanely reviewed (per normal).<br>
<br>
2. Eric took a slightly different tack in that he's OK with just a couple of large changes (or even large patch sets within a single change) in gerrit rather than ~30 individual changes. So that would be more like at most 3 changes in gerrit for [4][5][3].<br>
<br>
3. The 3rd option is we just don't use gerrit at all and seed the official repo with the results of Chris and Ed's work in Ed's repo in github. Clearly this would be the fastest way to get us to a new repo (at the expense of bucking community code review and development process - is an exception worth it?).<br>
<br>
Option 1 would clearly be a drain on at least 2 nova cores to go through the changes. I think Eric is on board for reviewing options 1 or 2 in either case, but he prefers option 2. Since I'm throwing a wrench in the works, I also need to stand up and review the changes if we go with option 1 or 2. Jay said he'd review them but consider these reviews lower priority. I expect we could get some help from some other nova cores though, maybe not on all changes, but at least some (thinking gibi, alex_xu, sfinucan).<br></blockquote><div><br></div><div>I can help some. And yes, small change is good than huge change.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Any CI jobs would be non-voting while going through options 1 or 2 until we get to a point that tests should finally be passing and we can make them voting (it should be possible to control this within the repo itself using zuul v3).<br>
<br>
I would like to know from others (nova core or otherwise) what they would prefer, and if you are a nova core that wants option 1 (or 2) are you willing to help review those incremental changes knowing it will be a drain - but also realizing that we can't really let option 1 drag on while we're doing stein feature development, so ideally this would be done before the PTG.<br>
<br>
* Yes I realize I could be reviewing the github pull requests along the way, but that's not really how we do code review in openstack.<br>
<br>
[1] <a href="http://eavesdrop.openstack.org/meetings/nova_scheduler/2018/nova_scheduler.2018-08-27-14.00.log.html#l-74" rel="noreferrer" target="_blank">http://eavesdrop.openstack.org<wbr>/meetings/nova_scheduler/2018/<wbr>nova_scheduler.2018-08-27-14.<wbr>00.log.html#l-74</a><br>
[2] <a href="https://github.com/EdLeafe/placement" rel="noreferrer" target="_blank">https://github.com/EdLeafe/pla<wbr>cement</a><br>
[3] <a href="https://github.com/EdLeafe/placement/pull/3" rel="noreferrer" target="_blank">https://github.com/EdLeafe/pla<wbr>cement/pull/3</a><br>
[4] <a href="https://github.com/EdLeafe/placement/commit/e3173faf59bd1453c3800b2bf57c2af8cfde1697" rel="noreferrer" target="_blank">https://github.com/EdLeafe/pla<wbr>cement/commit/e3173faf59bd1453<wbr>c3800b2bf57c2af8cfde1697</a><br>
[5] <a href="https://github.com/EdLeafe/placement/commit/e984bef8587009378ea430dd1c12ca3e40a3c901" rel="noreferrer" target="_blank">https://github.com/EdLeafe/pla<wbr>cement/commit/e984bef858700937<wbr>8ea430dd1c12ca3e40a3c901</a><span class="HOEnZb"><font color="#888888"><br>
<br>
-- <br>
<br>
Thanks,<br>
<br>
Matt</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
______________________________<wbr>______________________________<wbr>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" rel="noreferrer" target="_blank">OpenStack-dev-request@lists.op<wbr>enstack.org?subject:unsubscrib<wbr>e</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" rel="noreferrer" target="_blank">http://lists.openstack.org/cgi<wbr>-bin/mailman/listinfo/openstac<wbr>k-dev</a><br>
</div></div></blockquote></div><br></div></div>