Proposal: Ant AntLet(s) : Subproject or New Feature

Nov 4, 2003


rationale

With Ant 1.6 there are new features of <import> and <macrodef> that support re-use. Still, however, Ant is a framework/toolkit for building, but it does not provide any out-of-the-box solutions. Simple tasks are repeated many fold by ant users, and re-use would improve community benefit.

A solution is needed for building java projects, creating JARs/distributions, and so forth. If these solutions (part include, part macrodef, part normal ant tasks, part properties) are called "antlets", then a standard set of antlets ought be provided and maintain by the ant community.

Ant 1.6 has the technologies in place to make antlets a viable (and configurable) addition to ant.


criteria

Meritocracy:

Community:

Alignment:

Scope:


warning signs

The sponsors and core developers are seasoned developers with a history of Open Source Development, and are avid Ant users.

  • Nick Chalko is a memeber of the Jakarta Gump project, has contributed to Ant, and on the PMC of Krysalis.
  • Adam Jack is spearheading the Jakarta Gump rewrite in Python, and is on the PMC of Krysalis.


scope of the subproject

  • AntLet: A technology framework for antlets (including development/debugging/maintenance)

  • StandardAntLets: A standard set of antlets for re-usable tasks


Overlap

Antlet are "AntLibs written in Ant, not Java". An implmentation would likely leverage <include and <macrodef (and other parts of Ant 1.6) it is not attempting to be replacement. AntLibs and <taskdef allow for Ant tasks to be included/called, and Antlets are attempt to formalize this for Ant script. Antlets communicate via properties/types. [Note: <include is a powerful new feature in Ant, and antlets is primarily this, plus some conventions.]

AntLet has potential overlap with Maven, because some antlets could deal with build aspects, that Maven provides. That said, Maven's primary goal is to allow a developer to comprehend the complete state of a development effort in the shortest period of time. This is accomplised by using its project object model (POM) and a single set of Ant build files that are shared by all projects using Maven thus providing a uniform build system. Antlets takes a more conservative approach, staying closer to the Ant Feel. Antlets do not rely on a Project Object Model, but use standard ant properties. Antlets are desinged to be plugged into existing build.xml files as needed. Theoretically Maven could leverage Antlets or Antlets call Maven plugins.


Not in Scope

  • Project Metadata


identify the initial source from which the subproject is to be populated

The Krysalis antlib project has a set of standard ant targets that are suitable for conversion to antlets.

An ImportAntletTask is available at


identify the ASF resources to be created

  • Sub-project or sub-directory on Ant website
  • cvs module (antlets)
  • mailing list (antlets)


identify the initial set of committers

These would be the core developers initially "responsible" of the project, that are willing to actively help.


identify apache sponsoring individual


open issues for discussion

  • The name is still to be defined. AntLets is a placeholder for now.

  • No labels