The following content refers to the “Apache Way”. For more details, you can see the official website for Apache Software Foundation. https://www.apache.org/
Individuals or groups that have the common purpose to advance Apache IoTDB, identify with the open-source culture and abide by relevant norms come together to form our community. With reference to Apache's community concept, our community has the following roles.
A user is someone who uses our software. They contribute to Apache IoTDB by providing feedback to developers in the form of bug reports and feature suggestions. Users participate in the community by helping other users on mailing lists and user support forums.
A contributor is a user who contributes to Apache IoTDB in the form of code or documentation. They take extra steps to participate in Apache IoTDB, are active on the developer mailing list, participate in discussions, and provide patches, documentation, suggestions, and criticism. Contributors are also known as developers.
A committer is a developer who has write access to the code repository and has a signed Contributor License Agreement (CLA) on file. They have an apache.org mail address. Not needing to depend on other people to make patches to the code or documentation, they are actually making short-term decisions for the project. The PMC can (even tacitly) agree and approve the changes into permanency, or they can reject them. Remember that the PMC makes the decisions, not the individual committers.
A PMC member is a committer who was elected due to merit for the evolution of the project. They have write access to the code repository, an apache.org mail address, the right to vote on community-related decisions and the right to propose other active contributors for committership. The PMC as a whole is the entity that controls the project, nobody else. In particular, the PMC must vote to approve any formal release of their project's software products.
A professional will be promoted as an Apache Committer, only if he/she has gained the trust and recommendation of the PMC, that whatever changes you push inside the project, that will not affect the overall functionality of the project and hence establish a sufficient understanding of the project and its requirements. To become a committer, you need to have a full understanding of a functional module or play a substantial role in promoting the project, such as writing technical documents, providing user cases, actively participating in community events, etc.
A project management committee (PMC) is a committee of the Apache Software Foundation charged with responsibility and governance for their top level project. The PMC is the vehicle through which decision-making power and responsibility for oversight devolves to developers. Recommendation from a PMC member is also required. You need to have a comprehensive understanding of the project, a deep insight into the time series database industry and a strong sense of identity with the open-source culture and contribute to promoting the project
Communication plays an important role in our community. There are some ways to communicate.
Apache projects use mailing lists to coordinate development of their software and administer their organization. Mailing lists also serve as a primary support channel where users can help each other learn to use the software. To subscribe the developer mailing list, send an email to dev-subscribe@iotdb.apache.org. The subject and content are not limited. After sending the first email, you receive a “confirm subscription” email from an address ended by “iotdb.apache.org.”. Send another email with unlimited subject and content to this mailbox to confirm the subscription.
Join our Slack Channel for communication. https://apacheiotdb.slack.com/ssb/redirect
We use Jira for task management and communication. To join our team in Jira, create a Jira account, which is for task management and a Confluence account, which is for co-construction of design documents. Once the accounts are created, send an email to the mailing list, including self-introduction, Jira id and Confluence id. The PMC members will add permissions to your account.
The following convention is established in line with the community culture of Apache.
Our project designates a committer to be the release manager who takes responsibility for the mechanics of a release. Release managers shepherd a release from an initial community consensus to getting the compiled code package to final distribution, and may be involved in publicizing the release to the project's community and the ASF in general.
Generally, it takes five steps to release a new version. Step 1: RM initiates a proposal. RM sends out the proposal by email. The proposal should fully explain the improvements to the new version. Step 2: Community developers view the proposal. After receiving an email, if developers have any suggestions or doubts ,then reply to the email. Step 3: RM releases a Release Candidate. After the opinions from community developers are fully considered, RM (Release Manager) releases a Release Candidate via email for the developers to test and vote. Step 4: Community developers vote. Community developers receive the Release Candidate and test it. Then, vote by email. Step 5: After the Release Candidate is voted through, RM releases an official version and makes an announcement. When the voting results meet the prescribed situation, RM releases an official version and announces the news by email. (If the Release Candidate fails, RM announces the failure of the new release by email. The process can be restarted after modification. )
https://iotdb.apache.org/Development/VoteRelease.html
The notation used in voting is:
According to the instructions given by Apache Software Foundation, we will keep the voting window for at least 72h. When at least three PMC members vote for the proposal and there are more “yes” than “no”, the proposal is passed. The results of the voting will be summarized by RM (Release Manager). RM publishes the results via email.
A detailed guide for a new RM is provided. Please check out the blog “How to Release”.