diff options
| author | Brandon Philips <brandon@ifup.org> | 2017-03-07 23:05:20 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-03-07 23:05:20 -0800 |
| commit | 03ecf9eb267b7c22b2301e3208b04a4ee9bff125 (patch) | |
| tree | 3040df6a893950dc371d8da57bb3102e22862604 /sig-cli | |
| parent | 40719b3edc42afc109d384dec6f599a386d0b155 (diff) | |
| parent | 43a3903234c13d304ecdde08d24506b22239162a (diff) | |
Merge branch 'master' into fix/helm-incu
Diffstat (limited to 'sig-cli')
| -rw-r--r-- | sig-cli/README.md | 28 | ||||
| -rw-r--r-- | sig-cli/contributing.md | 306 |
2 files changed, 332 insertions, 2 deletions
diff --git a/sig-cli/README.md b/sig-cli/README.md index b4354394..4233cd2c 100644 --- a/sig-cli/README.md +++ b/sig-cli/README.md @@ -13,7 +13,31 @@ We focus on the development and standardization of the CLI [framework](https://g * Slack: <https://kubernetes.slack.com/messages/sig-cli> ([archive](http://kubernetes.slackarchive.io/sig-cli)) * Google Group: <https://groups.google.com/forum/#!forum/kubernetes-sig-cli> -## Organizers: +## Leads + +**Note:** Escalate to these folks if you cannot get help from slack or the Google group + * Fabiano Franz <ffranz@redhat.com>, Red Hat + - slack / github: @fabianofranz * Phillip Wittrock <pwittroc@google.com>, Google -* Tony Ado <coolhzb@gmail.com>, Alibaba
\ No newline at end of file + - slack / github: @pwittrock +* Tony Ado <coolhzb@gmail.com>, Alibaba + - slack / github: @adohe + +## Contributing + +See [this document](https://github.com/kubernetes/community/blob/master/sig-cli/contributing.md) for contributing instructions. + +## Sig-cli teams + +Mention one or more of + +| Name | Description | +|------------------------------------|--------------------------------------------------| +|@kubernetes/sig-cli-bugs | For bugs in kubectl | +|@kubernetes/sig-cli-feature-requests| For initial discussion of new feature requests | +|@kubernetes/sig-cli-proposals | For in depth discussion of new feature proposals | +|@kubernetes/sig-cli-pr-reviews | For PR code reviews | +|@kubernetes/sig-test-failures | For e2e test flakes | +|@kubernetes/sig-cli-misc | For general discussion and escalation | + diff --git a/sig-cli/contributing.md b/sig-cli/contributing.md new file mode 100644 index 00000000..80617e87 --- /dev/null +++ b/sig-cli/contributing.md @@ -0,0 +1,306 @@ +# Contributing + +The process for contributing code to Kubernetes via the sig-cli [community][community page]. + +## TL;DR + +- The sig-cli [community page] lists sig-cli [leads], + channels of [communication], and group [meeting] times. +- New contributors: please start by adopting an [existing issue]. +- Request a feature by making an [issue] and mentioning + `@kubernetes/sig-cli-feature-requests`. +- Write a [design proposal] before starting work on a new feature. +- Write [tests]! + +## Before You Begin + +Welcome to the Kubernetes sig-cli contributing guide. We are excited +about the prospect of you joining our [community][community page]! + +Please understand that all contributions to Kubernetes require time +and commitment from the project maintainers to review the ux, software +design, and code. Mentoring and on-boarding new contributors is done +in addition to many other responsibilities. + +### Understand the big picture + +- Complete the [Kubernetes Basics Tutorial]. +- Be familiar with [kubctl user facing documentation ][kubectl docs]. +- Read the concept guides starting with the [management overview]. + +### Modify your own `kubectl` fork + +Make sure you are ready to immediately get started once you have been +assigned a piece of work. Do this right away. + +- Setup your [development environment][development guide]. +- Look at code: + - [kubernetes/cmd/kubectl] is the entry point + - [kubernetes/pkg/kubectl] is the implementation + - Look at how some of the other commands are implemented +- Add a new command to do something simple: + - Add `kubectl hello-world`: print "Hello World" + - Add `kubectl hello-kubernetes -f file`: Print "Hello \<kind of resource\> \<name of resource\>" + - Add `kubectl hello-kubernetes type/name`: Print "Hello \<kind of resource\> \<name of resource\> \<creation time\>" + +### Agree to contribution rules + +Follow the [CLA signup instructions](../CLA.md). + +### Adopt an issue + +New contributors can try the following to work on an existing [bug] or [approved design][design repo]: + +- In [slack][slack-messages] (signup [here][slack-signup]), + @mention a [lead][leads] and ask if there are any issues you could pick up. + Leads can recommend issues that have enough priority to receive PR review bandwidth. +- Send an email to the _kubernetes-sig-cli@googlegroups.com_ [group] + + > Subject: New sig-cli contributor _${yourName}_ + > + > Body: Hello, my name is _${yourName}_. I would like to get involved in + > contributing to the Kubernetes project. I have read all of the + > user documentation listed on the community contributring page. + > What should I do next to get started? + +- Attend a sig-cli [meeting] and introduce yourself as looking to get started. + +### Bug lifecycle + +1. An [issue] is filed that + - includes steps to reproduce the issue including client / server version, + - mentions `@kubernetes/sig-cli-bugs`. +2. A [PR] fixing the issue is implemented that + - __includes unit and e2e tests__, + - incorporates review feedback, + - description includes `Closes #<Issue Number>`, + - description or comment @mentions `@kubernetes/sig-cli-pr-reviews`. +3. Fix appears in the next Kubernetes release! + +## Feature requests + +__New contributors:__ Please start by adopting an [existing issue]. + +A feature request is an [issue] mentioning `@kubernetes/sig-cli-feature-requests`. + +To encourage readership, the issue description should _concisely_ (2-4 sentence) describe +the problem that the feature addresses. + +### Feature lifecycle + +Working on a feature without getting approval for the user experience +and software design often results in wasted time and effort due to +decisions around flag-names, command names, and specific command +behavior. + +To minimize wasted work and improve communication across efforts, +the user experience and software design must be agreed upon before +any PRs are sent for code review. + +1. Identify a problem by filing an [issue] (mention `@kubernetes/sig-cli-feature-requests`). +2. Submit a [design proposal] and get it approved by a lead. +3. Announce the proposal as an [agenda] item for the sig-cli [meeting]. + - Ensures awareness and feedback. + - Should be included in meeting notes sent to the sig-cli [group]. +4. _Merge_ the proposal PR after approval and announcement. +5. A [lead][leads] adds the associated feature to the [feature repo], ensuring that + - release-related decisions are properly made and communicated, + - API changes are vetted, + - testing is completed, + - docs are completed, + - feature is designated _alpha_, _beta_ or _GA_. +6. Implement the code per discussion in [bug lifecycle][bug]. +7. Update [kubectl concept docs]. +8. Wait for your feature to appear in the next Kubernetes release! + + +## Design Proposals + +__New contributors:__ Please start by adopting an [existing issue]. + +A design proposal is a single markdown document in the [design repo] +that follows the [design template]. + +To make one, +- Prepare the markdown document as a PR to that repo. + - Avoid _Work In Progress_ (WIP) PRs (send it only after + you consider it complete). + - For early feedback, use the email discussion [group]. +- Mention `@kubernetes/sig-cli-proposals` in the description. +- Mention the related [feature request]. + +Expect feedback from 2-3 different sig-cli community members. + +Incorporate feedback and comment [`PTAL`]. + +Once a [lead][leads] has agreed (via review commentary) that design +and code review resources can be allocated to tackle the proposal, the +details of the user experience and design should be discussed in the +community. + +This step is _important_; it prevents code churn and thrashing around +issues like flag names, command names, etc. + +It is normal for sig-cli community members to push back on feature +proposals. sig-cli development and review resources are extremely +constrained. Community members are free to say + +- No, not this release (or year). +- This is desirable but we need help on these other existing issues before tackling this. +- No, this problem should be solved in another way. + +The proposal can be merged into the [design repo] after [lead][leads] +approval and discussion as a meeting [agenda] item. + +Then coding can begin. + +## Implementation + +Contributors can begin implementing a feature before any of the above +steps have been completed, but _should not send a PR until +the [design proposal] has been merged_. + +See the [development guide] for instructions on setting up the +Kubernetes development environment. + +Implementation PRs should +- mention the issue of the associated design proposal, +- mention `@kubernetes/sig-cli-pr-reviews`, +- __include tests__. + +Small features and flag changes require only unit/integration tests, +while larger changes require both unit/integration tests and e2e tests. + +### Report progress + +_Leads need your help to ensure that progress is made to +get the feature into a [release]._ + +While working on the issue, leave a weekly update on the issue +including: + +1. What's finished? +2. What's part is being worked on now? +3. Anything blocking? + + +## Documentation + +_Let users know about cool new features by updating user facing documentation._ + +Depending on the contributor and size of the feature, this +may be done either by the same contributor that implemented the feature, +or another contributor who is more familiar with the existing docs +templates. + +## Release + +Several weeks before a Kubernetes release, development enters a stabilization +period where no new features are merged. For a feature to be accepted +into a release, it must be fully merged and tested by this time. If +your feature is not fully complete, _including tests_, it will have +to wait until the next release. + +## Merge state meanings + +- Merged: + - Ready to be implemented. +- Unmerged: + - Experience and design still being worked out. + - Not a high priority issue but may implement in the future: revisit + in 6 months. + - Unintentionally dropped. +- Closed: + - Not something we plan to implement in the proposed manner. + - Not something we plan to revisit in the next 12 months. + +## Escalation + +### If your bug issue is stuck + +If an issue isn't getting any attention and is unresolved, mention +`@kubernetes/sig-cli-bugs`. + +Highlight the severity and urgency of the issue. For severe issues +escalate by contacting sig [leads] and attending the [meeting]. + +### If your feature request issue is stuck + +If an issue isn't getting any attention and is unresolved, mention +`@kubernetes/sig-cli-feature-requests`. + +If a particular issue has a high impact for you or your business, +make sure this is clear on the bug, and reach out to the sig leads +directly. Consider attending the sig meeting to discuss over video +conference. + +### If your PR is stuck + +It may happen that your PR seems to be stuck without clear actionable +feedback for a week or longer. A PR _associated with a bug or design +proposal_ is much less likely to be stuck than a dangling PR. + +However, if it happens do the following: + +- If your PR is stuck for a week or more because it has never gotten any + comments, mention `@kubernetes/sig-cli-pr-reviews` and ask for attention. +- If your PR is stuck for a week or more _after_ it got comments, but + the attention has died down. Mention the reviewer and comment with + [`PTAL`]. + +If you are still not able to get any attention after a couple days, +escalate to sig [leads] by mentioning them. + +### If your design proposal issue is stuck + +It may happen that your design doc gets stuck without getting merged +or additional feedback. If you believe that your design is important +and has been dropped, or it is not moving forward, please add it to +the sig cli bi-weekly meeting [agenda] and mail the [group] saying +you'd like to discuss it. + +### General escalation instructions + +See the sig-cli [community page] for points of contact and meeting times: + +- attend the sig-cli [meeting] +- message one of the sig leads on [slack][slack-messages] (signup [here][slack-signup]) +- send an email to the _kubernetes-sig-cli@googlegroups.com_ [group]. + +## Use of [@mentions] + +- `@{any lead}` solicit opinion or advice from [leads]. +- `@kubernetes/sig-cli-bugs` sig-cli centric bugs. +- `@kubernetes/sig-cli-pr-reviews` triggers review of code fix PR. +- `@kubernetes/sig-cli-feature-requests` flags a feature request. +- `@kubernetes/sig-cli-proposals` flags a design proposal. + +[@mentions]: https://help.github.com/articles/basic-writing-and-formatting-syntax/#mentioning-users-and-teams +[Kubernetes Basics Tutorial]: https://kubernetes.io/docs/tutorials/kubernetes-basics +[PR]: https://help.github.com/articles/creating-a-pull-request +[`PTAL`]: https://en.wiktionary.org/wiki/PTAL +[agenda]: https://docs.google.com/document/d/1r0YElcXt6G5mOWxwZiXgGu_X6he3F--wKwg-9UBc29I/edit +[bug]: #bug-lifecycle +[communication]: https://github.com/kubernetes/community/tree/master/sig-cli#communication +[community page]: https://github.com/kubernetes/community/tree/master/sig-cli +[design proposal]: #design-proposals +[design repo]: https://github.com/kubernetes/community/tree/master/contributors/design-proposals/sig-cli +[design template]: https://github.com/kubernetes/community/blob/master/contributors/design-proposals/sig-cli/template.md +[development guide]: https://github.com/kubernetes/community/blob/master/contributors/devel/development.md +[existing issue]: #adopt-an-issue +[feature repo]: https://github.com/kubernetes/features +[feature request]: #feature-requests +[feature]: https://github.com/kubernetes/features +[group]: https://groups.google.com/forum/#!forum/kubernetes-sig-cli +[issue]: https://github.com/kubernetes/kubernetes/issues +[kubectl concept docs]: https://github.com/kubernetes/kubernetes.github.io/tree/master/docs/concepts/tools/kubectl +[kubectl docs]: https://kubernetes.io/docs/user-guide/kubectl-overview +[kubernetes/cmd/kubectl]: https://github.com/kubernetes/kubernetes/tree/master/cmd/kubectl +[kubernetes/pkg/kubectl]: https://github.com/kubernetes/kubernetes/tree/master/pkg/kubectl +[leads]: https://github.com/kubernetes/community/tree/master/sig-cli#leads +[management overview]: https://kubernetes.io/docs/concepts/tools/kubectl/object-management-overview +[meeting]: https://github.com/kubernetes/community/tree/master/sig-cli#meetings +[release]: #release +[slack-messages]: https://kubernetes.slack.com/messages/sig-cli +[slack-signup]: http://slack.k8s.io/ +[tests]: https://github.com/kubernetes/community/blob/master/contributors/devel/testing.md |
