1
1
# Contributing
2
2
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 ] .
4
5
5
6
## TL;DR
6
7
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.
10
12
- Request a feature by making an [ issue] and mentioning
11
13
` @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 )
13
16
- Write a design proposal before starting work on a new feature.
14
17
- Write [ tests] !
15
18
@@ -18,13 +21,13 @@ The process for contributing code to Kubernetes via the sig-multicluster [commun
18
21
Welcome to the Kubernetes sig-multicluster contributing guide. We are excited
19
22
about the prospect of you joining our [ community] [ community page ] !
20
23
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.
25
28
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 ]
28
31
29
32
### Understand the big picture
30
33
@@ -36,23 +39,25 @@ Follow the [CLA signup instructions](../CLA.md).
36
39
37
40
### Adopt an issue
38
41
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:
40
44
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.
46
48
- Send an email to the
_ [email protected] _ [ group
]
47
49
48
50
> Subject: New sig-multicluster contributor _ ${yourName}_
49
51
>
50
52
> 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?
54
56
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.
56
61
57
62
### Bug lifecycle
58
63
@@ -75,102 +80,97 @@ New contributors can try the following to work on an existing bug or approved de
75
80
76
81
__ New contributors:__ Please start by adopting an [ existing issue] .
77
82
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 ` .
79
85
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.
82
88
83
89
### Feature lifecycle
84
90
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.
88
94
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.
92
98
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.
95
102
3 . Announce the proposal as an [ agenda] item for the sig-multicluster [ meeting] .
96
103
- Ensures awareness and feedback.
97
104
- 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
100
109
- release-related decisions are properly made and communicated,
101
110
- API changes are vetted,
102
111
- testing is completed,
103
112
- docs are completed,
104
113
- feature is designated _ alpha_ , _ beta_ or _ GA_ .
105
114
6 . Implement the code per discussion in [ bug lifecycle] [ bug ] .
106
115
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!
108
118
109
119
110
- ## Design Proposals
120
+ ## Design Proposals and KEPs
111
121
112
122
__ New contributors:__ Please start by adopting an [ existing issue] .
113
123
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] .
124
127
125
128
Expect feedback from 2-3 different sig-multicluster community members.
126
129
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.
128
133
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.
136
136
137
137
It is normal for sig-multicluster community members to push back on feature
138
138
proposals. sig-multicluster development and review resources are extremely
139
139
constrained. Community members are free to say
140
140
141
141
- 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.
143
144
- No, this problem should be solved in another way.
144
145
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.
147
149
148
150
Then coding can begin.
149
151
150
152
## Implementation
151
153
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_ .
155
157
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.
158
160
159
161
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,
162
163
- __ include tests__ .
163
164
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.
166
167
167
168
### Report progress
168
169
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] ._
171
172
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:
174
174
175
175
1 . What's finished?
176
176
2 . What's part is being worked on now?
@@ -181,27 +181,31 @@ including:
181
181
182
182
_ Let users know about cool new features by updating user facing documentation._
183
183
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.
188
187
189
188
## Release
190
189
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.
196
200
197
201
## Merge state meanings
198
202
199
203
- Merged:
200
204
- Ready to be implemented.
201
205
- Unmerged:
202
206
- 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.
205
209
- Unintentionally dropped.
206
210
- Closed:
207
211
- Not something we plan to implement in the proposed manner.
@@ -214,50 +218,50 @@ to wait until the next release.
214
218
If an issue isn't getting any attention and is unresolved, mention
215
219
` @kubernetes/sig-multicluster-bugs ` .
216
220
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] .
219
223
220
224
### If your feature request issue is stuck
221
225
222
226
If an issue isn't getting any attention and is unresolved, mention
223
227
` @kubernetes/sig-multicluster-feature-requests ` .
224
228
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.
229
232
230
233
### If your PR is stuck
231
234
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.
235
238
236
239
However, if it happens do the following:
237
240
238
241
- 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 ` ] .
243
246
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.
246
249
247
- ### If your design proposal issue is stuck
250
+ ### If your design proposal is stuck
248
251
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.
254
256
255
257
### General escalation instructions
256
258
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:
258
261
259
262
- 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 ] )
261
265
- send an email to the
_ [email protected] _ [ group
] .
262
266
263
267
## Use of [ @mentions ]
@@ -268,31 +272,40 @@ See the sig-multicluster [community page] for points of contact and meeting time
268
272
- ` @kubernetes/sig-multicluster-feature-requests ` flags a feature request.
269
273
- ` @kubernetes/sig-multicluster-proposals ` flags a design proposal.
270
274
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
273
279
[ PR ] : https://help.github.com/articles/creating-a-pull-request
274
280
[ `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
276
286
[ bug ] : #bug-lifecycle
277
287
[ community page ] : /sig-multicluster
278
288
[ contributors guide ] : /contributors/guide
279
289
[ 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
282
290
[ development guide ] : /contributors/devel/development.md
283
291
[ existing issue ] : #adopt-an-issue
284
292
[ feature repo ] : https://github.com/kubernetes/features
285
293
[ feature request ] : #feature-requests
286
294
[ feature ] : https://github.com/kubernetes/features
287
295
[ group ] : https://groups.google.com/forum/#!forum/kubernetes-sig-multicluster
288
296
[ 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
291
301
[ kubectl docs ] : https://kubernetes.io/docs/user-guide/kubectl-overview
292
302
[ kubernetes/cmd/kubectl ] : https://git.k8s.io/kubernetes/cmd/kubectl
293
303
[ 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
294
306
[ 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
296
309
[ meeting ] : /sig-multicluster#meetings
297
310
[ release ] : #release
298
311
[ slack-messages ] : https://kubernetes.slack.com/messages/sig-multicluster
0 commit comments