Skip to content

Latest commit

 

History

History
228 lines (168 loc) · 15.2 KB

steering-and-technical-committee-charter.md

File metadata and controls

228 lines (168 loc) · 15.2 KB

Steering and Technical committee (STC)

Last updated November 2021

Overview

This document describes the bootstrapping process for the Dapr governance committee. The Dapr project has a single governance body called the Steering and Technical Committee (STC). The STC is responsible for the health of the Dapr community and for overall technical oversight.

Goals and responsibilities

The initial role of the STC is to instantiate the formal process for Dapr governance and technical oversight. Responsibilities include maintaining the governance framework, code of conduct, communication platforms, and infrastructure resources. From a technical perspective responsibilities include technical oversight, release processes, integration of technologies into the Dapr project and resolution of technical decisions. Most day-to-day work is delegated by the STC to the maintainers of the Dapr repositories and any special interest groups (SIGs) that are formed.

The governance of Dapr is an open, living document, and continues to evolve as the community and project change. In addition to defining the initial governance process, the bootstrap committee strongly believes that it is important to provide a means for iterating the processes defined by the governance committee. The role of the governance committee is to be a live, responsive body that can refactor and reform as necessary to adapt to a changing project and community.

Charter

  1. Define, evolve, and promote the vision, values, and mission of the Dapr project.
  2. Set the overall technical direction and roadmap of the Dapr project.
  3. Define and evolve project governance structures and policies, including project roles and how collaborators become members, approvers, maintainers and admistrators and the responsibilities of the release team.
  4. Steward, control access, delegate access, and establish processes regarding all Dapr project resources and has the final say in the disposition of those resources.
  5. Define and evolve the scope of the Dapr community.
  6. Receive and handle reports about code of conduct violations and maintain confidentiality.
  7. Approval of logo changes, significant website updates and marketing campaigns.
  8. Establish processes regarding project resources/assets, including artifact repositories, build and test infrastructure, web sites and their domains, blogs, social-media accounts, etc.
  9. Review security reports; work with the appropriate technical leads to accept or reject the report; maintain the private nature of such reports until disclosed to the broader community.
  10. Act as the final escalation point and decider for any disputes, issues, clarifications, or escalations within the project scope. This includes delegate appropriate authority to trusted individuals.
  11. Resolve technical issues, technical disagreements and escalations within the project.
  12. Provide guidance to, and be informed by the release team for milestone releases, and maintainers to define milestones.
  13. Decide on technical issues that affect multiple repositories when working with repository maintainers, to ensure cohesive and consistent decisions are made.
  14. Approve the creation/deletion of GitHub repositories, along with other high-level administrative issues around GitHub and our other tools.
  15. Establish and maintain the overall technical governance guidelines and processes for the project including a final escalation path.
  16. Foster an environment for a healthy and happy community of developers and contributors.

Committee meetings

The STC meets monthly and the notes are made public.

Given the private nature of some of these discussions, for example privacy, private emails to the committee, code of conduct violations, escalations, disputes between members, security reports, meetings are held in private.

A member of the STC is required to take meeting notes. Meetings notes are updated into the STC monthly issue after the meeting and made publicly available along with future action items. If a member misses more than 50% of all meetings held within a six month period then they will be removed from the committee and a special election will be held.

Questions and proposals for changes to governance are posted as issues in the community repository, and the STC invites your feedback there. See Getting in touch for other options.

Committee members

The committee is voted on every 2 years. A committee member is given;

  • owner role in the Dapr org.
  • Admin role on the Dapr Discord server.

The current committee consists of 7 members. The committee can expand up to 11 seats always maintaining an odd number.

The current membership of the STC is:

  Member Organization Profile Term Start Term End
Yaron Schneider Diagrid @yaron2 1st Dec 2023 Nov 30th 2025
Mark Fussell Diagrid @msfussell 1st Dec 2023 Nov 30th 2025
Loong Dai Intel @daixiang0 1st Dec 2023 Nov 30th 2025
Qingjie Zhao Alibaba @jackzhao 1st Dec 2023 Nov 30th 2025
Oli Tomlinson Dotmatics @olitomlinson 1st Dec 2023 Nov 30th 2025
John Ewart Microsoft @johnewart 1st Dec 2023 Nov 30th 2025
Paul Yuknewicz Microsoft @paulyuk 1st Dec 2023 Nov 30th 2025

Emeritus members

The following emeritus members are recognized for their previous role on the STC.

  Member Organization Profile
Victory Cao Alibaba @cvictory
Forrest Zhao Intel @forrest-zhao

Decision process

The steering and technical committee desires to always reach consensus.

Decisions requiring a vote include: issuing written governance policy, amending existing written governance policy, all spending, official responses to publicly raised issues, roles such as community manager, administrators, moving projects from sandbox or any other decisions that at least half the members present decide require a vote.

