Potential new contributors, welcome.
-
Up-to-date information about getting started is in the Contributor Guide on our wiki. Look there for developer onboarding, workflow, contribution conventions, presubmit checks and more.
-
For detailed technical questions use Github Discussions. For real-time conversations use the Magmacore Slack.
-
Please read also the DCO for details regarding regarding the sign-off rules for a contribution.
The Magma Technical Charter defines initial parameters for governance and allows for modifications to be made via this document. Procedures in this document therefore supercede those in the charter except where charter provisions disallow them. We use the convention that the entirety of Section N here replaces the entirety of Section N there; if there is no Section N here, the original Section N is unchanged.
a. The Technical Steering Committee (the “TSC”) will be responsible for all technical oversight of the open source Project.
b. Membership in the TSC is by vote of the Committers and Contributors of the project.
i. There may be three, five, or seven seats in the TSC. The procedure for membership is to sort candidates by votes received and then a random number used for tie breaking; cull candidates receiving less than two votes; cull all candidates beyond the first seven. If the remaining set is four or six, cull the last candidate.
ii. A TSC member who attends no TSC meetings in a month is removed, unless they have a genuine excuse or had a proxy attend on their behalf. They will be notified and have two weeks to respond. On removal there will be a special election to fill their seat.
iii. If active membership falls below three, the TSC's powers and responsibilities are assumed by the Governing Board.
iv. No more than one candidate from the same company can stand for election. If more than one candidate from the same company stands for election, no candidates from that company will be accepted. It is the responsibility of a company to ensure it has no more than one candidate in the running.
c. The Project Committers may choose an alternative approach for determining the voting members of the TSC, and any such alternative approach will be documented in the CONTRIBUTING file. Any meetings of the Technical Steering Committee are intended to be open to the public, and can be conducted electronically, via teleconference, or in person.
d. TSC projects generally will involve Contributors and Committers. The TSC may adopt or modify roles so long as the roles are documented in the CONTRIBUTING file. Unless otherwise documented:
i. Contributors include anyone in the technical community that contributes code, documentation, or other technical artifacts to the Project; or who joins at least five TSC meetings.
ii. Committers are Contributors who have earned the ability to modify ("commit") source code, documentation or other technical artifacts in a project’s repository; and
iii. A Contributor may become a Committer by a majority approval of the existing Committers. A Committer may be removed by a majority approval of the other existing Committers.
d. Participation in the Project through becoming a Contributor and Committer is open to anyone so long as they abide by the terms of this Charter.
e. The TSC may (1) establish work flow procedures for the submission, approval, and closure/archiving of projects, (2) set requirements for the promotion of Contributors to Committer status, as applicable, and (3) amend, adjust, refine and/or eliminate the roles of Contributors, and Committers, and create new roles, and publicly document any TSC roles, as it sees fit.
f. The TSC may elect a TSC Chair from among its membership, who will preside over meetings of the TSC and will serve until the earlier of: (1) the Chair’s resignation; or (2) the Chair’s replacement by the TSC (either by majority vote or through an election process approved by the TSC); or (3) a term of (1) year.
g. Responsibilities: The TSC will be responsible for all aspects of oversight relating to the Project, which may include:
i. coordinating the technical direction of the Project;
ii. approving project or system proposals (including, but not limited to, incubation, deprecation, and changes to a sub-project’s scope);
iii. organizing sub-projects and removing sub-projects;
iv. creating sub-committees or working groups to focus on cross-project technical issues and requirements;
v. appointing representatives to work with other open source or open standards communities;
vi. establishing community norms, workflows, issuing releases, and security issue reporting policies;
vii. approving and implementing policies and processes for contributing (to be published in the CONTRIBUTING file) and coordinating with the series manager of the Project (as provided for in the Series Agreement, the "Series Manager") to resolve matters or concerns that may arise as set forth in Section 8 of this Charter;
viii. discussions, seeking consensus, and where necessary, voting on technical matters relating to the code base that affect multiple projects; and
ix. coordinating any marketing, events, or communications regarding the Project.
i. The TSC Chair, or another TSC member so designated by the TSC, will serve as the primary communication contact between the Project and the Magma Core Foundation Fund Governing Board of the Linux Foundation ("Governing Board").
a. While the Project aims to operate as a consensus-based community, if any TSC decision requires a vote to move the Project forward, the voting members of the TSC will vote on a one vote per voting member basis.
b. Quorum for TSC votes is three voters.
c. A motion is carried by simple majority of votes cast within two weeks of the time voting opened or the time a quorum was reached, whichever comes later.
d. Every vote should have a Github issue. It might be a dedicated issue only for the vote, or some other. The issue should have the text "vote" somewhere (for findability). Any community member can record the issue. If the vote is taken on the TSC call, we will transcribe the votes in GitHub.
e. The +1 vote of the proposer and seconder are assumed. They do not have to restate their vote.
f. Abstention from voting does not count towards quorum.