[this post is available online at https://s.apache.org/9Qbv ]

by York Shen, member of the Apache Weex Project Management Committee 

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 
became an Open Source project in early 2016 and entered the Apache Incubator in 
December 2016. As a PMC member, I have been with the project from beginning to 
today; 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 The Apache Software Foundation (ASF) divides its projects into two types, 
namely Top-Level Projects (TLPs) and Incubator projects (known as "podlings"), 
joining the Apache Incubator is not the end. Instead, it is just a beginning.

Community
As a project under the ASF, Weex should and would do things under The Apache 
Way. But as one might imagine, there are a few problems Weex has to solve:

It is said that "If it didn't happen on (a mailing) list, it didn't happen". As 
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. For example, there were many internal IM and face-to-face 
communications, which is not an an endorsed way of project management and 
operation under The Apache Way. Also, many Weex contributors and users are 
Chinese, and they preferred Chinese to communicate, report bugs, and write 
documentation, which is also not typical under The Apache Way.

Engineering and Product
There are some technical issues due to the feature of Weex:

As both Android and iOS system are upgraded each year, their features and APIs 
also get updates each year. Weex is a cross-platform framework and designed to 
provide mobile feature with front-end technology, which means that it is not a 
easy task to map these Java (for Android system) and Objective-C (for iOS 
system) APIs to front-end world. Yearly updates of these systems makes it even 
harder.

Users of Weex are mainly front-end engineers while the project’s contributors 
and committers are Android and iOS developers: there is a technological stack 
gap between users and Weex contributors.

The active committers of Weex are not enough: it is difficult to maintain a 
project that provides Operating System API with about ten active committers.

Weex Way
Open Source is more than just code.

Weex has two repositories: one from before its donation to the ASF, and the 
other is after that. There are are nearly 30 thousand stars on GitHub among 
these two repositories: what an exciting number! But Open Source is more than 
just about code.

Community
Community Over Code.

Currently, most Open Source projects will adopt one of the governance 
structures:

 - BDFL (benevolent dictator for life)
 - Meritocracy
 - Liberal contribution

The Apache Way promotes earned authority, the ASF champions Meritocracy, where 
community is over code.

Mailing List

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

As 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 requests from our coworkers, who often choose face-to-face 
conversations to discuss new features.

Code commits without discussion in mailing lists is not what Weex's PMC wants, 
nor is it The Apache Way either. Therefore, the Apache Weex PMC needs to 
enforce some rules to make things right: 

The 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
Apache Weex is overseen by the ASF and developed by a community of developers. 
It is important to follow the Consensus building and Voting procedures. The 
procedure is transparent and search engine-friendly to all users worldwide. It 
is normal that someone stops maintaining a project due to their interests 
changing or perhaps a change in their work situation. Projects that obey the 
previous consensus building and decision making procedures are normally more 
stable and robust in the long term compared with projects that don’t, as 
current maintainers would have a better understanding of what was happening 
before by searching a mailing list.

By default, the official language used in Apache mailing lists is English, 
which causes some problems for many Weex users who are Chinese and not 
proficient or comfortable at communicating in English. Therefore, enthusiastic 
contributors of Apache Weex would often  prefer to use 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' posts, but it is worthy to let 
the rest of the world understand what is happening here (on list).

In fact, there is a discussion about language used in the Weex mailing lists.

Engineering and Product

Infrastructure

Many users prefer Weex in their commercial products, among top of which have 
nearly 0.7 billion MAU. In such cases, project stability is our priority, as 
99.999% availability only means that ten thousands of end users may experience 
problems.

Therefore, we choose to reduce or remove features from Weex instead of adding 
them:

The priority of Weex now is stability, which means only bugfixes are allowed;
New features should be imported to Weex as a plugin, which allows developers to 
 choose to enable or disable a certain plugin;

Developers' Feedback

We also make a feedback convention between our users and contributors in order 
for user problems to be solved efficiently.

Github Issues are only for Bug Feedbacks: other problems should go through 
mailing list.

It is important to report a bug according to the bug reporting template.

Future Growth
There are many end users that choose Weex in their commercial product, among 
which include Taobao Mobile, with hundreds of millions of users. For a list of 
known companies using Apache Weex, please see 
https://weex.apache.org/community/who-is-using-weex.html .

For now, Weex is still a project under development in the Apache Incubator. We 
welcome you to join the Apache Weex community. Visit us at 
https://weex.apache.org/

# # # 

Part of the "Success at Apache" series, Project Perspectives chronicles how 
projects and their communities have benefited from The Apache Way.

= = =

NOTE: you are receiving this message because you are subscribed to the 
announce@apache.org distribution list. To unsubscribe, send email from the 
recipient account to announce-unsubscr...@apache.org with the word 
"Unsubscribe" in the subject line.

Reply via email to