From 10077e4f6f389ec7514eda8ebd5831f05da3d60a Mon Sep 17 00:00:00 2001 From: Evan Anderson Date: Thu, 24 Sep 2020 10:48:40 -0700 Subject: [PATCH] Define (charter) Steering and Trademark Committees (#277) * WIP: proposal for steering composition mechanics * Remove missed line about absences * update consortium -> conglomerate * Incorporate feedback from PR comments * Address community feedback from PR * Resolve open issues from PR discussion * Convert google doc to PR amendment * Missed some edits in steering charter, and one typo. * Plumb in concept of exception request for TM committee membership consideration * Add note about unbounded size * Update with feedback from steering and trademark discussions * Fix headers, add intro and member list for trademark * Fix "VMware" name. * Link to GOVERNANCE.md and fix ty pos * anicolao found a bunch more typos! * Address @anicolao comments * One more comment to streamline KTC powers, but keep requirement of sublicensing to community && git push origin * Remove redundant commitment to growth (still have one in there!) * Update end-user seat counts more comprehensively. * Adjust end-user text and another typo * Typo fix * Move delegation of mark to KSC into delegation section * Bootstrap with Ron and Paul * Paul walks backward quickly * fix typo Co-authored-by: Paul Morie --- GOVERNANCE.md | 37 +++++ STEERING-COMMITTEE.md | 312 +++++++++++++++++++++++++++++------------ TRADEMARK-COMMITTEE.md | 154 ++++++++++++++++++++ 3 files changed, 413 insertions(+), 90 deletions(-) create mode 100644 GOVERNANCE.md create mode 100644 TRADEMARK-COMMITTEE.md diff --git a/GOVERNANCE.md b/GOVERNANCE.md new file mode 100644 index 0000000..69b2b40 --- /dev/null +++ b/GOVERNANCE.md @@ -0,0 +1,37 @@ +--- +title: "Knative Governance Framework" +linkTitle: "Governance" +weight: 20 +type: "docs" +aliases: + - /contributing/governance/ +--- + +Knative Governance is broken into three components. At a high level, the Knative +Steering Committee (KSC) is the "root" level governance body, but the Knative +Trademark Committee (KTC) operates within a protected governance umbrella in +parallel with the KSC. As such, the KSC may investigate and enforce Code of +Conduct actions against members of the KTC, but may not alter the charter or +governance of the KTC rules. The Tech Oversight Committee (TOC) operates +entirely within the governance definitions delineated by the KSC. + +## Community and Operations + +The [Knative Steering Committee](./STEERING-COMMITTEE.md) is responsible for the +general health of the Knative community. Responsibilities include maintaining +the governance framework, code of conduct, community meetings, communication +platforms, and test resources. + +## Trademarks + +The [Knative Trademark Committee](./TRADEMARK-COMMITTEE.md) is responsible for +management, licensing, and conformance verification of Knative logos, names, and +trademarks, including the definition of what "Knative" is and the definition and +rules for usage of derived marks. + +## Technology and Software Implementation + +The [Knative Technical Oversight Committee](./TECH-OVERSIGHT-COMMITTEE.md) is +responsible for the technical oversight, release process, and integration of the +technology components of the Knative project. Most day-to-day work is delegated +by the TOC to various subject-specific working groups. diff --git a/STEERING-COMMITTEE.md b/STEERING-COMMITTEE.md index e5d150e..9457afb 100644 --- a/STEERING-COMMITTEE.md +++ b/STEERING-COMMITTEE.md @@ -7,39 +7,45 @@ aliases: - /contributing/steering-committee/ --- -The Knative Steering Committee (KSC) is the ultimate authority for the Knative -project, and governs all aspects of the project. +The Knative Steering Committee (KSC) is +[responsible for the general health of the Knative community](./GOVERNANCE.md). The governance of Knative is an open, living document, and will continue to -evolve as the community and project change. We expect over time we will adapt -the way we run this committee, based on feedback from the community. +evolve as the community and project change. - [Charter](#charter) - [Delegated authority](#delegated-authority) - [Committee Meetings](#committee-meetings) -- [Committee Mechanics](#committee-mechanics) - [Committee Members](#committee-members) - - [Allocation of seats](#allocation-of-seats) - [Decision process](#decision-process) -- [Changes to the charter](#changes-to-the-charter) - [Getting in touch](#getting-in-touch) +- [Elections](#election-procedure) + - [Timeline](#timeline) + - [Election Officer(s)](#election-officers) + - [Eligibility to Vote](#eligibility-to-vote) + - [Candidate Eligibility](#candidate-eligibility) + - [Voting Procedure](#voting procedure) + - [Limitations on Company Representation](#limitations-on-company-representation) +- [Vacancies](#vacancies) +- [Transition](#transition) +- [Changes to the charter](#changes-to-the-charter) +- [Authority, Facilitation, and Decision Making in Knative](#authority-facilitation-and-decision-making-in-knative) ## Charter -1. Define, evolve, and promote the vision, values, mission, and scope of the - project. +1. Define, evolve, and promote the vision, values, and mission of the project. 1. Define and evolve project governance structures and policies, including project roles and how collaborators become members, approvers, leads, and/or administrators. This includes policy for the creation and administration of [working groups](./working-groups/WORKING-GROUPS.md) and committees. -1. Steward, control access, delegate access, and establishes processes - regarding, all Knative project resources and has the final say in the - disposition of those resources. -1. Manage the Knative brand and decide which things can be called "Knative" and - how that mark can be used in relation to other efforts or vendors. -1. Confirm/reject nominations to the KSC from organizations who are allocated - seats. -1. Confirm/reject nominations to the Technical Oversight Committee. +1. Steward, control access, delegate access, and establish processes regarding + all Knative project resources and has the final say in the disposition of + those resources. +1. Advise the Trademark Committee on usage of the brand and marks in relation to + promoting the community. This advice is non-binding on the Trademark + Committee. +1. Define and evolve the scope of the Knative community and extensions, and the + process for migration of sandbox projects into Knative Extensions. 1. Receive and handle reports about [code of conduct](./CODE-OF-CONDUCT.md) violations and maintain confidentiality. 1. Receive security reports; work with the appropriate technical leads to accept @@ -60,98 +66,57 @@ committee currently recognizes this delegated authority for: KSC meets every two weeks, or as-needed. Meetings are held online. -Given the private nature of many of these discussions (e.g. privacy, private +Given the private nature of some of these discussions (e.g. privacy, private emails to the committee, code of conduct violations, escalations, disputes -between members, security reports, etc.) meetings are held in private. +between members, security reports, etc.) some meetings are held in private. -Meeting notes are available to members of the knative-dev mailing list (link to -be added). +Meeting notes are available to members of the +[knative-dev mailing list](https://groups.google.com/forum/#!forum/knative-dev) +(note: these are accessible to members of the knative-users list as well). +Public meetings will be recorded and the recordings made available publicly. -Questions and proposals for changes to governance are posted as [issues in the -community repo](https://github.com/knative/community/issues), and the KSC -invites your feedback there. See [Getting in touch](#getting-in-touch) for other -options. +Questions and proposals for changes to governance are posted as +[issues in the community repo](https://github.com/knative/community/issues), and +the KSC invites your feedback there. See [Getting in touch](#getting-in-touch) +for other options. ## Committee members -Seats on the Steering Committee are held by an organization, not by the -individual. - -The committee was created as the project was in its infancy, in order to tackle -governance and overall project strategy. Because of the nature of the project -and funding required, it was decided that strong corporate leadership was -necessary for the project to ensure velocity. As the project grows and matures -the KSC will, from time to time, consider if this policy should be changed. +Seats on the Steering Committee are held by an individual, not by their +employer. The current membership of the committee is currently (listed alphabetically by first name): -|   | Member | Organization | Profile | -| ---------------------------------------------------------- | ---------------- | ------------ | -------------------------------------------- | -| | Alex Nicolaou | Google | [@anicolao](https://github.com/anicolao) | -| | April Kyle Nassi | Google | [@thisisnotapril](https://github.com/thisisnotapril) | -| | Brenda Chan | VMware | [@bsnchan](https://github.com/bsnchan) | -| | Michael Behrendt | IBM | [@mbehrendt](https://github.com/mbehrendt) | -| | Paul Morie | Red Hat | [@pmorie](https://github.com/pmorie) | -| | Ron Avnur | Google | [@ronavn](https://github.com/ronavn) | -| | Open \* | Google | | +|   | Member | Organization | Profile | +| -------------------------------------------------------------- | ---------------- | ------------ | ---------------------------------------------------- | +| | Alex Nicolaou | Google | [@anicolao](https://github.com/anicolao) | +| | April Kyle Nassi | Google | [@thisisnotapril](https://github.com/thisisnotapril) | +| | Brenda Chan | VMware | [@bsnchan](https://github.com/bsnchan) | +| | Michael Behrendt | IBM | [@mbehrendt](https://github.com/mbehrendt) | +| | Paul Morie | Red Hat | [@pmorie](https://github.com/pmorie) | +| | Ron Avnur | Google | [@ronavn](https://github.com/ronavn) | +| | Open \* | Google | | - -\* Open seats have been allocated to the organization per the committee rules, - but have not been assigned to a member of the organization. - -### Allocation of seats - -Seats on the steering committee are allocated based upon contribution to the -project by an organization. No final decision has been made on the exact -formula. - -As the project continues to grow, we expect to add additional seats to the -committee, ensuring that those contributing to the project are properly -represented. - -- After a seat is allocated to an organization, the organization shall nominate - a candidate to be confirmed by KSC. The committee reserves the right to not - confirm a candidate, in which the organization would need to nominate a new - candidate -- Members of the committee may step down at any time. When a member steps down, - their organization shall nominate a new candidate. -- If a member leaves their organization, the organization must nominate a new - committee member to replace them following the nomination and confirmation - process. -- If an organization is unable to seat a candidate, the KSC reserves the right - to reallocate the seat to another organization. -- Changes to the number of seats, which company seats are allocated to, and - nominations to the committee are confirmed by majority vote of the committee - members. -- In situations where the organization which holds a seat is no longer a viable - entity (e.g. merger, dissolution, bankruptcy) the KSC will make a decision on - how to reallocate that seat. Seats do not automatically transfer to any - organization. -- Members on the committee have a 1 year term from their confirmation, and may - be reconfirmed to the committee at the end of their term. +\* Open seats have been allocated to the organization per the prior committee +rules, but have not been assigned to a member of the organization or replaced +with elected seats. ## Decision process The steering committee desires to always reach consensus. +Decisions requiring a vote include: issuing written policy, amending existing +written policy, creating, removing, or modifying a working group, all spending, +hiring, and contracting, official responses to publicly raised issues, 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 majority of the committee supporting it. +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. -In case of extended absence, the organization of the absent member may appoint a -single delegate from the same company during the absence. - -## Changes to the charter - -Changes to the KSC charter may be proposed via a Pull Request on the charter -itself. Amendments are accepted with majority consent of the committee. - -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. - -## Raising issues to the steering committee +## Getting in touch There are two ways to raise issues to the steering committee for decision: @@ -162,11 +127,178 @@ There are two ways to raise issues to the steering committee for decision: 2. Open an issue on a knative repository and indicate that you would like attention from the steering committee. +## Composition + +The steering committee has 5 seats. These five seats are Contributing seats, +open to any project contributor. In the future, the steering committe would like +to add two End-User seats, open only to active end-user community members, once +the selection criteria have been established. See +[candidate eligibility](#candidate-eligibility) for definitions of these +categories. + +Steering Committee members serve for 2-year terms, staggered in order to +preserve continuity. Every year either two or three contributor seats are +elected. Once end-user mechanics are established, one end user seat would be +elected on the same schedule. + +## Election Procedure + +### Timeline + +Steering Committee elections are held annually. Six weeks or more before the +election, the Steering Committee will appoint Election Officer(s) (see below). +Four weeks or more before the election, the Election Officer(s) will 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 Steering Committee will appoint +between one and three Election Officer(s) to administer the election. Elections +Officers will be Knative community members in good standing who are eligible to +vote, are not running for Steering in that election, who are not currently part +of the Steering Committee 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 50 contributions in the last 12 months is eligible to +vote in the Steering 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 slack, participating +in working groups, and other efforts that help advance Knative the project. + +[This dashboard](https://knative.teststats.cncf.io/d/9/developer-activity-counts-by-repository-group-table?orgId=1&var-period_name=Last%20year) +shows only GitHub based contributions and does not capture all the contributions +we value. We expect this metric not to capture everyone who should be eligible +to vote. If a community member has had significant contributions over the past +year but is not captured in the +[stats.knative.dev dashboard](https://knative.teststats.cncf.io/d/9/developer-activity-counts-by-repository-group-table?orgId=1&var-period_name=Last%20year), +they will be able to submit an exception form to the Elections Officer(s) who +will then review and determine whether this member should be eligible to vote. +All exceptions, and the reasons for them, will be recorded in a log that will be +available to Steering and the TOC. + +The electoral roll of all eligible voters will be captured at +knative/community/steering-elections/$YEAR/voters.md and the voters’ guide will +be captured at knative/community/steering-elections/$YEAR/README.md, +similar to the +[kubernetes election process](https://github.com/kubernetes/steering/blob/master/elections.md) +and identical to the TOC election process. + +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 (this +includes voters who qualify for an exception). Candidates may self-nominate or +be nominated by another eligible member. There are no term limits for KSC +members. Nothing prevents a qualified member from serving on both the TOC and SC +simultaneously. + +To run for a Contributing seat, a candidate must additionally be at least a +project Member as defined in +[ROLES.md](https://github.com/knative/community/blob/master/ROLES.md). + +End-user seats are planned to enable employees of organizations which use but do +not sell Knative-derived products. The mechanics of eligibility for end-user +seats are still in progress; it is expected that end-user seats will add to the +current Steering options to specific include end-user perspectives in the +decision-making process. + +### Voting Procedure + +Elections will be held using a time-limited +[Condorcet](https://en.wikipedia.org/wiki/Condorcet_method) ranking on +[CIVS](http://civs.cs.cornell.edu/) using the Schulze method. The top +vote-getters will be elected to the open seats, with the exceptions for company +representation discussed below. This is the same process used for TOC elections. + +### 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). Additionally, each +End-User seat (when available) must belong to an employee from a different +organization. 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 Steering Committee members will decide. + +## Vacancies + +In the event of a resignation or other loss of an elected SC 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 SC. 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 SC 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 SC member will serve out the remainder of the term for +the person they are replacing, regardless of the length of that remainder. + +## Transition + +In order to transition from the original, organization-appointed Steering +Committee structure (the "bootstrap" committee), elections will be phased in +over 14 months. + +In October 2020, two positions will be elected, including two Contributing +seats and zero End-User seats (because end-user seat mechanics are still being +worked out). One Google, one IBM/RedHat, and one VMware seat will be retained +from the current Steering Committee. + +In October or November 2021, the three remaining "bootstrap SC" seats will be +replaced by elected seats (three Contributing and hopefully one End-User seat). + +## Changes to the charter + +Changes to the KSC 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](#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 Making in Knative + +Ideally most decisions will be made at the lowest possible level within the +project: within individual working groups. When this is not possible for +technical decisions, the TOC can help facilitate a conversation to work through +the contended issue. When facilitation by the TOC does not resolve the contended +issue, the Steering Committee can help facilitate. When facilitation by the SC +does not resolve the contention, the SC may have to make a decision. + +Note that if the SC is called to resolve contended decisions regularly, it is a +symptom of a larger problem in the community that will need to be addressed. + --- Portions of this document are adapted from the [Istio Steering Committee](https://github.com/istio/community/blob/master/STEERING-COMMITTEE.md) -documentation, which is licensed under the Apache License 2.0. +documentation, and other portions are copied from the +[Kubernetes Steering Committee](https://github.com/kubernetes/steering/blob/master/elections.md), +both of which are licensed under the Apache License 2.0. Except as otherwise noted, the content of this page is licensed under the [Creative Commons Attribution 4.0 License](https://creativecommons.org/licenses/by/4.0/), diff --git a/TRADEMARK-COMMITTEE.md b/TRADEMARK-COMMITTEE.md new file mode 100644 index 0000000..e16d2cb --- /dev/null +++ b/TRADEMARK-COMMITTEE.md @@ -0,0 +1,154 @@ +--- +title: "Knative Trademark committee" +linkTitle: "Trademark committee" +weight: 50 +type: "docs" +aliases: + - /contributing/trademark-committee/ +--- + +The Knative Trademark Committee (KTC) +[advises the trademark owner on the usage and enforcement of Knative logos, names, and trademarks](./GOVERNANCE.md). + +It is a separate body from the [Steering Committee](./STEERING-COMMITTEE.md) to +better represent the needs of vendors and other companies which market products +in conjunction with the Knative mark. + +The governance of Knative is an open, living document, and will continue to +evolve as the community and project change. + +- [Charter](#charter) +- [Delegated Authority](#delegated-authority) +- [Committee Meetings](#committee-meetings) +- [Committee Members](#committee-members) +- [Decision Process](#decision-process) +- [Getting in touch](#getting-in-touch) +- [Composition](#composition) + - [Maintaining the Trademark Committee](#maintaining-the-trademark-committee) + +## Charter + +1. Advise the Trademark owner on the definition and enforcement of the "Knative" + trademark usage and branding guidelines. + +1. Review and approve conformance rules and tests that define brand use + decisions. + +1. Review and approve the scope and definition of additional derivative Knative + marks (e.g. Knative Serving, Knative Core, etc). + +1. Only the Trademark Committee can redefine its own charter, membership, and + authority over Knative Trademark, conformance, and brand decisions. + +## Delegated authority + +The Trademark Committee may choose to create and delegate its authority to other +committees as-needed. This may be used (for example) to create sub-committees +for specific technical or marketing questions related to conformance or joint +marketing. + +The Trademark Committee may delegate enforcement authority for one or more marks +to other Knative committees (such as the steering committee) to provide branding +for nascent efforts which are not yet subject to conformance and third-party +licensing. This delegation may be further delegated transitively, as needed. + +It is expected that the Trademark Committee will delegate one or more marks to +the steering committee to provide branding for nascent efforts which are not yet +subject to conformance and third-party licensing. + +## Committee Meetings + +The committee meets as-needed. Meetings are held online. + +Given the private nature of some of these discussions (e.g. trade secrets, legal +and compliance concerns, etc.) some meetings are held in private. + +Meeting notes are available to members of the +[knative-dev mailing list](https://groups.google.com/forum/#!forum/knative-dev) +(note: these are accessible to members of the knative-users list as well). +Public meetings will be recorded and the recordings made available publicly. + +Questions and proposals for changes to governance are posted as +[issues in the community repo](https://github.com/knative/community/issues), and +the trademark committee invites your feedback there. See +[Getting in touch](#getting-in-touch) for other options. + +## Committee Members + +| Member | Organization | Profile | +| ------------------------ | ------------ | ------------------------------------ | +| Ron Avnur | Google | [@ronavn](https://github.com/ronavn) | +| Unknown - to be selected | IBM/RedHat | Unknown | +| Unknown - to be selected | VMware | Unknown | + +Committee members for bootstrap term will be chosen during the Steering +Committee election process. + +## Decision process + +The Trademark Committee desires to always reach consensus. Additionally, each +member can veto decisions regarding assignment of the mark, charter, +conformance, and scope. + +Decisions requiring a vote include: issuing written policy, amending existing +written policy, official responses to publicly raised issues, or any other +decisions that are in the scope of the Trademark Committee’s charter. + +Voted decisions pass when all members vote to approve the decision, or a +majority approves and the rest of the members abstain. + +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. Vetoes by +absent committee members must be presented within 5 business days of a published +decision. + +Quorum is considered reached when at least half of the members are present. +Quorum may be established over email or electronic chat systems as well as via +video or in-person meetings. + +In case of extended absence or removal from the project for a code of conduct +violation, the organization of the absent member may appoint a single +replacement delegate from the same company during the absence. + +## Getting in touch + +There are two ways to raise issues to the steering committee for decision: + +1. Emailing the steering committee at + [knative-trademark@googlegroups.com](mailto:knative-trademark@googlegroups.com). + This is a private discussion list to which all members of the committee have + access. +2. Open an issue on a knative repository and indicate that you would like + attention from the trademark committee. + +## Composition + +The Trademark Committee is composed of company representatives from companies +which have substantially contributed to Knative over the last year, as well as +the trademark holder. Companies which have a currently-unfilled seat on the +Trademark Committee may veto decisions made in the 5 business days prior to the +selection of the representative. + +Company representatives serving on the Trademark Committee may individually +resign or be removed from their seats by their affiliated company with at least +5 days notice. + +For the 2020 year, one seat is assigned to each of Google, IBM/RedHat, and +VMware. + +### Maintaining the Trademark Committee + +The Trademark Committee membership is refreshed annually on the same timeline as +the Steering Committee elections (during the month of October). The Trademark +Committee's size is unbounded and may grow or shrink depending on the activity +in the project in the year prior to each refresh. + +Membership in the committee is determined by counting the +[easily countable contributions over the last year](https://knative.teststats.cncf.io/d/5/companies-table?orgId=1&var-period_name=Last%20year&var-metric=contributions). +Each company which has contributed at least 15% of the total project +contributions will be eligible to select one representative to the committee. +Not all contributions are easy to count and many significant contributions are +hard to count. Vendors may petition the Trademark Committee to articulate why +they should receive additional contribution credit towards membership on the +Trademark Committee. Corporate parents, affiliates, or subsidiaries shall be +counted as one company.