<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/xhtml; charset=utf-8">
</head>
<body>
<div style="font-family:sans-serif"><div style="white-space:normal">
<p dir="auto">On 23 May 2017, at 8:05, Doug Hellmann wrote:</p>

<p dir="auto"></p></div>
<div style="white-space:normal"><blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px"><p dir="auto">Excerpts from Sean McGinnis's message of 2017-05-23 08:58:08 -0500:</p>
<blockquote style="border-left:2px solid #777; color:#999; margin:0 0 5px; padding-left:5px; border-left-color:#999"><blockquote style="border-left:2px solid #777; color:#BBB; margin:0 0 5px; padding-left:5px; border-left-color:#BBB"><blockquote style="border-left:2px solid #777; color:#BBB; margin:0 0 5px; padding-left:5px; border-left-color:#BBB"><p dir="auto">- Is it that the reporting process is too heavy ? (requiring answers<br>
from projects that are obviously unaffected)</p>
</blockquote><p dir="auto">I've thought about this, OSC was unaffected by one of the goals but<br>
not the other, so I can't really hide in this bucket.  It really is<br>
not that hard to put up a review saying "not me".<br>
</p>
<blockquote style="border-left:2px solid #777; color:#BBB; margin:0 0 5px; padding-left:5px; border-left-color:#BBB"><p dir="auto">- Is it that people ignore the deadlines and missed the reminders ?<br>
(some unaffected project teams also do not do releases, and therefore<br>
ignore the release countdown emails)</p>
</blockquote><p dir="auto">In my case, not so much "ignore" but "put off until tomorrow" where<br>
tomorrow turned in to 6 weeks.  I really don't have a hard reason<br>
other than simply not prioritizing it because I knew one of the goals<br>
was going to take some coordination work<br>
</p>
</blockquote><p dir="auto">+1 - this has been my case, unfortunately.<br>
<br>
A patch submission has the feeling of a major thing that goes through<br>
a lot of process (at least still in my head). I wonder if we would be<br>
better off tracking some of this through a wiki page or even an<br>
etherpad, with just the completion of the goal being something<br>
submitted to the repo. Then it would be really easy to update at any<br>
point with notes like "WIP patch put up but still working on it" along<br>
the way.</p>
</blockquote><p dir="auto">The review process for this type of governance patch is pretty light<br>
(they fall under the one-week-no-objections house rule), but I<br>
decided to use a patch instead of the wiki specifically because it<br>
allows for feedback. We've had several cases where teams didn't<br>
provide enough detail or didn't think a goal applied to them when<br>
it did (deploying with WSGI came up at least once).  Wiki changes<br>
can be tracked, but if someone has a question they have to go track<br>
down the author in some other venue to get it answered.<br>
<br>
I also didn't want teams to have to keep anything up to date during<br>
the cycle, because I didn't want this to be yet another "status<br>
report". Each goal needs at most 2 patches: one at the start of the<br>
cycle to acknowledge and point to whatever other artifacts are being<br>
used for tracking the work already, and then one at the end of the<br>
cycle to indicate how much of the work was completed and what the<br>
next steps are. We tied the process deadlines to existing deadlines<br>
when we thought teams would already be thinking of these sorts of<br>
topics (most teams have spec deadlines around milestone 1 and then<br>
everyone has the same release date at the end of the cycle).<br>
</p>
</blockquote></div>
<div style="white-space:normal">

<p dir="auto">I can sympathize with the "do it tomorrow" turns into 6 weeks later...</p>

<p dir="auto">Part of the issue for me, personally, is that a governance patch does <em>not</em> feel simple or lightweight. I assume (in part based on experience) that any governance patch I propose will be closely examined and I will be forced to justify every corner case and comment made. Frankly, writing the patch that will stand up too a critical eye will take a long time. I'll do it tomorrow...</p>

<p dir="auto">Let's take the py3 goal as an example. Note: I am <em>not</em> wanting to get into a discussion about particular py3 issues or whatever. This is a discussion on the goals process, and I'm only using one of the current goals as an example of why I haven't proposed a governance patch for it.</p>

<p dir="auto">Swift does not support Py3. So clearly, there's work to be done to meet the goal. I've talked with others in the community about some of the blockers and concerns about porting to Py3. Several of the concerns are not trivial and will take substantial work to overcome[1]. A governance patch will need to list these issues, but I don't know if this is a complete list. If I propose a list that's incomplete, I feel like I'll be judged on the list I first proposed ("you finished the list, why doesn't it work?") instead of being a more dynamic process. I need to spend more time understanding what the issues are to make sure I have a complete list. I'll propose that patch tomorrow...</p>

<p dir="auto">The outstanding work to get Py3 support in Swift is very large. Yet there are more goals being discussed now, and there's no way I can get Py3 support in Swift in Pike. Or Queens. Or probably Rocky either. That's not to say it isn't an important goal, but the scope combined with the TC deadline means that my governance patch for this goal (the tl;dr version is "not gonna happen") has to address this in sufficient detail to stand up to review by TC members who are on the PSF! I guess I'll start writing that tomorrow...</p>

