www-announce mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sally Khudairi" ...@apache.org>
Subject Project Perspectives: Apache Weex (incubating) and The Apache Way
Date Mon, 20 May 2019 23:46:09 GMT
[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-unsubscribe@apache.org
with the word "Unsubscribe" in the subject line.

Mime
View raw message