incubator-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Incubator Wiki] Update of "FreemarkerProposal" by JacopoCappellato
Date Thu, 21 May 2015 09:57:11 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Incubator Wiki" for change notification.

The "FreemarkerProposal" page has been changed by JacopoCappellato:
https://wiki.apache.org/incubator/FreemarkerProposal

New page:
== Abstract ==

Freemarker is a "template engine", i.e. a generic tool to generate text output based on templates.
Freemarker is implemented in Java as a class library for programmers.

Freemarker is a mature, widely used template engine. We propose to make Freemarker a top level
project of the Apache Software Foundation, primarily so that it can build a stronger developer
community, which provides more safety, stability and support to the large user base, and also
helps evolving the engine and its integration with other projects (many of which are Apache
projects).

== Proposal ==

Freemarker is a "template engine"; a generic tool that generates text output (HTML web pages,
e-mails, configuration files, source code, etc.) based on templates and changing data. It's
not an application for end-users in itself, but a Java library, a component that programmers
can embed into their products.

Freemarker was originally created for generating HTML Web pages, particularly in servlet-based
applications following the MVC pattern. It’s not bound to servlets or HTML, however.

The Freemarker Template Language (FTL) is not a full-blown programming language like PHP.
It’s a simple, specialized language (although among template languages it’s quite flexible).
You meant to prepare the data to display in a real programming language, like issue database
queries and do business calculations, and then the template displays that already prepared
data.

Freemarker 1.x was initially released under the LGPL license. Later, by community consensus,
we have switched over to a BSD-style license. As of Freemarker 2.2pre1 (2003), the original
author, Benjamin Geer, has relinquished the copyright in behalf of Visigoth Software Society,
a nonprofit organization started by Jonathan Revusky. With Freemarker 2.3.21 (2014) the license
has changed to Apache License, Version 2.0, and the owner has changed from Visigoth Software
Society to three of the Freemarker 2.x developers, Attila Szegedi, Daniel Dekany, and Jonathan
Revusky. Apache License, Version 2.0, is the current license.

Freemarker is a mature, widely used template engine. While it continues to have a large user
base, the active developer community has become rather small at this point, and we think that
the "Apache Way" governance model and being part of the ASF (together with other projects
that are already using Freemarker) would help to bring new life and energy to the project
to better support the maintenance and improvements of the Freemarker codebase.
A larger community may also help to improve tooling (such as IDE plugins) and integration
with popular frameworks (such as Spring MVC, Struts, etc.), which could foster the adoption
of Freemarker. Last but not least, being under the Apache umbrella would put the project into
a more trustworthy legal context, which also helps adoption, particularly among bigger corporate
users.

We believe that Freemarker should become a Top Level Project as opposed to a subproject because
it has a long history and already a large feature set, codebase and documentation and there
is a lot of room for innovation and improvement that would involve more community management;
governance and autonomy to make its own direction and manage its own community may be important
long term factors for the success of the project.

== Background ==

A template engine is a template language with the basic infrastructure around it (configuring,
caching, etc.). A template language is a language specialized on generating text based on
changing data. Template languages like Freemarker Template Language are by design much simpler
than general purpose languages, while providing convenient specialized language devices for
tasks that are frequent during text generation.

Template engines, like Freemarker, play an important role in applications that leverage the
MVC (Model View Controller) pattern; for example, several web applications and web application
framework implement the MVC pattern in the user interface layer: the appearance of a page
can be changed without programmers having to change or recompile code, because the application
logic (for example a Java program or a Groovy script) and page design (for example a Freemarker
template) are separated. Freemarker is used to implement the View (V) component of the MVC
pattern.

Freemarker is also used for generating e-mail, configuration files, and pretty much anything
that’s text. The same governing MVC principles apply there too, which helps to split the
problem to more manageable pieces.

== Rationale ==

Freemarker is a mature, stable, proven and feature rich template engine.

While there are multiple alternative template engines for Java, after more than 15 years of
life, Freemarker is still one of the most featureful and most widely used product in the category
of templating engines for the Java platform.
Despite its age, Freemarker still has potential to improve its functionality without breaking
out-of-the-box backward compatibility, like fixing historical design mishaps, adopting proven
ideas from template languages of other platforms, or to innovate with novel solutions to common
templating problems.

Freemarker is integrated in several proprietary and open source products such as Apache Struts,
Apache OFBiz, Apache Camel, Liferay, Alfresco, Magnolia, and new open source frameworks such
as Moqui. Some popular IDEs, including IntelliJ and Eclipse, have plugins for the development
of Freemarker templates.

With Freemarker joining the ASF, we hope that more developers would be able to join the effort
and help improve and maintain the codebase, build new features and tools that could foster
the long-term future of the product.

== Current Status ==

Freemarker is a mature product created and maintained by a small open source community for
more than 15 years.

