Hi Folks,

I (and many others on the PMC) believe there are sufficient reasons to ask
the Apache Board of Directors to create a new Apache Top-Level Project
called Apache FlexJS separate from Apache Flex.  The Apache Board has
approved splitting other projects in the past and the proposal below is
based on a past proposal to split another Apache project.

The main reason is that there seems to be a set of folks who are only
working on Apache Flex and another set who are only working on FlexJS.
Only a few have made commits to both products in the past year and the
contribution to one product or the other was minimal.  Second, forking
should save time for folks only interested in Flex or FlexJS as you don't
have to filter out emails, web site and wiki information and bugs reports
that apply to the product you are not interested in.  Third, forking would
give a cleaner opportunity to try out Apache's GitBox implementation that
allows us to leverage more GitHub functionality and make GitHub more
primary in our development pipeline.  Fourth, many folks on the PMC have
not been active in a long time, and a new project with a smaller PMC and
committers list might make it more clear who is involved with FlexJS.

--------- proposal -----------

Apache FlexJS for Apache Top-Level Project

Abstract

Apache FlexJS is a new implementation of the principles of Apache Flex but
designed for JavaScript runtimes instead of Adobe Flash/AIR runtimes.
Apache FlexJS was created and released as part of the Apache Flex project
and the UI framework is a full rewrite and does not leverage the code
bases donated by Adobe.  Only the FlexJS compiler source was donated by
Adobe.

Over time, the set of Apache Flex committers who are working on Apache
Flex releases have become distinct from those working on FlexJS.  Add to
that the Adobe announcement of the end-of-life for Flash in the browser,
it makes sense to separate FlexJS from Flex so that followers of one side
or the other don't have to filter out emails, bugs, web pages, etc, that
they don't need.

The proposal is to form an Apache FlexJS top-level project instead of
creating a new Incubator Podling.   That is because all of the folks being
proposed to the new Apache FlexJS PMC below have been on the Apache Flex
PMC for months, if not years, and understand how to participate
productively in an Apache project.  Plus, Apache FlexJS has already been
released by the top-level Apache Flex project.

Overview of FlexJS

Apache FlexJS is designed to improve developer productivity in creating
applications for wherever Javascript runs, including browsers as well as
Apache Cordova applications, Node, etc.  FlexJS already has an ecosystem
of folks creating IDEs for FlexJS, and some folks are at various points in
the process of migrating existing Flex applications to FlexJS.

Current Status

Meritocracy

Within Apache Flex, the FlexJS development has been conducted as a
meritocracy.  No existing FlexJS developers came with the compiler code
base donated by Adobe nor were they on the initial committers list for
Apache Flex other than Alex Harui.  Everyone else has earned their way in
by contributing and earning merit.

Community

Many FlexJS users are trying to migrate an existing Apache Flex app off of
Adobe Flash.  As their migration progresses they will become less and less
interested in Apache Flex releases and activity.  However, the Apache Flex
JIRA project contains some  30,000 Flex issues migrated from Adobe's bug
base, and the team page for Flex makes it hard to determine which
committers are active on FlexJS, and it is frequently hard to determine if
a user's question is about regular Flex or FlexJS.   We are seeing an
increase in user interest with the Flash end-of-life announcement and
having separate mailing lists, web pages, and JIRA projects will help save
everyone time and energy.

Alignment

Apache FlexJS is already being released by Apache.

Known Risks

Code Extraction

The flex-asjs, flex-tours, flex-typedefs, and flex-falcon Git repos would
be migrated to GitBox.  Other Apache Flex repos would be treated as
external dependencies.  This includes flex-utilities and the Apache Flex
Installer.

Orphaned Projects

Most FlexJS PMC members are planning to remain on the Apache Flex PMC to
help out just-in-case, but are already mostly inactive on the Flex code
bases. However, there are at least 3 Apache Flex PMC members who have not
contributed at all to FlexJS and participate in regular Flex releases, so
the expectation is that Apache Flex will remain a viable project for some
time to come.

Inexperience with Open Source

All of the initial team has been contributing to Apache Flex for months if
not years.

Homogenous Developers

No company employs more than two of the members of the initial team.

Reliance on Salaried Developers

Until about a year ago, only 2 of the proposed PMC members were paid to
work on FlexJS.  The rest contributed in their spare time.  Two more are
now paid to migrate an existing application and thus contribute to add
missing features and fix bugs.  By creating a separate project, we hope to
attract more folks who may not want to be involved with the legacy Apache
Flex code.

Relationship with Existing Apache Projects

Apache FlexJS might use some releases from Apache Flex for some features
or for an Installer app.  FlexJS can be used to create Apache Cordova
applications and we hope to find time to make the Cordova community aware
of this capability.  The Apache FlexJS Compiler has dependencies on Apache
Commons, and we use Apache Ant and Apache Maven for building the various
release artifacts.

Cryptography

Apache FlexJS does not currently distribute cryptography code other than
an MD5 hash algorithm.

Required Resources

Mailing Lists

-private@
-dev@
-commits@
-users@
-issues@

Version Control

We would like to use GitBox if it is practical to convert the current git
repos listed above.  We want to explore using GitHub's wiki and
documentation tools.

Issue Tracking

If GitBox allows us to use GitHub issues, we will use that, otherwise, we
will request a new JIRA project from Infra.

Other Resources

We would like to try using Git for our website version control and
whatever the publishing process is.  We will probably continue to run jobs
on builds.a.o.

Initial PMC

Harbs
Yishay Weiss
Alex Harui
Peter Ent
Josh Tynjala
Piotr Zarzycki
Carlos Rovira
Greg Dove
Erik De Bruin
Omprakash Muppirala
Frédéric Thomas
Olaf Krueger
Michael Schmalle
Dave Fisher


Initial Committers

Christofer Dutz
Andy Dufilie
Darrell Loverin

We propose Harbs as initial PMC Chair and VP Apache FlexJS.

Affiliations

Alex Harui and Peter Ent are currently employees of Adobe Systems Inc.
Nobody else works for a large corporation.

--------- end proposal -----------


It isn't clear how much longer Adobe will pay Peter and I to work on Flex
and/or FlexJS.  So getting rid of as much overhead as possible so we can
try to get as many folks to use FlexJS in the next few months will help
make a case to keep us on FlexJS longer.  Yes there is a risk that forking
may be a distraction and cause a loss of momentum, but whether I get to
continue full-time or in my spare-time, I want to make the most efficient
use of my time.


I will be stepping down as Apache Flex chair since I want to spend most of
my time on FlexJS.  I will remain on the Apache Flex PMC to help out in
case of emergency.

Please provide feedback and questions ASAP.  The plan is to have a vote in
a few days so we can present this proposal to the board around September 1
so it can be on the September board agenda along with changes to the
Apache Flex chair. 


Thanks,
-Alex

Reply via email to