Code Hosting, Development Tools and Open Source

Tim Flink tflink at redhat.com
Tue Oct 8 16:53:55 UTC 2013


I've been kicking this idea around for a bit and have chatted a little
with people on IRC but as we're looking to start up development on
taskbot, I want to have a larger discussion on two issues: where do we
host code and what do we want to use for dev support tools (issue
tracking, code review etc.).

We've been using fedorahosted git, fedorahosted trac and a reviewboard
instance on openshift for blockerbugs. It works but I've not been all
that thrilled with the setup and would like to use something different
for taskbot.

It's hard to deny github's popularity among developers; fedora
infrastructure has started hosting several projects there [1]. Many
developers have github accounts and are already familiar with the
github workflow.

[1] https://github.com/fedora-infra

However, I have several concerns with the prospect of using github for
Taskbot. The most obvious of which is the semi-closed nature of github;
it is a commercial tool and from certain points of view, this is not
an ideal choice. While I would certainly prefer 100% open tools, I
think that there are better reasons to take on hosting our own stuff.

The bigger concern I have is with github's issue tracking system. It's
rather primitive, doesn't allow moving issues between repos and you
have to be a group member to get a global view of the issues filed in
that group. Taskbot is made up of many sub-components and as such, I
don't think sticking everything in a single repository would be a good
idea and I'd rather not have to manage issues spread across
multiple instances. This makes me wonder if just using github is a
good idea.

If we start looking at alternative tools, there are plenty of options
but I've been gravitating more towards phabricator [2]. I've set up a
demo instance on my personal VPS that you're welcome to poke at [3].
I've talked with a few people about the demo instance and have been
getting mostly positive feedback.

[2] http://phabricator.org/
[3] https://supermegawaffle.com/

Anonymously browse-able links:
 - Projects: https://supermegawaffle.com/project/
 - Repositories: https://supermegawaffle.com/diffusion/
 - Issues: https://supermegawaffle.com/maniphest/
 - Code Reviews: https://supermegawaffle.com/differential/
 - Design Mockups: https://supermegawaffle.com/pholio/


Things I like:
 - one place for issues, code reviews, team communication and
   coordination
 - easy to do mockups and other visual/design stuff
 - allows for pre-commit code reviews and post-commit code audits
 - allows some enforcement of lint and test running as code is
   submitted for review
 - enables sign-off if we end up needing it
 - logs IRC channels
 - cool stuff like hooks for elasticsearch to allow full-text indexing
   of bugs, git logs, reviews, etc.


Concerns I have:
 - doesn't have much support anonymous browsing yet. You can set
   individual issues, reviews etc. to be publicly viewable (links
   to the demo instance are at the end of this email) but it is not
   possible to have public access set by default yet. this is a feature
   currently in progress and it looks like it'll be done before too long
    * https://secure.phabricator.com/T603 (login required)
 - doesn't support openid (FAS) out of the box. upstream is not against
   adding support for openid if someone does the work but it's not a
   priority for them.
    * we might be able to use the out-of-box oauth with FAS if/when
      they implement oauth but I'm not sure what the timeline is on
      that right now.
 - standing up a production instance wouldn't be free. I think we'd be
   able to get hosting resources from infra but I don't think they have
   the human bandwidth to support this much.
    * we would probably be responsible for maintenance and any possible
      breakage
    * I don't have a good feel for what this would cost yet; this is a
      demo instance that's been up for about a week.

If we're OK with non-open tools, Jira [4] is another option. They offer
free hosted and self-hosted versions of their tools to open source
projects [5]. Atlassian has been offering this for a long time and their
tools are used by other open source projects like the apache project
and jboss. I've not spent much time with Jira but have heard more good
things than bad things about it.

[4] https://www.atlassian.com/software/jira
[5] https://www.atlassian.com/software/views/open-source-license-request

So after a long novel-disguised-as-an-email, I have two main questions:

Where do we want to host code for Taskbot and future QA development
projects?
 - fedorahosted? github? bitbucket? I don't have a huge preference on
   the location as long as we're talking about git repos, to be honest.

What do we want to use for issue tracking?
 - This is the bigger issue, is there enough interest in phabricator to
   justify getting it working with fas-openid and doing a larger trial?
 - Do we want to explore using JIRA?

Anyhow, thoughts on all this would be very much appreciated.

Tim
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://lists.fedoraproject.org/pipermail/qa-devel/attachments/20131008/c2587d37/attachment.sig>


More information about the qa-devel mailing list