Currently Freemarker provides a fully functional implementation licensed under ALv2.
The project home is at http://freemarker.org/ and the majority of development is coordinated
via Sourceforge (https://sourceforge.net/projects/freemarker/) and GitHub (https://github.com/freemarker/freemarker).

The project sports detailed documentation and a big ecosystem of projects leveraging it. In
fact, quite a few existing ASF project have various integrations with Freemarker (OFBiz, Struts,
Camel etc.).

=== Meritocracy ===

Freemarker has been run by a few core project members with a few contributions coming from
a wide community of participants in the project. In the past, core project members have emerged
because of their activity and merits as contributors. The Freemarker community is open to
new ideas and to revisit old ones.

The committers and contributors that were actively involved in the project will be encouraged
to join the new incubating community.

We want to expand our developer and user community and run the Freemarker project in the "Apache
Way" clearly signaling not only the licensing, but also the governance choice.

Users and new contributors will be treated with respect and welcomed; they will earn merit
in the project by providing quality patches and support that move the project forward.
Those with a proven support and quality patch track record will be encouraged to become committers.
Committers that will work for the growth and health of the community will be invited to become
PMC members.

=== Community ===

There are currently just a few active core team members in the project and a small group of
occasional contributors. The user base is quite large and composed by end users (developers
using Freemarker for their job) and other open source projects.

=== Core Developers ===

Core developers are used to work in the openly governed communities. The core developers are
not currently affiliated with the ASF.

=== Alignment ===

The Freemarker product is already licensed under ALv2 and has been created and maintained
by an open source community for more than a decade.
Freemarker has been integrated into Apache OFBiz, Apache Struts, Apache Camel, Apache Tiles
and other projects. Becoming part of the ASF family can strengthen the collaboration with
these and other projects.

== Known Risks ==

While the Freemarker product is stable and very widely used, in the recent years the active
core developer community practically has shrunk to one person (Daniel Dekany). The core group
should grow by attracting new contributors in order to ensure continued maintenance in the
future, and to win resources that helps Freemarker to evolve faster next to the maintenance
burden.

In fact, if Freemarker will be accepted in the Incubator, the main goal during the incubation
phase will be attracting new contributors and growing the community with an "Apache Way" governance
model.

=== Orphaned products ===

The Freemarker project is backed up by an open source community that has created and maintained
the product for more than 15 years.

=== Inexperience with Open Source ===

The proposers are experienced open source developers. Freemarker to date has been developed
as an open source project.

=== Homogeneous Developers ===

The Freemarker community is not backed up by any corporation and is diverse in terms of geography
and backgrounds of developers.

=== Reliance on Salaried Developers ===

The Freemarker contributors are volunteers that are not paid for their contributions to the
project.

=== Relationships with Other Apache Products ===

Freemarker is an independent product but there are some relationships with other Apache products.
Freemarker currently uses some Apache products, mostly in its build process (for example Apache
Ant, Apache Ivy, Apache Xalan).
Freemarker has been integrated into other Apache products such as Apache OFBiz, Apache Struts,
Apache Camel, Apache Tiles.
Becoming part of the ASF family could strengthen the collaboration with these and other projects.

=== An Excessive Fascination with the Apache Brand ===

While we intend to leverage the Apache ‘branding’ when talking to other projects as testament
of our project’s ‘neutrality’, we have no plans for making use of Apache brand in press
releases nor posting billboards advertising acceptance of Freemarker into Apache Incubator.

== Documentation ==

A mature project website is available at freemarker.org.
In the website a complete manual is available: http://freemarker.org/docs/index.html

== Initial Source ==

Initial source is available on GitHub under the ALv2:
 * https://github.com/freemarker/freemarker: The template engine itself
 * https://github.com/freemarker/site: Generates the freemarker.org Web site
 * https://github.com/freemarker/docgen: Transforms an XDocBook subset to HTML; used for the
Freemarker Manual. (Also for the Web site in the future.)

== Source and Intellectual Property Submission Plan ==

We know of no legal encumberments in the way of transfer of source to Apache. The copyright
holders are the three main contributors in the history of the project, of which one is the
current maintainer and main actor in this incubation process. The other two have been contacted
to sign the Software License Agreement.

== External Dependencies ==

The dependencies all have Apache compatible licenses.

== Required Resources ==

=== Mailing lists ===

 * private@freemarker.incubator.apache.org (moderated subscriptions)
 * dev@freemarker.incubator.apache.org
 * notifications@freemarker.incubator.apache.org (commits, CI reports)

=== Git Repository ===

 * https://git-wip-us.apache.org/repos/asf/incubator-freemarker.git: the template engine itself
 * https://git-wip-us.apache.org/repos/asf/incubator-freemarker-site.git: generates the freemarker.org
Web site
 * https://git-wip-us.apache.org/repos/asf/incubator-freemarker-docgen.git: transforms an
XDocBook subset to HTML; used for the Freemarker Manual (also for the Web site in the future).

=== Issue Tracking ===

JIRA Freemarker (FREEMARKER)

== Initial Committers ==

 * Dániel Dékány, ddekany at freemail.hu
 * Evangelia Dendramis, evangeliad at gmail.com

== Affiliations ==

 * Independent: Dániel Dékány
 * Independent: Evangelia Dendramis

== Sponsors ==

=== Champion ===

Jacopo Cappellato

=== Nominated Mentors ===

 * David E. Jones - Apache Member
 * Jean-Frederic Clere - Incubator PMC
 * Jacopo Cappellato - Apache Member

We are looking for more mentors at this time.

=== Sponsoring Entity ===

We would like to propose Apache Incubator to sponsor this project.

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@incubator.apache.org
For additional commands, e-mail: cvs-help@incubator.apache.org


Mime
View raw message