Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: null

Bloodhound - Collaborative development tools based on Trac

Note

This Proposal is Out of Date

The Apache Bloodhound project has been accepted by the Incubator and has started work. Please see the project page for more information.

Please note that the Bloodhound developers will attempt to proceed without a fork of Trac, contrary to the proposal below. (see this message and this other message)

Abstract

Bloodhound will be a software development collaboration tool, including issue tracking, wiki and repository browsing. Essentially an improved distribution of the well-known Trac project, Bloodhound will include the common and useful plugins to enable a more complete distribution than a typical Trac installation.

Proposal

Bloodhound will be a software development collaboration tool, based on the existing Trac project, which will include a repository browser, wiki, and defect tracker. In addition to the standard Trac installation, Bloodhound will incorporate a number of popular modules into the core distribution, and include additional improvements developed (as plugins) outside the Trac project.

Background

The Trac project is a BSD-licensed collaboration tool used to assist in software development. It has a wide user base, a pluggable infrastructure, and is generally considered stable.

By it's own recognition, however, the development community surrounding Trac has largely dissipated, with little mailing list traffic, and very few commits to the source code repository. Private efforts to engage the existing developers in implementing features have been negatively received. At the same time, other individuals and companies, such as WANdisco, have expressed interest in helping continue to develop Trac. These entities would prefer this effort to be at a vendor-neutral location, with the clear process for intellectual property management that comes from the Foundation. As such, the Apache Software Foundation feels like the best fit for this new project based on Trac.

Discussion about this proposal on the Trac developers' mailing list has been largely ambivalent (see this thread). Trac has already included a potential Bloodhound project on the list of its derivatives.

Rationale

As discussed earlier, the current Trac development community is small and reluctant to accept outside contributions. Given the Foundation’s reputation for building and maintaining communities, we feel a new project, based on Trac but incubated under the Apache umbrella, would help re-build the developer community, jump started by developer time donated by WANdisco. Additionally, as a developer tool, Bloodhound is a good fit with other, similarly-focused developer tools at the ASF.

Private discussions have shown there is some interest by third-parties to release internal improvements to Trac, and Bloodhound gives them an additional venue to do so.

Initial Goals

The initial goals for Bloodhound primarily revolve around migrating the existing code base and integrating external features to make the project easy to deploy. Additional ideas will of course follow, but the following goals are sufficiently difficult to be considered early milestones.

Some of the initial goals include:

  • Migrate the existing BSD-licensed Trac code base to the ASF.
  • Attract developer and user interest in the new Bloodhound project.
  • Incorporate externally developed features into the core Bloodhound project.
  • Package the most popular plugins into the core project, so installations and administration of Bloodhound becomes dead simple.

Current Status

Meritocracy

Although initially corporate-sponsored, any interested developers would be granted commit access. Even developers employed by the sponsoring companies would be required to demonstrate competency to gain commit privileges. Individuals with corporate affiliations would understandably be known within the community, but would not have bearing on the granting of commit privileges.

Community

One of the primary purposes of this proposal is to develop a strong developer community around the Trac code base. The current developers and supporting institution have moved on to other things, and this has caused stagnation in the existing community. We want to use the experience of the Incubator PMC, and the incubation process, to reboot the developer community, while at the same time incorporating oft-requested features into the existing product.

Building communities carries with it an initial investment, and the corporate sponsors behind this proposal are willing to make that investment in seeing a vibrant and self-sustaining community result from incubation. We recognize this as something of an experiment, and that incubation is not a guarantee of success and graduation a given. However, we feel that the ASF represents the best opportunity to build the vibrant community that this project needs.

Core Developers

The initial set of developers will be primarily individuals from WANdisco, and may be augmented with other interested persons we have privately contacted. This list contains at least one Apache Member, as well as others who have participated in Apache projects in various capacities (patch contributors, bug reports, etc.). It also includes people who are familiar with open source development, but have not previously participated in Apache projects.

Realizing that incubation is an opportunity to grow the community, we plan to make every attempt possible to invite additional developers from the existing Trac user and developer communities, including those involved in plugin development.

Alignment

Bloodhound aligns well with the Apache Software Foundation. It makes extensive use of Apache Subversion, and includes tools to browse and interact with Subversion repositories. As previously mentioned, Bloodhound is primarily a developer-oriented tool, which follows the historical Apache philosophy of providing high-quality developer tools. Eventually, Bloodhound could become a viable alternative to Jira or Bugzilla for projects hosted at Apache.

