About a month ago, I promised to write an article for Apache 20th
Anniversary on behalf of Weex. I have finished the work until today. The
content is shown below. Feel free to give any comment or feedback.

Introduction

I am a Project Management Committee ( *PMC* ) member of *Apache Weex* (
*Incubating* ), a cross platform mobile development framework, widely used
in many mobile Apps, among top of which have nearly 0.7 billion MAU( *Monthly
Active Users* ).

Weex <https://weex.apache.org/> became an open source project in early 2016
and joined the Apache Incubator in Dec, 2016. As a Project Management
Committee member, I go though with the project from beginning to nowadays,
it is an exciting journey mixed with challenge and suffering, and the
journey is not end yet.
Challenge

This is not the end. It is not even the beginning of the end. But it is,
perhaps, the end of the beginning. - Winston Churchill

As ASF <https://www.apache.org/> ( *Apache Software Foundation* ) divides
its projects into two types, namely TLP
<https://blogs.apache.org/foundation/entry/incubation_at_apache_what_s> ( *Top
Level Project* ) and Incubator Project <https://incubator.apache.org/>,
joining Apache Incubator is the end. Instead, it is just a beginning.
Community

As a project under ASF, Weex should and would do things under the Apache Way
<https://www.apache.org/foundation/how-it-works.html#philosophy>. But as
one might imagine, there are lots of problems Weex has to solve:

   - It is said that *If it didn't happen on a mailing list, it didn't
   happen*. While Weex was developed by Alibaba Inc. and donated to ASF, it
   is not surprising that some contributors and committers of Weex are
   full-time employees of Alibaba Inc. Therefore, there was plenty number of
   internal IM and Face to Face communication, which is not an Apache way.
   - Many of Weex contributors and users are Chinese, they preferred
   Chinese to communicate, report bugs and write document, which is not a
   typical Apache Way.

Engineering and Product

There are some technical issue due to the feature of Weex:

   - It is known to all that Android and iOS System got upgrade each year,
   therefore feature and API also got updates each year. Weex is a cross
   platform framework and designed to provide mobile feature with Front-End
   Technology, it is not a easy task to map these Java (*for Android system*)
   and Objective-C (*for iOS system*) API to Front-End world, and yearly
   updates of the systems makes it even harder.
   - The users of Weex are Front-End Engineers while the contributors and
   committers are Android and iOS developers, there is a technological stack
   gap between users and Weex contributors.
   - The active committers of Weex is not enough, it is hard to maintain a
   project that provides Operating System API with no more than ten active
   committers.

Weex Way

Open source is more than just code.

There are two repositories for Weex, one is before the donation to ASF, the
other is after that. And there are are nearly 30 thousand stars among these
two repositories. What an exciting number. But *Open source is more than
just code*, it is about more.
Community

Community over code.

Currently, most open source project will adopt one of the governance
structures
<https://opensource.guide/leadership-and-governance/#what-are-some-of-the-common-governance-structures-for-open-source-projects>
:

   - BDFL
   - Meritocracy
   - Liberal contribution

ASF is an endeavor to *Meritocracy*, in which *community is over code.*
Mailing List

If it didn't happen on a mailing list, it didn't happen.

As it is mentioned above, many Weex contributors and committers are
employees of commercial companies, and some of their companies even prefer
Weex in their production environment. Therefore we, as employees receive a
great deal of feature request from coworker, some of them might even choose
face to face conversation to discuss new feature.

Code commits without discussion in mailing list is not Weex PMC's want, not
Apache Way either. Therefore PMC of weex have made some rules to make thing
right:

   - Dev@ mailing list is the only official communication channel, all
   features must be discussed in the mailing list before coding except tiny
   bugfix like fixing a null pointer exception.
   - Move Github PR and Issue from dev@ to a separate mailing list to avoid
   noise.

Decision Making

Weex is owned by ASF and developed by a group of developers. It is
important to follow the Consensus building and Voting procedure. The
procedure is transparent and search engine friendly to all users in the
world. It is normal that someone stops to maintain a project due to
interest change or work change, a project fullfils the previous procedure
is more robust against developers changes as current developers can search
for the corresponding mails and have a better understanding of what is
happening there.

By default, the official language used in Apache mailing list is English,
but it is problems for Weex as many users of Weex are Chinese who are not
good at communicating in English. Therefore, enthusiastic contributors of
Weex would always prefer *Google Translate* to translate Chinese to English
to let others known what is happening, and politely remind the original
author to use Chinese next time. It is a time consuming and tedious job to
translate others' post, but it is worthy to let the world understand what
is happening here.

*In fact, there is a discussion
<https://www.mail-archive.com/[email protected]/msg57218.html> about
language used in mailing list.*
Engineering and ProductInfrastructure

There are many users that prefer Weex in their commercial product, among
top of which have nearly 0.7 billion MAU. In such cases, stable is our
priority, as 99.999% availability only means that ten thousands of our end
users got problems.

Therefore, we choose minus feature from Weex instead of adding features:

   - The priority of Weex is stable, which means only bugfix is allowed
   - New feature imported to Weex as a plugin, developers can choose enable
   or disable a certain plugin.

Developers' Feedback

We also make a feedback convention
<https://weex.apache.org/guide/contribute/how-to-contribute.html#ask-or-answer-questions>
between
our users and contributors to get users' problem solved efficiently.

   - Github Issue is only for Bug Feedback, others problem should go
   through mailing list.
   - It is important to fire a bug according to the bug reporting template
   <https://github.com/apache/incubator-weex/issues/new>

Ending

Until Now, Weex is still a project under Apache Incubator.

You are welcomed to join the Weex Community
<https://weex.apache.org/guide/contribute/how-to-contribute.html#mailing-list>
.

Best Regards,
YorkShen

申远

Reply via email to