Decisions are made in meetings when a quorum of the members are present and may pass with at least half the members of the committee supporting it.

Quorum is considered reached when at least half of the members are present.

Composition

Seats on the steering and technical committee are held by an individual, not by their employer. This means that if an individual changes their employer, they retain their seat until the next election.

The steering and technical committee has 5 seats initially to bootstrap. These 5 seats are contributing seats, open to any project contributor. This is open to expand upto 11 seats for qualifying contributing members as the project expands. There is no timeframe for this expanded committee.

A maximum of two seats is allowed from any one company. For companies with two seats these should be filled by one person focused on the vision, values, and mission of the project and another person who is focused on the technical decisions.

STC members serve a 2-year term between elections.

Election procedure

Timeline

STC elections are held every two years. Six weeks or more before the election, the STC will appoint Election Officer(s) (see below). Four weeks or more before the election, the Election Officer(s) issue a call for nominations, publish the list of voters, and open the call for exceptions. One week before the election the call for nominations and exceptions will be closed. The election will be open for voting not less than two weeks and not more than four. The results of the election will be announced within one week of closing the election. New Steering Committee members will take office on December 1 of each year.

Election officer(s)

Six weeks or more before the election, the STC will appoint between one and three Election Officer(s) to administer the election. Elections Officers will be Dapr community members in good standing who are eligible to vote, are not running for STC in that election, who are not currently part of the STC and can make a public promise of impartiality. They will be responsible for:

  • Making all announcements associated with the election
  • Preparing and distributing electronic ballots
  • Judging exception requests
  • Assisting candidates in preparing and sharing statements
  • Tallying voting results according to the rules in this charter

Eligibility to vote

Anyone who has at least 20 contributions in the last 12 months is eligible to vote in the STC election. Contributions are defined as opening PRs, reviewing and commenting on PRs, opening and commenting on issues, writing design docs, commenting on design docs, helping people on Discord, and other efforts that help advance Dapr the project. The eligible voters list is a list of GitHub IDs.

The electoral roll of all eligible voters will be captured at Dapr/community/elections/$YEAR/voters.md and the voters’ guide will be captured at Dapr/community/elections/$YEAR/README.md

We are committed to an inclusive process and will adapt future eligibility requirements based on community feedback.

Candidate eligibility

Community members must be eligible to vote in order to stand for election. Candidates may self-nominate or be nominated by another eligible member. There are no term limits for STC committee members, meaning that a committee member can continue to be elected for new 2 year term ad infinitum.

To run for a Contributing seat, a candidate must additionally be at least a project Member as defined in community-membership.

Voting procedure

Elections will be held using a time-limited Condorcet ranking on CIVS using the Schulze method. The top vote-getters are elected to the available seats, with the exceptions for company representation discussed below.

Limitations on company representation

No more than two seats may be held by employees of the same organization (or conglomerate, in the case of companies owning each other). If the results of an election result in greater than two employees of the same organization, the lowest vote getters from any particular employer will be removed until representation on the committee is down to two.

If employers change because of job changes, acquisitions, or other events, in a way that would yield more than 2 seats being held by employees of the same organization, sufficient members of the committee must resign until only two employees of the same employer are left. If it is impossible to find sufficient members to resign, all employees of that organization will be removed and new special elections held. In the event of a question of company membership (for example evaluating independence of corporate subsidiaries) a majority of all non-involved STC Committee members will decide.

Vacancies

In the event of a resignation or other loss of an elected STC member, the candidate with the next most votes from the previous election will be offered the seat, provided that person otherwise qualifies to join the STC. This process will continue until the seat is filled.

In case this fails to fill the seat, a special election for that position will be held as soon as possible, unless the regular STC election is less than 7 weeks away. Eligible voters from the most recent election will vote in the special election. Eligibility will not be redetermined at the time of the special election. Any replacement STC member will serve out the remainder of the term for the person they are replacing, regardless of the length of that remainder.

Election date

The last election was held in Nov 2023. The next election will be held in November 2025 for all currently filled seats at that time.

Changes to the charter

Changes to the STC charter may be proposed via a PR on the charter itself. Amendments are accepted with majority consent of the committee as per the decision process outlined above.

Proposals and amendments to the charter are available for at least a period of one week for comments and questions before a vote will occur.

Authority, facilitation and decision

Ideally most decisions are made at the lowest possible level within the project: with repository maintainers. When this is not possible for technical decisions, the STC can help facilitate a conversation to work through the contended issue. When facilitation by the STC does not resolve the contention, the STC may have to make a final decision.

Note that if the STC is called to resolve contended decisions regularly, it is a symptom of a larger problem in the community that will need to be addressed.

Getting in touch

Open an issue on this community repository and mention any steering member from the list.


Portions of this document are adapted from the Kubernetes Steering Committee and the Knative Steering Committee