The original propsal has been sent by StefanBodewig to the Ant development list on February 11, 2005. It can be found in the mailing list archives.

This version is a living document where people interested in the proposal are free to make changes until it gets accepted or rejected by a formal Ant PMC vote.

Proposal to Create a Ant-Libraries Sub-Project in Apache Ant

(0) rationale

Ant itself has accumulated lots and lots of tasks over time. So many, that Ant developers have become reluctant to adding new task. Furthermore any new task in Ant would be tied to Ant's release schedule which is too slow for a thriving, fresh piece of code.

The proposal allows Ant tasks and types to be developed under the Ant umbrella by Ant developers but have much shorter release cycles than Ant itself. In addition it would new committers who would have commit access to a single Ant library instead of the whole of Ant.

(1) scope of the subproject

The subproject shall create and maintain libraries of Ant tasks and types. Each library will be managed in the same manner as the Ant project itself, the PMC is ultimately responsible for it.

Common Java libraries that only happen to provide Ant tasks as well are out of scope of the subproject. Providing the tasks or types has to be the primary goal of the library.

To further this goal, the subproject shall also host a workplace for Ant committers.

(1.5) interaction with other subprojects

(1.5.1) the sandbox

The subproject will host a SVN repository available to all Ant committers as a workplace for new Ant libraries.

Before a library can have a public release it has to get promoted to the "proper" Ant libraries subproject. This also means it has to match the requirements of an Ant library as defined in section (4) under Guidelines below.

The status of any library developed in the sandbox shall be reviewed after six months and the library gets either promoted or removed - or it has to be re-evaluated after another six months.

(2) identify the initial source from which the subproject is to be populated

Some Ant committers have developed tasks or libraries inside of the Ant CVS module under the proposal/sandbox directory. Committers are free to move them over to the new sandbox subproject or remove them completely.

Libraries expected to move to the sandbox subproject initially are

  • the .NET tasks under proposal/sandbox/dotnet
  • the Subversion support tasks under proposal/sandbox/svn

(3) identify the initial Apache resources to be created

(3.1) mailing list(s)

None. At least at the beginning we don't expect too much traffic and the existing mailing lists of the Ant projects will be used.

(3.2) SVN repositories

Create <http://svn.apache.org/repos/asf/ant/>

Expected are sub-directories

antlibs/
   |
   -----> proper/
   |        |
   |        -----> library1
   |        |        |
   |        |        -----------> trunk
   |        |        -----------> tags
   |        |        -----------> branches
   |        -----> library2
   |                 |
   |                 -----------> trunk
   |                 -----------> tags
   |                 -----------> branches
   |
   -----> sandbox/
            |
            -----> library1
            |        |
            |        -----------> trunk
            |        -----------> tags
            |        -----------> branches
            -----> library2
                     |
                     -----------> trunk
                     -----------> tags
                     -----------> branches

And potentially collections of all-trunks using svn:external as shown by the current Jakarta Commons structure.

(3.3) Bugzilla

New components under produce "Ant" for each new library.

(4) identify the initial set of committers

All current Ant PMC members plus the active Ant committers who are not PMC members yet.

Guidelines

Note:

  • is, has, will, shall, must - required.
  • may, should, are encouraged - optional but recommended.

(1) The primary unit of reuse and release is the Ant library.

(2) The library is not a framework or a general library but a collection of Ant tasks and types.

(3) Each library must have a clearly defined purpose, scope, and API.

(4) Each library is treated as a product in its own right.

(4.1) Each library has its own status file, release schedule, version number, QA tests, documentation, bug category, and individual JAR.

(4.2) Each library must clearly specify any external dependencies, including any other libraries, and the earliest JDK version required.

(4.3) Each library must maintain a list of its active committers in its status file.

(4.4) The libraries should use a standard scheme for versioning, QA tests, and directory layouts, and a common format for documentation and Ant build files.

(4.4) Each library will be hosted on its own page on the subproject Web site, and will also be indexed in a master directory.

(4.5) Volunteers become committers to this subproject in the same way they are entered to any Apache subproject.

Once the required infrastructure is in place, volunteers may become committers for a single Ant library only.

(4.6) New libraries may be proposed to the Ant dev mailing list. To be accepted, a library proposal must receive majority approval of the Ant PMC. Proposals are to identify the rationale for the library, its scope, the initial source from which the library is to be created, and the initial set of committers.

(4.7) As stated in the Ant guidelines, an action requiring majority approval must receive at least 3 binding +1 votes and more +1 votes than -1 votes.

(4.8) Each Ant library needs at least three committers, at least one of them has to be an Ant PMC member.

  • No labels