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 <pmorie@redhat.com>
This commit is contained in:
Evan Anderson 2020-09-24 10:48:40 -07:00 committed by GitHub
parent af3d97ab4b
commit 10077e4f6f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 413 additions and 90 deletions

37
GOVERNANCE.md Normal file
View File

@ -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.

View File

@ -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):
| &nbsp; | Member | Organization | Profile |
| ---------------------------------------------------------- | ---------------- | ------------ | -------------------------------------------- |
| <img width="30px" src="https://github.com/anicolao.png"> | Alex Nicolaou | Google | [@anicolao](https://github.com/anicolao) |
| <img width="30px" src="https://github.com/thisisnotapril.png"> | April Kyle Nassi | Google | [@thisisnotapril](https://github.com/thisisnotapril) |
| <img width="30px" src="https://github.com/bsnchan.png"> | Brenda Chan | VMware | [@bsnchan](https://github.com/bsnchan) |
| <img width="30px" src="https://github.com/mbehrendt.png"> | Michael Behrendt | IBM | [@mbehrendt](https://github.com/mbehrendt) |
| <img width="30px" src="https://github.com/pmorie.png"> | Paul Morie | Red Hat | [@pmorie](https://github.com/pmorie) |
| <img width="30px" src="https://github.com/ronavn.png"> | Ron Avnur | Google | [@ronavn](https://github.com/ronavn) |
| | Open \* | Google | |
| &nbsp; | Member | Organization | Profile |
| -------------------------------------------------------------- | ---------------- | ------------ | ---------------------------------------------------- |
| <img width="30px" src="https://github.com/anicolao.png"> | Alex Nicolaou | Google | [@anicolao](https://github.com/anicolao) |
| <img width="30px" src="https://github.com/thisisnotapril.png"> | April Kyle Nassi | Google | [@thisisnotapril](https://github.com/thisisnotapril) |
| <img width="30px" src="https://github.com/bsnchan.png"> | Brenda Chan | VMware | [@bsnchan](https://github.com/bsnchan) |
| <img width="30px" src="https://github.com/mbehrendt.png"> | Michael Behrendt | IBM | [@mbehrendt](https://github.com/mbehrendt) |
| <img width="30px" src="https://github.com/pmorie.png"> | Paul Morie | Red Hat | [@pmorie](https://github.com/pmorie) |
| <img width="30px" src="https://github.com/ronavn.png"> | 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/),

154
TRADEMARK-COMMITTEE.md Normal file
View File

@ -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 Committees 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.