Skip to content

Commit f988e24

Browse files
committed
Update CONTRIBUTING.md for SIG-MC
Signed-off-by: Laura Lorenz <[email protected]>
1 parent 97c6d4c commit f988e24

File tree

1 file changed

+125
-112
lines changed

1 file changed

+125
-112
lines changed

sig-multicluster/CONTRIBUTING.md

Lines changed: 125 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
# Contributing
22

3-
The process for contributing code to Kubernetes via the sig-multicluster [community][community page].
3+
The process for contributing code to Kubernetes via the sig-multicluster
4+
[community][community page].
45

56
## TL;DR
67

7-
- See [multicluster.sigs.k8s.io/contributing](https://multicluster.sigs.k8s.io/contributing/)
8-
- The sig-multicluster [community page] lists sig-multicluster [leads]
9-
and group [meeting] times.
8+
- See
9+
[multicluster.sigs.k8s.io/contributing](https://multicluster.sigs.k8s.io/contributing/).
10+
- The sig-multicluster [community page] lists sig-multicluster [leads] and group
11+
[meeting] times.
1012
- Request a feature by making an [issue] and mentioning
1113
`@kubernetes/sig-multicluster-feature-requests`.
12-
- Reach out on Slack in [#sig-multicluster](https://kubernetes.slack.com/messages/sig-multicluster)
14+
- Reach out on Slack in
15+
[#sig-multicluster](https://kubernetes.slack.com/messages/sig-multicluster)
1316
- Write a design proposal before starting work on a new feature.
1417
- Write [tests]!
1518

@@ -18,13 +21,13 @@ The process for contributing code to Kubernetes via the sig-multicluster [commun
1821
Welcome to the Kubernetes sig-multicluster contributing guide. We are excited
1922
about the prospect of you joining our [community][community page]!
2023

21-
Please understand that all contributions to Kubernetes require time
22-
and commitment from the project maintainers to review the ux, software
23-
design, and code. Mentoring and on-boarding new contributors is done
24-
in addition to many other responsibilities.
24+
Please understand that all contributions to Kubernetes require time and
25+
commitment from the project maintainers to review the ux, software design, and
26+
code. Mentoring and on-boarding new contributors is done in addition to many
27+
other responsibilities.
2528

26-
If you are interested in contributing to Kubernetes as a whole there is
27-
a top level [contributor's guide][contributors guide]
29+
If you are interested in contributing to Kubernetes as a whole there is a top
30+
level [contributor's guide][contributors guide]
2831

2932
### Understand the big picture
3033

@@ -36,23 +39,25 @@ Follow the [CLA signup instructions](../CLA.md).
3639

3740
### Adopt an issue
3841

39-
New contributors can try the following to work on an existing bug or approved design:
42+
New contributors can try the following to work on an existing bug or approved
43+
design:
4044

41-
- In [slack][slack-messages] (signup [here][slack-signup]),
42-
@mention a [lead][leads] and ask if there are any issues you could pick up.
43-
We also maintain a list of [multi cluster issues where help is wanted][multicluster_help_wanted_issues].
44-
Most of them are not very complex, so that's probably a good starting point.
45-
Leads can recommend issues that have enough priority to receive PR review bandwidth.
45+
- In [slack][slack-messages] (signup [here][slack-signup]), @mention a
46+
[lead][leads] and ask if there are any issues you could pick up. Leads can
47+
recommend issues that have enough priority to receive PR review bandwidth.
4648
- Send an email to the _[email protected]_ [group]
4749

4850
> Subject: New sig-multicluster contributor _${yourName}_
4951
>
5052
> Body: Hello, my name is _${yourName}_. I would like to get involved in
51-
> contributing to the Kubernetes project. I have read all of the
52-
> user documentation listed on the community contributing page.
53-
> What should I do next to get started?
53+
> contributing to the Kubernetes project. I have read all of the user
54+
> documentation listed on the community contributing page. What should I do
55+
> next to get started?
5456
55-
- Attend a sig-multicluster [meeting] and introduce yourself as looking to get started.
57+
- Attend a sig-multicluster [meeting] and introduce yourself as looking to get
58+
started.
59+
- Browse through the open issues in the subprojects of SIG-Multicluster,
60+
especially ones with the "help-wanted" tag.
5661

5762
### Bug lifecycle
5863

@@ -75,102 +80,97 @@ New contributors can try the following to work on an existing bug or approved de
7580

7681
__New contributors:__ Please start by adopting an [existing issue].
7782

78-
A feature request is an [issue] mentioning `@kubernetes/sig-multicluster-feature-requests`.
83+
A feature request is an [issue] mentioning
84+
`@kubernetes/sig-multicluster-feature-requests`.
7985

80-
To encourage readership, the issue description should _concisely_ (2-4 sentence) describe
81-
the problem that the feature addresses.
86+
To encourage readership, the issue description should _concisely_ (2-4 sentence)
87+
describe the problem that the feature addresses.
8288

8389
### Feature lifecycle
8490

85-
Working on a feature without getting approval for the user experience
86-
and software design often results in wasted time and effort due to
87-
decisions around names and user experience.
91+
Working on a feature without getting approval for the user experience and
92+
software design often results in wasted time and effort due to decisions around
93+
names and user experience.
8894

89-
To minimize wasted work and improve communication across efforts,
90-
the user experience and software design must be agreed upon before
91-
any PRs are sent for code review.
95+
To minimize wasted work and improve communication across efforts, the user
96+
experience and software design must be agreed upon before any PRs are sent for
97+
code review.
9298

93-
1. Identify a problem by filing an [issue] (mention `@kubernetes/sig-multicluster-feature-requests`).
94-
2. Submit a [design proposal] and get it approved by a lead.
99+
1. Identify a problem by filing an [issue] (mention
100+
`@kubernetes/sig-multicluster-feature-requests`).
101+
2. Share a design proposal and get community feedback.
95102
3. Announce the proposal as an [agenda] item for the sig-multicluster [meeting].
96103
- Ensures awareness and feedback.
97104
- Should be included in meeting notes sent to the sig-multicluster [group].
98-
4. _Merge_ the proposal PR after approval and announcement.
99-
5. A [lead][leads] adds the associated feature to the [feature repo], ensuring that
105+
4. _Merge_ the associated KEP PR (if applicable) as provisional after approval
106+
and announcement.
107+
5. A [lead][leads] sponsors the review and approval process of the KEP, ensuring
108+
that
100109
- release-related decisions are properly made and communicated,
101110
- API changes are vetted,
102111
- testing is completed,
103112
- docs are completed,
104113
- feature is designated _alpha_, _beta_ or _GA_.
105114
6. Implement the code per discussion in [bug lifecycle][bug].
106115
7. Update docs.
107-
8. Wait for your feature to appear in the next Kubernetes release!
116+
8. Wait for your feature to appear in the next Kubernetes or SIG-MC subproject
117+
release!
108118

109119

110-
## Design Proposals
120+
## Design Proposals and KEPs
111121

112122
__New contributors:__ Please start by adopting an [existing issue].
113123

114-
A design proposal is a single markdown document in the [design repo]
115-
that follows the [design template].
116-
117-
To make one,
118-
- Prepare the markdown document as a PR to that repo.
119-
- Avoid _Work In Progress_ (WIP) PRs (send it only after
120-
you consider it complete).
121-
- For early feedback, use the email discussion [group].
122-
- Mention `@kubernetes/sig-multicluster-proposals` in the description.
123-
- Mention the related [feature request].
124+
A design proposal is an informal Google doc or similar shared with members of
125+
the community through the mailing list [group] or at a regular SIG-Multicluster
126+
[meeting] by adding it to the [agenda].
124127

125128
Expect feedback from 2-3 different sig-multicluster community members.
126129

127-
Incorporate feedback and comment [`PTAL`].
130+
Once a [lead][leads] has agreed that design and code review resources can be
131+
allocated to tackle the proposal, the details of the user experience and design
132+
should be discussed in the community.
128133

129-
Once a [lead][leads] has agreed (via review commentary) that design
130-
and code review resources can be allocated to tackle the proposal, the
131-
details of the user experience and design should be discussed in the
132-
community.
133-
134-
This step is _important_; it prevents code churn and thrashing around
135-
issues like flag names, command names, etc.
134+
This step is _important_; it prevents code churn and thrashing around issues
135+
like flag names, command names, etc.
136136

137137
It is normal for sig-multicluster community members to push back on feature
138138
proposals. sig-multicluster development and review resources are extremely
139139
constrained. Community members are free to say
140140

141141
- No, not this release (or year).
142-
- This is desirable but we need help on these other existing issues before tackling this.
142+
- This is desirable but we need help on these other existing issues before
143+
tackling this.
143144
- No, this problem should be solved in another way.
144145

145-
The proposal can be merged into the [design repo] after [lead][leads]
146-
approval and discussion as a meeting [agenda] item.
146+
Usually at this point the design proposal will be reformatted into a KEP and
147+
follow the [KEP process] like other [multicluster KEPs], even if the
148+
implementation is out-of-tree and not tied to a specific Kubernetes release.
147149

148150
Then coding can begin.
149151

150152
## Implementation
151153

152-
Contributors can begin implementing a feature before any of the above
153-
steps have been completed, but _should not send a PR until
154-
the [design proposal] has been merged_.
154+
Contributors can begin implementing a feature before any of the above steps have
155+
been completed, but _should not send a PR until the [KEP][multicluster KEPs] has
156+
been merged_.
155157

156-
See the [development guide] for instructions on setting up the
157-
Kubernetes development environment.
158+
See the [development guide] for instructions on setting up the Kubernetes
159+
development environment.
158160

159161
Implementation PRs should
160-
- mention the issue of the associated design proposal,
161-
- mention `@kubernetes/sig-multicluster-pr-reviews`,
162+
- mention the issue of the associated KEP,
162163
- __include tests__.
163164

164-
Small features and flag changes require only unit/integration tests,
165-
while larger changes require both unit/integration tests and e2e tests.
165+
Small features and flag changes require only unit/integration tests, while
166+
larger changes require both unit/integration tests and e2e tests.
166167

167168
### Report progress
168169

169-
_Leads need your help to ensure that progress is made to
170-
get the feature into a [release]._
170+
_Leads need your help to ensure that progress is made to get the feature into a
171+
[release]._
171172

172-
While working on the issue, leave a weekly update on the issue
173-
including:
173+
While working on the issue, leave a weekly update on the issue including:
174174

175175
1. What's finished?
176176
2. What's part is being worked on now?
@@ -181,27 +181,31 @@ including:
181181

182182
_Let users know about cool new features by updating user facing documentation._
183183

184-
Depending on the contributor and size of the feature, this
185-
may be done either by the same contributor that implemented the feature,
186-
or another contributor who is more familiar with the existing docs
187-
templates.
184+
Depending on the contributor and size of the feature, this may be done either by
185+
the same contributor that implemented the feature, or another contributor who is
186+
more familiar with the existing docs templates.
188187

189188
## Release
190189

191-
Several weeks before a Kubernetes release, development enters a stabilization
192-
period where no new features are merged. For a feature to be accepted
193-
into a release, it must be fully merged and tested by this time. If
194-
your feature is not fully complete, _including tests_, it will have
195-
to wait until the next release.
190+
Many of the subprojects in SIG-Multicluster are "out-of-tree", meaning they are
191+
not tied to the core Kubernetes release process. For such features, changes can
192+
be merged at any time at the discretion of the code owners.
193+
194+
For features requiring a change in core Kubernetes, several weeks before a
195+
Kubernetes release, development enters a stabilization period where no new
196+
features are merged. For a feature to be accepted into a release, it must be
197+
fully merged and tested by this time. If your feature is not fully complete,
198+
_including tests_, it will have to wait until the next release. Check the
199+
[kubernetes release calendar] for timelines.
196200

197201
## Merge state meanings
198202

199203
- Merged:
200204
- Ready to be implemented.
201205
- Unmerged:
202206
- Experience and design still being worked out.
203-
- Not a high priority issue but may implement in the future: revisit
204-
in 6 months.
207+
- Not a high priority issue but may implement in the future: revisit in 6
208+
months.
205209
- Unintentionally dropped.
206210
- Closed:
207211
- Not something we plan to implement in the proposed manner.
@@ -214,50 +218,50 @@ to wait until the next release.
214218
If an issue isn't getting any attention and is unresolved, mention
215219
`@kubernetes/sig-multicluster-bugs`.
216220

217-
Highlight the severity and urgency of the issue. For severe issues
218-
escalate by contacting sig [leads] and attending the [meeting].
221+
Highlight the severity and urgency of the issue. For severe issues escalate by
222+
contacting sig [leads] and attending the [meeting].
219223

220224
### If your feature request issue is stuck
221225

222226
If an issue isn't getting any attention and is unresolved, mention
223227
`@kubernetes/sig-multicluster-feature-requests`.
224228

225-
If a particular issue has a high impact for you or your business,
226-
make sure this is clear on the bug, and reach out to the sig leads
227-
directly. Consider attending the sig meeting to discuss over video
228-
conference.
229+
If a particular issue has a high impact for you or your business, make sure this
230+
is clear on the bug, and reach out to the sig leads directly. Consider
231+
attending the sig meeting to discuss over video conference.
229232

230233
### If your PR is stuck
231234

232-
It may happen that your PR seems to be stuck without clear actionable
233-
feedback for a week or longer. A PR _associated with a bug or design
234-
proposal_ is much less likely to be stuck than a dangling PR.
235+
It may happen that your PR seems to be stuck without clear actionable feedback
236+
for a week or longer. A PR _associated with a bug or design proposal_ is much
237+
less likely to be stuck than a dangling PR.
235238

236239
However, if it happens do the following:
237240

238241
- If your PR is stuck for a week or more because it has never gotten any
239-
comments, mention `@kubernetes/sig-multicluster-pr-reviews` and ask for attention.
240-
- If your PR is stuck for a week or more _after_ it got comments, but
241-
the attention has died down. Mention the reviewer and comment with
242-
[`PTAL`].
242+
comments, mention `@kubernetes/sig-multicluster-pr-reviews` and ask for
243+
attention.
244+
- If your PR is stuck for a week or more _after_ it got comments, but the
245+
attention has died down. Mention the reviewer and comment with [`PTAL`].
243246

244-
If you are still not able to get any attention after a couple days,
245-
escalate to sig [leads] by mentioning them.
247+
If you are still not able to get any attention after a couple days, escalate to
248+
sig [leads] by mentioning them.
246249

247-
### If your design proposal issue is stuck
250+
### If your design proposal is stuck
248251

249-
It may happen that your design doc gets stuck without getting merged
250-
or additional feedback. If you believe that your design is important
251-
and has been dropped, or it is not moving forward, please add it to
252-
the sig multicluster bi-weekly meeting [agenda] and mail the [group] saying
253-
you'd like to discuss it.
252+
It may happen that your design doc gets stuck without getting merged or
253+
additional feedback. If you believe that your design is important and has been
254+
dropped, or it is not moving forward, please add it to the sig multicluster
255+
bi-weekly meeting [agenda] and mail the [group] saying you'd like to discuss it.
254256

255257
### General escalation instructions
256258

257-
See the sig-multicluster [community page] for points of contact and meeting times:
259+
See the sig-multicluster [community page] for points of contact and meeting
260+
times:
258261

259262
- attend the sig-multicluster [meeting]
260-
- message one of the sig leads on [slack][slack-messages] (signup [here][slack-signup])
263+
- message one of the sig leads on [slack][slack-messages] (signup
264+
[here][slack-signup])
261265
- send an email to the _[email protected]_ [group].
262266

263267
## Use of [@mentions]
@@ -268,31 +272,40 @@ See the sig-multicluster [community page] for points of contact and meeting time
268272
- `@kubernetes/sig-multicluster-feature-requests` flags a feature request.
269273
- `@kubernetes/sig-multicluster-proposals` flags a design proposal.
270274

271-
[@mentions]: https://help.github.com/articles/basic-writing-and-formatting-syntax/#mentioning-users-and-teams
272-
[Kubernetes Basics Tutorial]: https://kubernetes.io/docs/tutorials/kubernetes-basics
275+
[@mentions]:
276+
https://help.github.com/articles/basic-writing-and-formatting-syntax/#mentioning-users-and-teams
277+
[Kubernetes Basics Tutorial]:
278+
https://kubernetes.io/docs/tutorials/kubernetes-basics
273279
[PR]: https://help.github.com/articles/creating-a-pull-request
274280
[`PTAL`]: https://en.wiktionary.org/wiki/PTAL
275-
[agenda]: https://docs.google.com/document/d/18mk62nOXE_MCSSnb4yJD_8UadtzJrYyJxFwbrgabHe8/edit
281+
[multicluster KEPs]:
282+
[https://github.com/kubernetes/enhancements](https://github.com/kubernetes/enhancements/tree/master/keps/sig-multicluster)
283+
[KEP process]: https://github.com/kubernetes/enhancements
284+
[agenda]:
285+
https://docs.google.com/document/d/18mk62nOXE_MCSSnb4yJD_8UadtzJrYyJxFwbrgabHe8/edit
276286
[bug]: #bug-lifecycle
277287
[community page]: /sig-multicluster
278288
[contributors guide]: /contributors/guide
279289
[design proposal]: #design-proposals
280-
[design repo]: https://git.k8s.io/design-proposals-archive/multicluster
281-
[design template]: https://git.k8s.io/design-proposals-archive/Design_Proposal_TEMPLATE.md
282290
[development guide]: /contributors/devel/development.md
283291
[existing issue]: #adopt-an-issue
284292
[feature repo]: https://github.com/kubernetes/features
285293
[feature request]: #feature-requests
286294
[feature]: https://github.com/kubernetes/features
287295
[group]: https://groups.google.com/forum/#!forum/kubernetes-sig-multicluster
288296
[issue]: https://github.com/kubernetes/kubernetes/issues
289-
[multicluster_help_wanted_issues]: https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue+label%3A"help+wanted"+label%3Asig%2Fmulticluster
290-
[kubectl concept docs]: https://git.k8s.io/kubernetes.github.io/docs/concepts/tools/kubectl
297+
[multicluster_help_wanted_issues]:
298+
https://github.com/kubernetes/kubernetes/issues?q=is%3Aopen+is%3Aissue+label%3A"help+wanted"+label%3Asig%2Fmulticluster
299+
[kubectl concept docs]:
300+
https://git.k8s.io/kubernetes.github.io/docs/concepts/tools/kubectl
291301
[kubectl docs]: https://kubernetes.io/docs/user-guide/kubectl-overview
292302
[kubernetes/cmd/kubectl]: https://git.k8s.io/kubernetes/cmd/kubectl
293303
[kubernetes/pkg/kubectl]: https://git.k8s.io/kubernetes/pkg/kubectl
304+
[kubernetes release calendar]:
305+
https://calendar.google.com/calendar/u/0/embed?src=agst.us_b07popf7t4avmt4km7eq5tk5ao@group.calendar.google.com
294306
[leads]: /sig-multicluster#leads
295-
[management overview]: https://kubernetes.io/docs/concepts/tools/kubectl/object-management-overview
307+
[management overview]:
308+
https://kubernetes.io/docs/concepts/tools/kubectl/object-management-overview
296309
[meeting]: /sig-multicluster#meetings
297310
[release]: #release
298311
[slack-messages]: https://kubernetes.slack.com/messages/sig-multicluster

0 commit comments

Comments
 (0)