EasyAnt Proposal
The following presents the proposal for creating a new EasyAnt project within the Apache Software Foundation.
Abstract
Easyant is a build system based on Apache Ant and Apache Ivy.
Proposal
EasyAnt goals are :
- to leverage popularity and flexibility of Ant.
- to integrate Apache Ivy, such that the build system combines a ready-to-use dependency manager.
- to simplify standard build types, such as building web applications, JARs etc, by providing ready to use builds.
- to provide conventions and guidelines.
- to make plugging-in of fresh functionalities easy as writing simple Ant scripts as Easyant plugins.
To still remain adaptable,
- Though Easyant comes with a lot of conventions, we never lock you in.
- Easyant allows you to easily extend existing modules or create and use your own modules.
- Easyant makes migration from Ant very simple. Your legacy Ant scripts could still be leveraged with Easyant.
Rationale
On the Ivy and Ant mailing list, an often asked question is "Why Ivy is not shipped with Ant ?". Ant users (and some opponents) complains also about the bootstrapping of an Ant based build system: it is mainly about copying an existing one. EasyAnt is intended to response to both of these requirements: a prepackaged Ant + Ivy solution with standard build script ready to be used.
Also taking inspiration from the success of Apache Maven, EasyAnt is adopting the "convention over configuration" principle. Then it could be easy to build standard project at least for all commons steps (no more need to reinvent the wheel between each projects). The "common" part should be easy enough to tune parameters without having deep ant knowledge (example changing the default directory of sources, force compilation to be java 1.4 compatible, etc...).
Last but not least, EasyAnt is intended to provide a plugin based architecture to make it easy to contribute on a specific step of the build. Build plugins are pieces of functionality that can be plugged into or removed from a project. Plugins could actually perform a piece of your regular build, e.g. compile java classes during build of a complete war. Or, do a utility action, e.g. deploy your built web application onto a packaged Jetty server!
Current Status
Meritocracy
Some of the core developers are already committers and members of the Apache Ant PMC, so they understand what it means to have a process based on meritocracy.
Community
EasyAnt have a really small community (around 100 downloads per release). It is not a problem as the team is currently making restructuring changes. The team plans to make more promotion after those changes and strongly believe that community is the priority as the tool is designed to be easy to use.
Core Developers
Xavier Hanin and Nicolas Lalevée are members of the PMC of Apache Ant. Jerome Benois is an Acceleo committer, he was a committer in Eclipse MDT Papyrus for two years and he's an active contributor in Eclipse Modeling and Model Driven community. He's a committer on Bushel project now contribute to the Ivy code base. He leads the EasyAnt for Eclipse plugin development. Jason Trump is leading Beet project on sourceforge (http://beet.sourceforge.net/). Jean-Louis Boudart is Hudson committer.
Alignment
EasyAnt is based on Apache Ant and Ivy. Being part of Apache could help for a closer collaboration between projects. The team plans to reinject as much as possible stuff into Ant or Ivy like they've done in the past on :
- extensionPoint : kind of IoC for targets (Ant)
- import/include mechanism (Ant)
- module inheritance (Ivy)
Known risks
Orphaned products
Jean-Louis Boudart is the main developer of EasyAnt. Other developers got interested in this project and are now touching to every aspect of EasyAnt. Thus the risk of being orphaned is quite limited.
Inexperience with Open Source
Many of the committers have experience working on open source projects. Two of them have experience as committers on other Apache projects.
Homogenous Developers
The existing committers are spread over a number of countries and employers.
Reliance on Salaried Developers
None of the developers rely on EasyAnt for consulting work.
Relationships with Other Apache Products
As already stated above, EasyAnt is intended to have a quite good integration with both Apache Ant and Apache Ivy.
A Excessive Fascination with the Apache Brand
As we're already based on many Apache project (Ant + Ivy), it seems natural for us that Apache Software Foundation could be a good host for this.
Documentation
Further reading on EasyAnt can be found at: http://www.easyant.org/doc/
Mailing list is located at http://groups.google.com/group/easyant
Initial Source
The initial code base can be found at: http://svn.easyant.org/
Source and Intellectual Property Submission Plan
Every developer is willing to sign the proper papers to make EasyAnt enter the ASF.
External Dependencies
Easyant requires at compile/runtime :
- apache ant
- apache ivy
- ant contrib
Required Resources
Mailing lists
- easyant-private (with moderated subscriptions)
- easyant-dev
Subversion Directory
https://svn.apache.org/repos/asf/incubator/easyant
Issue Tracking
JIRA EasyAnt (EASYANT)
Initial Committers
- Xavier Hanin
- Jérôme Benois
- Jason Trump
- Siddhartha Purkayastha
- Nicolas Lalevée
- Jean-Louis Boudart
Sponsors
Champions
- Antoine Lévy-Lambert
Nominated Mentors
- Antoine Lévy-Lambert
- Stefan Bodewig
Sponsoring Entity
- Apache Ant