[openstack-dev] [nova] [placement] extraction (technical) update
Matt Riedemann
mriedemos at gmail.com
Mon Aug 27 15:31:50 UTC 2018
On 8/24/2018 7:36 AM, Chris Dent wrote:
>
> Over the past few days a few of us have been experimenting with
> extracting placement to its own repo, as has been discussed at
> length on this list, and in some etherpads:
>
> https://etherpad.openstack.org/p/placement-extract-stein
> https://etherpad.openstack.org/p/placement-extraction-file-notes
>
> As part of that, I've been doing some exploration to tease out the
> issues we're going to hit as we do it. None of this is work that
> will be merged, rather it is stuff to figure out what we need to
> know to do the eventual merging correctly and efficiently.
>
> Please note that doing that is just the near edge of a large
> collection of changes that will cascade in many ways to many
> projects, tools, distros, etc. The people doing this are aware of
> that, and the relative simplicity (and fairly immediate success) of
> these experiments is not misleading people into thinking "hey, no
> big deal". It's a big deal.
>
> There's a strategy now (described at the end of the first etherpad
> listed above) for trimming the nova history to create a thing which
> is placement. From the first run of that Ed created a github repo
> and I branched that to eventually create:
>
> https://github.com/EdLeafe/placement/pull/2
>
> In that, all the placement unit and functional tests are now
> passing, and my placecat [1] integration suite also passes.
>
> That work has highlighted some gaps in the process for trimming
> history which will be refined to create another interim repo. We'll
> repeat this until the process is smooth, eventually resulting in an
> openstack/placement.
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.
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.
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.
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:
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).
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].
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?).
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).
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).
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.
* 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.
[1]
http://eavesdrop.openstack.org/meetings/nova_scheduler/2018/nova_scheduler.2018-08-27-14.00.log.html#l-74
[2] https://github.com/EdLeafe/placement
[3] https://github.com/EdLeafe/placement/pull/3
[4]
https://github.com/EdLeafe/placement/commit/e3173faf59bd1453c3800b2bf57c2af8cfde1697
[5]
https://github.com/EdLeafe/placement/commit/e984bef8587009378ea430dd1c12ca3e40a3c901
--
Thanks,
Matt
More information about the OpenStack-dev
mailing list