Click on the top of the “micro-service hive” can subscribe oh
What if the PMC is asleep? The first release of the project may not run, or even successful compilation, must first resolve the compliance issues! When someone submits Patch to a project, we never say “No”! Cloudera, where I worked, made money from open source, or at least made enough money to buy Hortonworks… ServiceComb, an open source microservices project, brings you to the Apache gurus and the Apache experts.
On the afternoon of October 13, 2018, the team of Open source microservices project ServiceComb invited three experts from Apache Foundation: Apache Incubator President Justin Mclean, Apache Board Director Roman Shaposhnik, Apache Secretary General Craig Russell, met with Local Apache project developers in Shanghai. In-depth discussions were held on topics of interest to developers such as Apache meritocracy, graduation from incubator to top project, and commercialization of open source software. This paper records and summarizes the exchanges on the day of the activity.
(The site is shared in English, which is translated, sorted out, corrected and summarized in this paper)
The opening is introduced
[Jiang Ning] :
Today we have gathered committer for most of the Apache related projects in the country, including Beam, ServiceComb, Dubbo, Gearpump, Griffin, Kerlin, Skywalking, and Weex. Most of these Apache projects are still incubated in incubators, and there are still some projects ready to enter the Apache incubator.
I got acquainted with Apache Software Foundation in September 2006 as an initial Committer of Apache CXF project, and became a member of Apache Foundation in January 2011. As a Mentor of the Foundation, I have participated in several Apache incubator projects from China. In 2017, I pushed ServiceComb into the Apache incubator as the project leader, and now ServiceComb will soon graduate from the Apache incubator.
Although involved in many Apache open source projects, I honestly do not have a systematic and comprehensive understanding of the Apache project incubation process. It was not until the ServiceComb project that I got a deeper understanding of the Apache incubator incubation process after I experienced the process of looking for mentors, signing donation agreements, migrating projects, incubator development and graduation preparation.
In the conversation I just had, I found that the biggest concern was how to graduate from the Apache incubator. Today, we invite Apache Member, Roman, Justin and Craig from afar to share their experience of Apache incubator incubation and their thoughts on open source with Apache project developers in China.
How to graduate from Apache Software Foundation Incubator to a Top program
[Justin]
Graduating from the Apache incubator is primarily about building a community for the incubation project. Graduating from the Project means a lot of things, such as maintaining the diversity of developers and contributing to the project from more than one company. You should also try making micro releases.
[Roman]
In addition to the project itself, there is a lot of mechanical stuff to do when releasing a release, such as open source agreements, release signatures, release votes, etc. Once the project is in the incubator, try to release the first version as soon as possible. Many podling projects are trying to get some functionality or other out of the way at release time, and I always tell them it doesn’t matter, the project won’t run or even compile successfully, just get the compliance issues out of the way first and then focus on features.
[Justin]
Yes, as early as possible and as often as possible.
[willem]
Release as painful as it is, do it as soon as possible. The first release of ServiceComb was very painful for the team, but after that phase, it will get better and better.
Summary: Key points of incubator graduation
-
Build a community
ASF has always believed that good software is built by a strong community. Of course, code is the primary focus of a software Community, but The Apache Approach “Community over Code” also emphasizes the importance of Community. It means the way we behave, how we look at each other, how we make decisions, even how we code. Healthy, respectful communities are important, and not only do their developers feel respected, but they also have real benefits. A healthy, diverse and inclusive community promotes the growth and sustainability of the project. It may even help companies that provide services using open source technologies become commercially successful.
-
Maintain diversity of contributors
The ASF places great emphasis on the principle of diversity. Most open source software projects are innovative, and diversity ensures the continuous innovation of open source projects and the healthy development of the community. Open source projects encourage all individuals and companies to participate in a way that makes them feel in control of the project or that they can have an impact on the project. This can ensure the diversity of opinions, the diversity of users, the diversity of the system. Apache projects often require people from three or more different companies to work on them so that the project doesn’t end if one of them quits.
-
Release as many versions as possible as early as possible
What are your suggestions for building a community that continues to grow?
[Zheng Shihan, Weex] : Community building and diversity are very important for graduation. Can you give some suggestions?
[Justin]
You have to make people feel welcome. When someone asks a question on the mailing list, I usually assign PMC members to focus on the question and ask if the questioner needs any more help or has any other questions, which I do on a daily basis. This also helps developers move from users to committers and even PMC members. Good documentation makes it easier for people to use your project. Missing documentation can lead to a loss of users, people compiling code and never using the project again because it’s too hard to get started.
[Roman]
Good documentation is really important. Besides, I also have other suggestions. The Apache Software Foundation is involved in a number of projects that attract development contributors. We’ve been guiding the Google Code Camp, which is sponsored by Google to help developers develop their own projects. If you can get your community to participate in this kind of activity, it will definitely help the community. Since we are from the Chinese community, I also suggest that some large Chinese companies, such as Huawei, also hold similar student programs. Students are the best fresh blood for a project.
[Justin]
Sharing projects at conferences and setting up tech blogs are also good ways to do this.
[Wu Sheng]
Skywalking is an Apache incubator project started by Chinese developers. It started with 15 committers and now has 70 committers at the code level. We encourage people to submit small changes, so it’s easy to submit code to contribute, so we attract developers every time we release. When we don’t have much to devote to testing, we attract developers to provide testing, they can submit integration test results, they can submit test models, and as long as the correct programming style is maintained, PMC members can review and merge the code.
[Justin]
One of the things I want to mention here is that a lot of projects focus too much on quality. Some Apache projects receive submissions with less-than-perfect code and simply discard them and start from scratch. It doesn’t matter, if you receive less-than-perfect PR, ask community members to help improve it. In addition, when browsing issues on JIRA or Github, if you find some simple issues, you can add an “easy to fix” tag to tell people that the issue is easy to solve, which will also attract people to contribute.
[Wu Sheng]
Yes, we follow some of the discussions, and there are times when we might consider something too ideal. But good projects are sometimes not all about perfect code, and there are different scenarios to consider. So the project can grow.
[willem]
I also want to talk about my own feelings. I quite agree with Justin when he said “Low the bar”. When I worked on The Apache Camel project, it was quite mature, but we developed it in a submit before Review way. Many people submit patches for Camel and we never say “No”. The quality of the code submitted by some people may not be very good, but we still accept the patches to make the contributors feel validated. That way, developers aren’t thinking, “Oh, I’m not good enough to be a committer, and my patches aren’t good enough, so I’m not going to commit.” We’ll also stop by to help fix the patch as we plug in the code. By the way, Apache Camel now has over 200 components and is currently maintained by only about 4 or 5 people, largely due to this way of lowering the community barrier.
Summary: Suggestions for building a community
-
To make people feel welcome.
-
Write good documentation and make it easy for beginners to get started.
-
Participate in or organize student projects like Google Code Camp.
-
Share project experience in technical conference, set up technical blog to spread technology.
-
Encourage small changes, be open to contributions from others, help improve quality, and make it easy for developers to contribute to the community.
Project submitters and PMC members are not active enough. What should I do?
[Shi Shaofen, Kerlin] : Some developers become submitters and then disappear, and sometimes PMC members don’t review submissions in a very timely manner. Are there any rules that motivate people to be active?
[Justin]
I don’t think it’s a problem that submitters or PMC members aren’t active, not everyone has to be. But it’s a problem if the mentor of the project is not active, because the mentor guides the project and tells the project members the right way to do things. We couldn’t make “rules” for submitters and PMC members, it was too much to ask of them. We should lower the bar and get more people involved.
[Roman]
Typically, the PMC for each project has a Vice President (VP), who is responsible for compliance and reports to the Apache Board, but also takes on the role of project leader. VP is the only one who has to stay awake, even when other PMC members are asleep. The VP is the default person to answer questions, not technology-related questions, but management process-related questions. If no one responds to your mailing list, write to VP and say, “Hey, everyone seems to be asleep, what should we do?” . VP has the power to make changes, he can organize people to start reviewing submissions and wake people up.
Summary: What if the PMC is asleep
-
The Apache Foundation is a public welfare organization and cannot restrict its members through compulsory requirements.
-
The problem of unresponsive communities can be addressed by lowering the threshold so that more people can participate.
-
The VP assumes project leadership responsibilities and is always active. If you have any problems, contact the VP for help
In the organizational structure of Apache Software Foundation, the Apache board of Directors is responsible for the management and supervision of foreign cooperation business and affairs, including funds, knowledge assets, registered trademarks and so on, according to the management principles of the Foundation. Each Apache project has a PMC (Project Management Committee), which is responsible for project management and oversight and reports to the Apache Board of Directors on a regular basis. PMC has a Chairperson (Chairperson), also known as Vice President of the program, or VP for short. The VP is appointed by the board and serves as the interface between the board and the project, responsible for project reporting, working with the PMC to ensure project and code compliance, managing trademark matters, managing mailing lists, and other compliance issues, and developing new Committers and PMC members.
How to maintain the correct “posture” during the long voting process?
[Zhang Tian-Lun, Gearpump] : The release vote takes at least 72+72 hours. The process is very long, and I am worried about making mistakes that lead to too few votes and failure of the release. And sometimes, when a vote is called, fewer people respond.
[Justin]
It’s okay to make a mistake once, but ask your mentor for help to avoid repeating it many times. It’s normal to have a few bugs in the first one or two releases, but later releases will go more smoothly. If the number of participants is low at the time of release, members of the Incubator Program Management Committee (IPMC), especially mentors, can be reminded to vote directly from the mailing list.
[Roman]
I think you’re all familiar with agile development, which advocates small changes and lots of updates. If your project follows an agile development approach, it will be helpful to release. When I directed the incubation of the project, except for the first release, which took a lot of time in terms of compliance, later releases should be released every month or two months as much as possible. New releases don’t have to add a lot of features. Monthly releases make it easier for IPMC members to review changes to new releases. Therefore, issue the first version, solve the compliance problem, and then issue the version as soon as possible, do more version.
[Justin]
In addition, the ability to write new changes into the release notes makes the review process much easier.
[Roman]
Yes, small iterations can also help you build a community. The smaller the patch submitted by community contributors, the easier it is to review.
Summary: Highlights of the Apache Incubator release:
-
Don’t be afraid to make mistakes when publishing. Don’t be afraid to ask your mentors and IPMC members for help, but avoid repeating mistakes.
-
Learn from the agile development model, small version iteration, frequent updates.
-
The first release swept away all compliance issues, and subsequent releases focused on functionality and quality.
-
Make version updates easier to review.
How to commercialize open source software?
[Roman]
There are many models for open source commercialization. RedHat is a great example of a company that has made a lot of money from open source. There are some new companies, like Cloudera, where I worked, that have made money from open source, or at least made enough money to buy Hortonworks.
I can outline three models for open source commercialization.
First, almost all cloud service vendors use open source products and turn them into services to make money, which is a very common commercialization model. For example, I was pleasantly surprised to see that Huawei Cloud uses Apache Flink for its streaming service, which is how Huawei uses open source to make money.
A more traditional but widely used commercial model builds products around open source software and provides additional components and technologies. These additional parts are not necessarily open source. For example, your product could use the Apache project as the core, add GPL components, add proprietary components, and make money the way Microsoft sells Windows, or Adobe sells Adobe Creative Suite.
The third commercial model is to provide differentiated integrated services or solutions based on open source software. Integrate open source software into a larger system and offer it to customers for profit. You could run a professional services company that uses open source software to help users simplify their business. For example, your company works for hotels or factories and helps them automate their operations. Customers don’t care what software or technology you use, they only care if the end-to-end solution works. By using open source software, your company can optimize it for its own needs and avoid charging commercial software to eat into your profits.
[Craig]
In the training industry, companies often need to train their employees to learn and use Apache software. We briefly considered partnering with commercial companies to provide training services and then sharing the profits with them. But the idea was just a flash in the eye and we shot it down. It would have been in competition with people providing Apache software training services, and it would have gone against the Apache vendor neutrality principle. So, if you want to monetize open source software training, go for it, it’s a good business model for open source.
Conclusion: Several ways to commercialize open source
-
Provide services with open source software, such as those from cloud service vendors
-
Additional charging features based on open source software
-
Use open source software to provide integration services and provide commercial support
-
Open source software training services
Activities in the end
After some in-depth communication and exchange, the developers on site had a further understanding of Apache Foundation, the elite management mode of the foundation and the operation mode of Apache incubator. At the end of the Meetup, three Apache experts led all the developers in the room in a mini-game called “Apache Quiz”. The questions were written by Justin and posted on the website
https://rawgit.com/justinmclean/ApacheQuiz/master/compiled/index.html
, the questions have different difficulty levels, involving the Apache Foundation management mode, Apache open source protocol, version release notes, three-party software integration, etc. Three experts and developers answer the questions together, and carried on the humorous interpretation to the topic. Finally, the event ended in laughter, and the three experts took a photo with the developers.
About the Apache ServiceComb
Apache ServiceComb is an open source microservices framework designed to enable developers to efficiently and conveniently build and manage microservices applications. The project is based on Huawei cloud micro-service engine CSE. It was opened in May 2017 and donated to Apache Software Foundation in November of the same year. After nearly a year of incubation, ServiceComb has grown from a microservices software development suite to a complete microservices solution, with a rapidly growing number of users and extensive support from enterprise and community developers. On October 24, 2018, Service B graduated from the Apache Incubator as a top project.
About Apache Foundation
Apache Software Foundation is a non-profit charitable organization founded in 1999, the English name Apache Software Foundation, referred to as ASF, originated from the development of Apache HTTP server, a hobbyist organization “Apache organization”. After nearly 20 years of growth, the Apache Software Foundation has grown to become the largest open source foundation in the world, overseeing more than 350 free enterprise-level projects and more than 190 million lines of code that serve as the backbone of widely used applications around the world.
Join the Apache developer community
Apache Software Foundation as the world’s largest open source software foundation, its unique meritocratic governance model and community culture has been favored by countless developers around the world. If you are interested in joining the Apache community and contributing to the Apache open source project, please refer to it
How to Be commiter:
http://servicecomb.apache.org/cn/developers/becomming-a-commiter
Understand the Apache Foundation management model, as well
From Open Source to Apache Commiter:
http://servicecomb.apache.org/cn/docs/how-to-grow-up-to-be-an-apache-committer/
Experience the journey of developers becoming commiters. Look forward to seeing more Chinese developers in the Apache community. See you in the community!
Organizers: Jiang Ning, general director of Apache ServiceComb community, Zen Lin, operational director, Ju Zhen, Wang Qilin, Wu Jimin and Liu Guo, members of ServiceComb.
Participating communities: Beam, ServiceComb, Dubbo, Gearpump, Griffin, Kerlin, Skywalking, Weex
Long click on the qr code below to join the ServiceComb discussion group
Click “Read the original” and add a Star to the Service ecomb!