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
  • No labels