1<!-- SPDX-License-Identifier: CC-BY-4.0 --> 2<!-- Copyright Contributors to the Open Shading Language Project. --> 3 4# OSL Project Governance 5 6OSL is a project of the Academy Software Foundation and relies on the ASWF 7governance policies, supported by the Linux Foundation. 8 9There are three primary project roles: Contributors submit code to the 10project; Committers approve code to be included into the project; and the 11Technical Steering Committee (TSC) provides overall high-level project 12guidance. 13 14* [Contributors](#Contributors) 15* [Committers](#Committers) 16* [Technical Steering Committee](#Technical-Steering-Committee) 17 18## Contributors 19 20The OSL project grows and thrives from assistance from Contributors. 21Contributors include anyone in the community who contributes code, 22documentation, or other technical artifacts that have been incorporated into 23the projects repository. 24 25Anyone can be a Contributor. You need no formal approval from the project, 26beyond the legal forms. 27 28### How to Become a Contributor 29 30* Review the coding standards to ensure your contribution is in line 31 with the project's coding and styling guidelines. 32 33* Sign the Individual CLA, or if you are employed by an organization that 34 might have any claim to IP you create, have your organization sign the 35 Corporate CLA. 36 37* Submit your code as a PR with the appropriate DCO sign-off. 38 39## Committers 40 41Project Committers have merge access on the OSL GitHub repository 42and are responsible for approving submissions by Contributors. 43 44### Committer Responsibilities 45 46Typical activities of a Committer include: 47 48* Helping users and novice contributors. 49 50* Ensuring a response to questions posted to the 51 [osl-dev developer mail list](https://lists.aswf.io/g/osl-dev) 52 53* Contributing code and documentation changes that improve the project. 54 55* Reviewing and commenting on issues and pull requests. 56 57* Ensuring that changes and new code meet acceptable standards and are in 58 the long-term interest of the project. 59 60* Participation in working groups. 61 62* Merging pull requests. 63 64### How to Become a Committer 65 66Any member of the OSL community (though typically an existing Committer or 67TSC member) may nominate an individual making significant and valuable 68contributions to the OSL project to become a new Committer. To nominate a 69new Committer, open an issue in the OSL repository, send mail to the TSC 70mail list, or raise the issue at a TSC meeting. 71 72The TSC may periodically review the Committer list to identify inactive 73Committers. Past Committers are typically given Emeritus status. Emeriti may 74request that the TSC restore them to active Committer status. 75 76## Technical Steering Committee 77 78The Technical Steering Committee (TSC) has final authority over this 79project. As defined in the project charter, TSC responsibilities include, 80but are not limited to: 81 82* Coordinating technical direction of the Project. 83 84* Project governance and contribution policy. 85 86* GitHub repository administration. 87 88* Maintaining the list of additional Committers 89 90* Appointing representatives to work with other open source or open 91 standards communities. 92 93* Discussions, seeking consensus, and where necessary, voting on technical 94 matters relating to the code base that affect multiple projects. 95 96* Coordinating any marketing, events, or communications regarding the 97 project. 98 99Within the TSC are two elected leadership roles to be held by its members 100and voted on annually. Any TSC member can express interest in serving in a 101role, or nominate another member to serve. There are no term limits, and one 102person may hold multiple roles simultaneously. Should a TSC member resign 103from a leadership role before their term is complete, a successor shall be 104elected through the standard nomination and voting process to complete the 105remainder of the term. The leadership roles are: 106 107* **Chair**: This position acts as the project manager, organizing meetings 108 and providing oversight to project administration. 109 110* **Chief Architect**: This position makes all the final calls on design and 111 technical decisions, and is responsible for avoiding "design by committee" 112 pitfalls. 113 114The chair role is assumed to rotate annually (though there are no term 115limits, so the TSC may reelect an existing chair). The chief architect 116position should be a source of stability and coherent design vision, so the 117TSC is encouraged to choose an architect who can serve for many years and 118only change architects when it is necessary for the health of the project 119and its community. 120 121At the time of election, the TSC will also agree upon which of these two 122leaders will serve as the OSL ASWF (Academy Software Foundation) TAC 123(Technical Advisory Council) representative for the term. This member 124represents the project at all ASWF TAC meetings. 125 126### TSC Members 127 128Current voting members of the TSC are: 129 130* **Chair and TAC representative**: Chris Kulla - Epic Games 131* **Chief Architect**: Larry Gritz - Sony Pictures Imageworks 132 133* Luke Emrose - Animal Logic 134* Eric Enderton - NVIDIA 135* Stephen Friedman - Pixar 136* Nicolas Guiard - Isotropix 137* Derek Haase - DNEG 138* Adrien Herubel - Autodesk 139* Lee Kerley - Sony Pictures Imageworks 140* Mitch Prater - Laika 141* Brecht Van Lommel - Blender 142 143### TSC Nomination and Succession 144 145Any proposal for additional members of the TSC may be submitted by 146Committers, TSC members, or other major stakeholders of the OSL community by 147opening an issue outlining their case or raising the issue at a TSC meeting. 148New TSC members are accepted or rejected by majority vote of the TSC. 149 150If a TSC member is for an extended period not regularly participating or 151performing the responsibilities expected of TSC members, the TSC may by 152majority vote request an alternate TSC member be submitted by that 153organization, or remove the inactive member from the TSC. 154 155A voting member of the TSC may nominate a successor in the event that such 156voting member decides to leave the TSC, and the TSC, including the departing 157member, shall confirm or reject such nomination by a vote. In the event that 158the departing member's nomination for successor is rejected by vote of the 159TSC, the departing member shall be entitled to continue nominating 160successors until one such successor is confirmed by vote of the TSC. If the 161departing member fails or is unable to nominate a successor, the TSC may 162nominate one on the departing member's behalf. 163 164TSC membership is presumed to be retained by the individual even if they 165change employers. The TSC may take action to ensure that organizational 166stakeholder representation not become severely disproportionate, for example 167by urging an organization that loses its sole TSC representative to nominate 168a new member, or to limit the total number of voting members from any one 169organization if too many members all move to the same organization. 170 171### TSC Meetings 172 173Any meetings of the TSC are intended to be open to the public, except where 174there is a reasonable need for privacy. The TSC meets regularly in a voice 175conference call, at a cadence deemed appropriate by the TSC. The TSC Chair 176moderates the meeting, or appoints another TSC member to moderate in his or 177her absence. Meetings may also be streamed online where appropriate; 178connection details will be posted to the osl-dev mail list in advance of the 179scheduled meeting. 180 181Items are added to the TSC agenda which are considered contentious or are 182modifications of governance, contribution policy, TSC membership, or release 183process, in addition to topics involving the high-level technical direction 184of the project. 185 186The intention of the agenda is not to approve or review all patches. That 187should happen continuously on GitHub and be handled by the larger group of 188Committers. 189 190Any community member or Contributor can ask that something be reviewed by 191the TSC at the meeting by logging a GitHub issue. Any Committer, TSC member, 192or the meeting chair can bring the issue to the TSC's attention by applying 193the `TSC` label. 194 195Prior to each TSC meeting, the meeting chair will share the agenda with 196members of the TSC. TSC members can also add items to the agenda at the 197beginning of each meeting. The meeting chair and the TSC cannot veto or 198remove items. 199 200The TSC may invite additional persons to participate in a non-voting 201capacity. 202 203The meeting chair is responsible for ensuring that minutes are taken and 204archived in the project repository. 205 206Due to the challenges of scheduling a global meeting with participants in 207several time zones, the TSC will seek to resolve as many agenda items as 208possible outside of meetings on the public mailing list. 209 210