-
Notifications
You must be signed in to change notification settings - Fork 5.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Various governance clarifications #1994
Conversation
/committee steering |
/cc |
governance.md
Outdated
|
||
All code projects use the [Apache Licence version 2.0](LICENSE). Documentation repositories should use the [Creative Commons License version 4.0](https://git.k8s.io/website/LICENSE). | ||
|
||
Note that "Kubernetes incubator" process has been documented in favor of the new guidelines. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
s/documented/deprecated/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good catch. Thanks!
When introducing a SIG charter or modification of a charter the following process should be used: | ||
|
||
- Identify a small set of owners from the SIG to drive the changes. | ||
Most typically this'll be the SIG chairs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: this will
One very minor wording thing, lgtm otherwise. Will wait for others to read though. |
Thanks for the review. Nits/typos fixed. |
- Identify a small set of owners from the SIG to drive the changes. | ||
Most typically this will be the SIG chairs. | ||
- Work with the steering committee to gain approval. | ||
This can simply be submitting a PR and sending mail to [steering@kubernetes.io]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nit: the Markdown spec defines an implicit link name shortcut (e.g. [steering@kubernetes.io][]
), but leaving the name brackets off entirely seems to be an extention. Are we targetting a specific Markdown flavor here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@wking links are at the bottom of the doc (this line is on line 62)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
links are at the bottom of the doc (this line is on line 62)
Right, and those are fine. But the syntax used in this line (withought the trailng []
) isn't in the spec. It's the "completely omit" case from the Kramdown spec, but I don't know how portable it is to other Markdown engines.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is fine. We do it elsewhere in the repo.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is already used in this file and I was just following the pattern. If and when we start using the content with a markdown parser that doesn't respect this syntax we can look to fix it. As it is, this is part of the commonmark spec which github users (https://spec.commonmark.org/0.28/#shortcut-reference-link). But the state of "spec" in the markdown world is a disaster and I really don't want to have that argument.
README.md
Outdated
|
||
A first step to contributing is to pick from the [list of kubernetes SIGs](sig-list.md). | ||
* **Committees** are named sets of people that are chartered to take on sensitive topics. | ||
This group is encouraged to be as open as possible while achieving its mission. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it worth mentioning that while they are encouraged to be open, by the nature of the topics they discuss committees are permitted to have private communications as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is it worth mentioning that while they are encouraged to be open, by the nature of the topics they discuss committees are permitted to have private communications as well?
I think "as possible" already suggests this, but more explicit wording would be fine too.
README.md
Outdated
Kubernetes is a set of subprojects, each shepherded by a Special Interest Group (SIG). | ||
Most decision making in Kubernetes happens through SIGs. | ||
|
||
A SIG can have its own policy for contribution, described in a `README` or `CONTRIBUTING` file in the SIG folder in this repo (e.g. [sig-cli/CONTRIBUTING](sig-cli/CONTRIBUTING.md)), and its own mailing list, slack channel, etc. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The link goes to CONTRIBUTING.md but the text only says CONTRIBUTING.
|
||
- Identify a small set of owners from the SIG to drive the changes. | ||
Most typically this will be the SIG chairs. | ||
- Work with the steering committee to gain approval. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn't working with the steering to gain approval be a latter step in the process (after circulating changes with the sig and/or community)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was structuring this as an OARP type thing -- Owners, Approvers, Reviewers and Participants. I'll rework it so that it is viewed as more of a sequential process.
- Identify a small set of owners from the SIG to drive the changes. | ||
Most typically this will be the SIG chairs. | ||
- Work with the steering committee to gain approval. | ||
This can simply be submitting a PR and sending mail to [steering@kubernetes.io]. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@wking links are at the bottom of the doc (this line is on line 62)
governance.md
Outdated
@@ -109,6 +110,8 @@ This is the purpose of Working Groups (WG). The intent is to make | |||
Working Groups relatively easy to create and to deprecate, once | |||
inactive. | |||
|
|||
Working groups do not own any code or subprojects. Instead, they are a place for people to discuss topics that cross SIG boundaries. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: the rest of this doc is wrapped at 80 chars
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm a fan of one sentence per line as it tends to merge and diff better. But I didn't want to modify content that wasn't changing and create extra diff noise.
communication have yet to be formalized, but when in doubt, use | ||
kubernetes-dev@googlegroups.com and make an announcement at the | ||
community meeting. | ||
The [KEP process] is being developed as a way to facilitate definition, agreement and communication of efforts that cross SIG boundaries. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: the rest of this doc is wrapped at 80 chars
See also #1986 |
* **Committees** are named sets of people that are chartered to take on sensitive topics. | ||
This group is encouraged to be as open as possible while achieving its mission. | ||
Examples of committees include the steering committee and things like security or code of conduct. | ||
* **Special Interest Groups (SIGs)** are persistent open groups that focus on a part of the project. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what does it mean to be open in membership?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
transparent?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
what does it mean to be open in membership?
transparent?
An alternative interpretation would be that that self-nomination is sufficient to join (i.e. that there's no new-member vetting process). Perhaps the wording here (and/or in sig-governance.md
?) could be updated to make it clear which of those is intended? Do non-lead SIG members have any explicit powers?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right now in the steering committee we are working on guidance/process for the level of "membership" needed to participate in processes like voting for the steering committee. As part of that I don't want to overload the term "membership". I'll reword this to say that anyone is welcome to contribute and participate.
- The steering committee will be looking to ensure the scope is reasonable (and within the scope of Kubernetes) and that processes are fair. | ||
- Alert the rest of the SIG in question to the changes so that anyone within the SIG can object. | ||
Including the SIG mailing list in communications with the steering committee would work for this. | ||
- For large changes alert the rest of the Kubernetes community as the scope of the changes becomes clear. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
May also want to announce at the community meeting
When introducing a SIG charter or modification of a charter the following process should be used: | ||
|
||
- Identify a small set of owners from the SIG to drive the changes. | ||
Most typically this will be the SIG chairs. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is the process for a new SIG? Presumably it folks proposing the SIG agree upon the chairs / tech leads?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately, this process is split between this doc and /sig-governance.md
. We should probably rationalize these but that is a bigger change. Advice would be appreciated.
I did change that in this PR too to say that for creating a SIG a set of folks proposing the SIG should work with the Steering Committee to scope it.
Most typically this will be the SIG chairs. | ||
- Work with the steering committee to gain approval. | ||
This can simply be submitting a PR and sending mail to [steering@kubernetes.io]. | ||
If more substantial changes are desired it is advisable to socialize those before drafting a PR. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd expect the SIG to have consensus before asking the SC to review the changes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd expect the SIG to have consensus before asking the SC to review the changes.
Or to have deadlocked?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reordered to make it more clear. (pushing soon).
Left a few minor comments. Otherwise LGTM. |
|
||
Kubernetes is a set of subprojects, each shepherded by a Special Interest Group (SIG). | ||
Kubernetes has three types of groups that are officially supported: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This omits subprojects.
https://github.com/kubernetes/community/blob/master/governance.md#community-groups
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So -- I'm torn on this and would love advice. In my mind subprojects are a subunit of a SIG. They are scoped and live/die and are governed by the owning SIG. It is up to the SIG to decide how tightly those sub-projects are controlled and what the process for figuring out who has commit permissions on those.
I'm happy to rationalize this and either demote them to be sub-SIG in governance.md or add them here. Let me know what you prefer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Opinion: because they are created and destroyed by the sigs, they should be at a sub-sig level.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, but lack of awareness of subprojects leads to attempts to form WGs that should really be subprojects.
I would be fine with a mention under the SIG bullet rather than just below.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Part of the governance doc should be to communicate it. People often skim docs like this. If we can make it pop for a skimmer that subprojects are owned by SIGs that pop might be useful in communicating it.
/cc |
README.md
Outdated
* **Special Interest Groups (SIGs)** are persistent open groups that focus on a part of the project. | ||
SIGs must have open and transparent proceedings. | ||
Anyone is welcome to participate and contribute provided they follow the Kubernetes Code of Conduct. | ||
The purpose of a SIG is to own and develop a set of subprojects (defined below). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please bold "subprojects"
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm putting a subpoint under SIGs to call out subprojects. It'll be in the list but clearly "under" SIGs.
LGTM |
LGTM from me. |
governance.md
Outdated
Working groups do not own any code or subprojects. Instead, they are a place for people to discuss topics that cross SIG boundaries. | ||
|
||
Working groups are primarily used to facilitate topics of discussion that are in scope for Kubernetes but that cross SIG lines. | ||
If a set of folks in the community want to get together and discuss a topic, they can do so without forming a Working Group. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems like this paragraph and the first paragraph should be merged or refactored.
I also want to clarify the "short-lived" aspect. We expect WGs to not live forever -- they should have a goal and concrete deliverables, but being short-lived shouldn't be a reason to create a WG. For example, a WG isn't needed for every short-term effort. Every release ships the results of many short-term efforts.
I also do want to address the class of SIGs/WGs for "use case X on Kubernetes": most of SIG Apps, SIG Big Data, M L WG, the proposed IoT/Edge WG. I will send email about that.
Most of our current WGs probably should not be WGs.
@brendanburns and I had to answer questions regarding this stuff. Particularly the commitee, sig, and subproject thing. Can you rebase and merge this @jbeda ? |
@jbeda - these are really helpful changes. would you mind re-basing so we can merge? |
Signed-off-by: Joe Beda <joe.github@bedafamily.com>
Signed-off-by: Joe Beda <joe.github@bedafamily.com>
Signed-off-by: Joe Beda <joe.github@bedafamily.com>
9d0ccf2
to
2a04222
Compare
/lgtm |
Thank you Joe for getting this done! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I am going to say we can fix my one comment at the same time #2702 is sorted.
Approving but holding for the rest of steering to have until Friday to review.
/approve
/hold
@@ -106,15 +107,28 @@ This is the purpose of Working Groups (WG). The intent is to make | |||
Working Groups relatively easy to create and to deprecate, once | |||
inactive. | |||
|
|||
To propose a new working group, first find a SIG to sponsor the group. | |||
Working groups do not own any code or subprojects. Instead, they are a place for |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we kept getting hung up on this during the WG discussion. I think everyone agreed working groups can create and prototype. Just that the code landing in Kubernetes is contingent on SIG/subproject approval. "own any code" is confusing in this meaning.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed. I think that this needs to be addressed further up in the doc too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about:
“Since WG are intended to have a definite lifetime, to prevent orphaned code at the dissolution of a WG all code in Kubernetes must have a SIG to own and maintain it. The sponsoring SIGs for a WG are expected to own and manage the code created for Kubernetes by a WG, and have authority on whether code created in a WG should become part of Kubernetes”
Or similar?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps a bit wordy, but otherwise fine. It can be word-smithed in a followup PR, IMO.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@philips @smarterclayton @quinton-hoole
We have a repository policy:
https://github.com/kubernetes/community/blob/master/github-management/kubernetes-repositories.md
This PR should not change it.
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: philips The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agree with @philips that code development/ownership by WG's requires minor clarification to avoid wasting more time on that in discussions. Other than that, lets merge this ASAP and address the remaining nits in followup PR's.
LGTM.
@@ -106,15 +107,28 @@ This is the purpose of Working Groups (WG). The intent is to make | |||
Working Groups relatively easy to create and to deprecate, once | |||
inactive. | |||
|
|||
To propose a new working group, first find a SIG to sponsor the group. | |||
Working groups do not own any code or subprojects. Instead, they are a place for |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed. I think that this needs to be addressed further up in the doc too.
These are smaller groups that can work independently. | ||
Some subprojects will be part of the main Kubernetes deliverables while others will be more speculative and live in the `kubernetes-sigs` github org. | ||
* **Working Groups** are temporary groups that are formed to address issues that cross SIG boundaries. | ||
Working groups do not own any code or other long term artifacts. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See @philips comment below. Clarify to make it clear that prototypes and proof-of-concept implementations by working groups are in scope and encouraged.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We have a repository policy:
https://github.com/kubernetes/community/blob/master/github-management/kubernetes-repositories.md
This should not change it.
SIGs must have at least one and ideally two SIG leads at any given | ||
time. SIG leads are intended to be organizers and facilitators, | ||
SIGs must have at least one and ideally two SIG chairs at any given | ||
time. SIG chairs are intended to be organizers and facilitators, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that having chairs from multiple companies/organizations should be very strongly encouraged, and that single-company groups of chairs should be the exception, and clearly justified when this is required for practical reasons.
highlight and encourage a larger ecosystem (with things like slack channels) | ||
without offering any official endorsement. | ||
|
||
To propose a new working group, first find a SIG to sponsor the group. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Given that WG's are intended to cross SIGs, I think that multiple sigs should sponsor. If only one SIG is in support of the WG, it can simply live in the SIG with all other discussions and/or sub-projects there.
Agree, we should just point at the repo policy here.
"Like any other code related to kubernetes, any code created by a WG will
be governed by the repo policy described here."
…On Tue, Oct 2, 2018, 11:44 PM Brian Grant ***@***.***> wrote:
***@***.**** commented on this pull request.
------------------------------
In governance.md
<#1994 (comment)>:
> @@ -106,15 +107,28 @@ This is the purpose of Working Groups (WG). The intent is to make
Working Groups relatively easy to create and to deprecate, once
inactive.
-To propose a new working group, first find a SIG to sponsor the group.
+Working groups do not own any code or subprojects. Instead, they are a place for
@philips <https://github.com/philips> @smarterclayton
<https://github.com/smarterclayton> @quinton-hoole
<https://github.com/quinton-hoole>
We have a repository policy:
https://github.com/kubernetes/community/blob/master/github-management/kubernetes-repositories.md
This PR should not change it.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#1994 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/ABOYXls8Ee7Y9VSsREtqMZFw9qPqQI3Bks5uhFzbgaJpZM4TCtIS>
.
|
/hold cancel |
We talked about some of this during the Steering committee meetings. I don't think any of this should be controversial.