[OpenStack-Infra] A proposal to use phabricator for issue tracking

Monty Taylor mordred at inaugust.com
Fri Apr 3 16:05:37 UTC 2015


On 04/03/2015 11:54 AM, Sean Dague wrote:
> On 04/03/2015 11:00 AM, Monty Taylor wrote:
>> As a follow up to my previous email about thinking about ceasing to use
>> storyboard, I have done some work towards investigating using phabricator.
>>
>> phabricator came out of Facebook, but has been spun out completely and
>> is now managed as an Open Source project. There is a company that has
>> formed around it doing support and hosted installs ... so it has a
>> vibrant and active developer community working on it.
>>
>> In our broader infra ecosystem, we do lots of things with the Wikimedia
>> Foundation. They are close collaborators on Jenkins Job Builder, and are
>> also zuul users. They have recently migrated their bug tracking to
>> phabricator ... so one could imagine that our collaboration could
>> continue nicely.
>>
>> There are several phabricator features we are not interested in - such
>> as code review. Luckily it is easy to turn them off.
>>
>> The phabricator model is not exactly what we want, but there are some
>> nice things about it. It doesn't fully encompass things our
>> project-group/project/branch hierarchy as it relates to things. However,
>> it does allow for an issue to have multiple other issues it's blocked
>> on, as well as multiple issues it blocks. And an issue can be associated
>> with more than one "project"
>>
>> A "project" is actually more like an arbitrary tag. That's bad in that
>> it's not a structured concept. It's good in that it's flexible. A
>> "project also carries with it an kanban-like workboard, that allows for
>> different priority setting on a per-project basis.
>>
>> In any case - it's hard to think about those things without something to
>> look at, so I set up a phabricator instance and did a data
>> transformation of the current (ish) storyboard database:
>>
>> http://15.126.194.141/
>>
>> If you have ever logged in to storyboard, you have a login here with a
>> password of "password". As you might imagine, I do not consider the data
>> in this instance precious - I may or may not blow it away and reload it
>> from newer database dumps or from improved data migration scripts at any
>> time.
>>
>> You may want to note the workboard concept:
>>
>> The issue:
>>
>> http://15.126.194.141/T2298
>>
>> Is in both the openstack-infra/system-config and the openstack-ci
>> projects. Each of those have a workboard:
>>
>> http://15.126.194.141/tag/openstack-infra_system-config/
>> http://15.126.194.141/tag/openstack-ci/
>>
>> T2298 is in the backlog for openstack-infra/system-config but listed in
>> priority efforts for openstack-ci.
>>
>> Also, you can see that T2298 has a "pholio mock" -
>> http://15.126.194.141/M1 - which is an image with design conversation
>> associated with it.
>>
>> The code to deploy this as well as do the data transformation can be
>> found here:
>>
>> https://github.com/emonty/puppet-phabricator
>>
>> It's not perfect - but I figured that a conversation can't really be had
>> without something to point at.
> 
> 2 specific phabricator questions (which I'm running into in dealing with
> the pile of Nova bugs).
> 
> 1) what's the REST API support look like for building tools outside of
> tree?

As ttx said, there is a thing called "conduit" which is the thing that
does this. Link:

https://secure.phabricator.com/book/phabdev/article/conduit/

The full quote that's relevant:

"Hopefully, this should improve over time, but making Conduit more
robust isn't currently a major project priority because there isn't much
demand for it outside of internal scripts. If you want to use Conduit to
build things on top of Phabricator, let us know so we can adjust
priorities."

I would imagine we'd let them know that it's important to us so that
they can adjust their priorities.

You can see the available API calls here;

http://15.126.194.141/conduit/

> 2) is there an event stream of changes (either real time or rss) that
> can be consumed by said tools? Having the change stream would be really
> helpful.

There is a "feed":

http://15.126.194.141/feed/

But there is no RSS support for it:

https://secure.phabricator.com/T4825

I have not looked into real-time web hook like things. However, I do
know that everything that happens produces an event internally, and
those events are then picked up by queue processing daemons and
dispatched. This is how email support is implemented. So, worst case
scenario developing another event stream consumer that would publish a
real-time feed wouldn't be terrible. There are docs here:

https://secure.phabricator.com/book/phabricator/article/events/





More information about the OpenStack-Infra mailing list