Known Risks

This proposal is not without its risks, some of which are outlined below.

Orphaned Projects

The current Trac project lacks much developer interest. Although the entities behind this proposal desire to make a viable developer community, there is no guarantee that such a community will develop. Should this happen, there will likely be insufficient heterogeneity in the project to warrant graduation.

Inexperience with Open Source

The initial groups of developers have extensive experience with open source, primarily with the Apache Subversion project. The target audience for growing the developer community is the current Trac user and developer communities, many members of which are familiar with open source in general. There may be some learning curve as community members familiarize themselves with the ASF and the Apache Way, including individuals employed specifically to work on the project.

Homogeneous Developers

The current list of committers are primarily from WANdisco. One of the key purposes of proposing Bloodhound for incubation is to resurrect a currently-small (~3 key developers, but very few commits per week) development community by attracting and infusing it with new code and new individuals. The ASF has a well-deserved reputation of fostering and building open source communities, which makes it the ideal location to attempt this community reboot.

Reliance on Salaried Developers

Most of the initial committers are supported by their employers to work on Bloodhound, and may be assigned to work on other projects in the future. However, the employers of these salaried individuals have an interest in seeing Bloodhound thrive as a long-term, sustaining project. WANdisco understands that their employees are acting as individuals when contributing to Apache projects, but has already brought additional staff on board to assist with Bloodhound development.

Relationship with Other Apache Projects

Bloodhound integrates heavily with Apache Subversion, although that integration is becoming more de-coupled making it possible to replace with other version control systems. Bloodhound optionally runs on Apache httpd.

An Excessive Fascination with the Apache Brand

One of the primary motivators in creating the Bloodhound project as part of the Incubator is to leverage the vendor-neutral nature of the Apache Software Foundation. The ASF has a strong and recognized brand as being a leader in open source, and by hosting Bloodhound at the Foundation, we hope to attract developers to build a viable community for the project.

Initial Source

The original Trac code base has been under development for more than 8 years, though development has become minimal over the past 2 years. We have sync'd the existing Trac repository, including history, and are using it as the basis for Bloodhound. We also plan to incorporate appropriately-licensed plugins into the core Bloodhound system.

Source and Intellectual Property Submission Plan

The initial source will be from the Trac repository. Additional functionality may come from private development, and will be folded into the open source version after Bloodhound is loaded in the main ASF repository. Any relevant Trac-hacks with appropriate licenses may also be migrated.

Most of the source code being imported from the Trac repository is licensed under the BSD license, which has been approved by the Apache Legal team for use in Apache-distributed products. In fact, existing projects at the ASF have been doing so for a number of years. Potential concerns about patents embodied in the Trac code at best, and a change of license or software grant would not defray them. (See this mail for a better explanation.)

External Dependencies

The bulk of the initial code will be from the Trac project, which is licensed under the BSD license. Bloodhound also relies upon BSD-licensed subcomponents for HTML templating.

Required Resources

Mailing lists

The initial set of mailing lists will be:

  • bloodhound-private (with moderated subscriptions)
  • bloodhound-dev
  • bloodhound-commits
  • bloodhound-user

Subversion Directory

https://svn.apache.org/repos/asf/incubator/bloodhound

Issue Tracking

Bloodhound would like to self-host its issue tracking, see below.

Other Resources

In the interests of eating our own dogfood, Bloodhound would like to self-host the issue tracker and related tools. The team will work with Infrastructure to define and manage this configuration.

Initial Committers

  • Mat Booth (mat.booth at wandisco dot com)
  • Mark Poole (mark at wandisco.com)
  • Hyrum Wright (hyrum.wright at wandisco dot com)
  • John Chambers (john.chambers at wandisco.com)
  • Gary Martin (gary.martin at wandisco.com
  • Gavin McDonald (gavin at 16degrees.com.au)

Affiliations

  • Mat Booth, WANdisco
  • Mark Poole, WANdisco
  • Hyrum Wright, WANdisco
  • John Chambers, WANdisco
  • Gary Martin, WANdisco
  • Gavin McDonald, Independent

Sponsors

Champion

Hyrum K. Wright

Nominated Mentors

  • Hyrum K. Wright
  • Greg Stein

Sponsoring Entity

The Apache Incubator