[openstack-dev] [oslo][taskflow] Thoughts on moving taskflow out of openstack/oslo

Monty Taylor mordred at inaugust.com
Mon Oct 15 22:10:35 UTC 2018

On 10/10/2018 03:17 PM, Ben Nemec wrote:
> On 10/10/18 1:35 PM, Greg Hill wrote:
>>     I'm not sure how using pull requests instead of Gerrit changesets 
>> would
>>     help "core reviewers being pulled on to other projects"?
>> The 2 +2 requirement works for larger projects with a lot of 
>> contributors. When you have only 3 regular contributors and 1 of them 
>> gets pulled on to a project and can no longer actively contribute, you 
>> have 2 developers who can +2 each other but nothing can get merged 
>> without that 3rd dev finding time to add another +2. This is what 
>> happened with Taskflow a few years back. Eventually the other 2 gave 
>> up and moved on also.
> As the others have mentioned, this doesn't need to continue to be a 
> blocker. If the alternative is nobody working on the project at all, a 
> single approver policy is far better. In practice it's probably not much 
> different from having a general oslo core rubber stamp +2 a patch that 
> was already reviewed by a taskflow expert.

Just piling on on this. We do single-core approves in openstacksdk, 
although for REALLY hairy patches I try to get a few more people to get 
eyeballs on something.

>>     Is this just about preferring not having a non-human gatekeeper like
>>     Gerrit+Zuul and being able to just have a couple people merge 
>> whatever
>>     they want to the master HEAD without needing to talk about +2/+W 
>> rights?
>> We plan to still have a CI gatekeeper, probably Travis CI, to make 
>> sure PRs past muster before being merged, so it's not like we're 
>> wanting to circumvent good contribution practices by committing 
>> whatever to HEAD. But the +2/+W rights thing was a huge PITA to deal 
>> with with so few contributors, for sure.
> I guess this would be the one concern I'd have about moving it out. We 
> still have a fair number of OpenStack projects depending on taskflow[1] 
> to one degree or another, and having taskflow fully integrated into the 
> OpenStack CI system is nice for catching problems with proposed changes 
> early.

I second this. Especially for a library like taskflow where the value is 
in the behavior engine, describing that as an API with an API surface is 
a bit harder than just testing a published library interface.

It's also worth noting that we're working on plans to get the OpenStack 
Infra systems rebranded so that concerns people might have about brand 
association can be mitigated.

> I think there was some work recently to get OpenStack CI voting 
> on Github, but it seems inefficient to do work to move it out of 
> OpenStack and then do more work to partially bring it back.

Zuul supports cross-source dependencies and we have select github repos 
configured in OpenStack's Zuul so that projects can do cross-project 

> I suppose the other option is to just stop CI'ing on OpenStack and rely 
> on the upper-constraints gating we do for our other dependencies. That 
> would be unfortunate, but again if the alternative is no development at 
> all then it might be a necessary compromise.

I agree - if the main roadblock is just the 2x+2 policy, which is 
solvable without moving anything, then the pain of moving the libraries 
out to github just to turn around and cobble together a cross-source 
advisory testing system seems not very worth it and I'd be more inclined 
to use upper-constraints.

By and large moving these is going to be pretty disruptive, so I'd 
personally prefer that they stayed where they. There are PLENTY of 
things hosted in OpenStack's infrastructure that are not OpenStack - or 
even OpenStack specific.

> 1: 
> http://codesearch.openstack.org/?q=taskflow&i=nope&files=requirements.txt&repos= 
>>     If it's just about preferring the pull request workflow versus the
>>     Gerrit rebase workflow, just say so. Same for just preferring the
>>     Github
>>     UI versus Gerrit's UI (which I agree is awful).
>> I mean, yes, I personally prefer the Github UI and workflow, but that 
>> was not a primary consideration. I got used to using gerrit well 
>> enough. It was mostly the  There's also a sense that if a project is 
>> in the Openstack umbrella, it's not useful outside Openstack, and 
>> Taskflow is designed to be a general purpose library. The hope is that 
>> just making it a regular open source project might attract more users 
>> and contributors.

I think we might be intertwining a few things that don't have to be 

The libraries are currently part of the OpenStack umbrella, and as part 
of that are hosted in OpenStack's developer infrastructure.

They can remain "part of OpenStack" and be managed with a relaxed core 
reviewer policy. This way, should they be desired, things like the 
release management team can still be used.

They can cease being "part of OpenStack" without needing to move away 
from the OpenStack Developer Infrastructure. As I mentioned earlier 
we're working on rebranding the Developer Infrastructure, so if there is 
a concern that a git repo existing within the Developer Infrastructure 
implies being "part of OpenStack" - that confusion should be improved in 
the not-too-distant-future. But - over half of the repos contained in 
the OpenStack Developer Infrastructure are already not "part of 
OpenStack" - so they would not be alone.

Finally, they can stop being "part of OpenStack" AND they can move their 
development to somewhere else.

>> This may or may not bear out, but as it is, there's 
>> no real benefit to staying an openstack project on this front since 
>> nobody is actively working on it within the community.

At the same time, taskflow is used by a good number of OpenStack 
services - to the point that taskflow developing an issue would be a 
*problem* for OpenStack. If something goes wrong, the OpenStack project 
and the Oslo team currently can fix it. Since, as you mentioned, there 
isn't a super active dev team currently - we'd be looking at moving from 
important-library-that-can-be-fixed-by-OpenStack-if-OpenStack-breaks to 

The last time we did this it was for an optional extra service with no 
real internal-OpenStack dependencies. If the end result had been the 
project completely ceasing to exist, as much as some humans would have 
been sad, OpenStack wouldn't have become broken.

Absent a compelling reason to the contrary, I'd argue that it's in 
OpenStack's best interests that the libraries remain not only in the 
OpenStack developer infrastructure but also under the governance of the 
Oslo team. Relaxing reviewer requirements seems like a fine idea and not 
at all problematic.

Obviously that's just me, but I'd love to see if we can work out making 
the current home more pleasant before we start ejecting libraries.


More information about the OpenStack-dev mailing list