| the Apache Ant site |

| Home |
| Projects |

# Ant Libraries - Charter

### Charter

Below is the text of the proposal that has been accepted by the Ant PMC. Further amendments are expected.

    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 product "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.