<p dir="auto">While I know that Py3 support is important, I also have to prioritize it against other important things. My employer has prioritized certain features because that directly impacts our ability to add customers (which directly affects my ability to get paid). Other employers in the community are doing the same for their employees. In the broader community, as clusters have grown over the years, certain original design decisions are showing their age and actively causing operator pain. Perhaps we can survive for a while longer without solving these (we managed to ignore these issues for the last five years), but as time passes these pain points actually become reasons to use a different storage system other than Swift. We can't ignore stuff like container sharding and improving capacity adjustments any longer. Furthermore, we've got plans underway (in part to solve some of the aforementioned issues) to replace Python code with Golang code. That makes a Py3 port that much easier, but it's work that competes with the porting work in other parts of the codebase. Add in to all this that I've talked to exactly zero people who could not use Swift because it's written in Py2, and the prioritization of the Py3 port gets very easy. But writing a governance patch to say that the Py3 work can't be prioritized is confrontational. So let's put it off until tomorrow...</p>

<p dir="auto">There's been work in the past to port Swift to Py3. I'm grateful to all those people who have spent the time and effort to move Swift closer to Py3 support. Py3 port patches are <em>not</em> simple to review, and we've had at lest 2 or 3 significant regressions that were introduced because of porting work. The Py3 port patches are hard to review, and after reviewing a few multi-thousand line patches that appear to mostly be syntactic but might in fact be hiding a subtle error, it's hard to maintain the motivation to pick up Py3 port patches over other important patches to review[2]. Knowing that the Py3 patches are hard for the community to review, it's hard to estimate how long the porting process will take and even harder to commit to the completion dates the TC set for them. There's progress being made, but it's really slow. I'll put off proposing the governance patch until we can show some better progress. I'll propose the patch tomorrow...</p>

<p dir="auto">And here we are today. Six weeks after the deadline for getting the initial patch in. The Py3 goal is only used as an example, but I think there are some fundamental systemic issues with the goals process and community, as Thierry suggested. I don't know what exactly they are, much less what the answers are, but I submit my personal experience as evidence in the open.</p>

<p dir="auto">I should propose that governance patch soon. Maybe tomorrow...</p>

<p dir="auto">--John</p>

<p dir="auto">[1] <a href="https://gist.github.com/tipabu/833b03a865dba96e9fa2230b82f5d075" style="color:#3983C4">https://gist.github.com/tipabu/833b03a865dba96e9fa2230b82f5d075</a> is a scratch space for some of the issues. I hesitated to link this, because it is not the place to have discussion on particular issues, but it's some of the things that we're looking at.</p>

<p dir="auto">[2] <a href="https://youtu.be/voXVTjwnn-U?t=31m" style="color:#3983C4">https://youtu.be/voXVTjwnn-U?t=31m</a> is an insightful segment on the impact of these sorts of refactors and porting work</p>

<p dir="auto"></p></div>
<div style="white-space:normal"><blockquote style="border-left:2px solid #777; color:#777; margin:0 0 5px; padding-left:5px"><blockquote style="border-left:2px solid #777; color:#999; margin:0 0 5px; padding-left:5px; border-left-color:#999"><blockquote style="border-left:2px solid #777; color:#BBB; margin:0 0 5px; padding-left:5px; border-left-color:#BBB"><blockquote style="border-left:2px solid #777; color:#BBB; margin:0 0 5px; padding-left:5px; border-left-color:#BBB"><p dir="auto">- Is it that in periods of resource constriction, having release-wide<br>
goals is just too ambitious ? (although anecdotal data shows that most<br>
projects have already completed their goals)</p>
</blockquote><p dir="auto">While this may certainly be a possibility, I don't think we should<br>
give in to the temptation to blame too much on losing people.  OSC was<br>
hit by this too, yet the loss of core and contributors did not affect<br>
the goals not getting done, that falls squarely on the PTL in this<br>
case.<br>
</p>
<blockquote style="border-left:2px solid #777; color:#BBB; margin:0 0 5px; padding-left:5px; border-left-color:#BBB"><p dir="auto">- Is it that the goals should be more clearly owned by the community<br>
beyond just the TC? (and therefore the goals should be maintained in a<br>
repository with simpler approval rules and a larger approval group)</p>
</blockquote><p dir="auto">I do think that at least the perception of the goals being community<br>
things should be increased if we can.  We fall in to the problem of<br>
the TC proposing something and getting pushback about projects being<br>
forced to do more work, yet we hear so much about how the TC needs to<br>
take more leadership in technical direction (see TC vision feedback<br>
for the latest round of this).<br>
<br>
I'm not sure that the actual repo is the issue, are we having problems<br>
getting reviews to approve these?  I don't see this but I'm also not<br>
tracking the time to takes for them to get approved.<br>
<br>
I believe it is just going to have to be a social thing that we need<br>
to continue to push forward.<br>
</p>
</blockquote><p dir="auto">What if we also require +1 from the "core six" projects on goal proposals?<br>
If we at least have buy in from those projects, then we can know that we<br>
should be able to get them as a minimum, with other projects more than<br>
likely to then follow suit.</p>
</blockquote><p dir="auto">Because we do not want to structure our governance in such a way that<br>
some projects are more equal than others.<br>
<br>
Everyone in the community has an opportunity to respond to the goals<br>
through the review process. If we don't trust the TC to take those<br>
responses into account, then we might as well drop the whole idea of<br>
community goals.<br>
<br>
Doug<br>
<br>
__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: OpenStack-dev-request@lists.openstack.org?subject:unsubscribe<br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" style="color:#777">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a></p>
</blockquote></div>
<div style="white-space:normal">
</div>
</div>
</body>
</html>