-
Notifications
You must be signed in to change notification settings - Fork 537
enhancements process documentation improvements #1080
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
Changes from all commits
bec0ac1
4a9647b
861914f
ae515a2
34bebb1
1030bef
8be6b32
8777a58
b045155
4060bf7
d47165e
ace7b9a
784c580
f500189
fcbf0d0
0874a79
d4ad8d4
66024c9
0e799c9
585f538
ca4f0ef
4a331b1
194ce8a
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -19,8 +19,17 @@ community, but require consensus from domain specific project maintainers in | |
| order to implement and accept into the release. | ||
|
|
||
| For an overview of the whole project, see [the roadmap](ROADMAP.md). | ||
|
|
||
| For a quick-start, FAQ, and template references, see [the guidelines](guidelines/README.md). | ||
|
|
||
| ## Why are Enhancements Tracked? | ||
|
|
||
| As the project evolves, its important that the OKD community understands how we | ||
aravindhp marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| build, test, and document our work. Individually it is hard to understand how | ||
| all parts of the system interact, but as a community we can lean on each other | ||
| to build the right design and approach before getting too deep into an | ||
| implementation. | ||
|
|
||
| ## Is My Thing an Enhancement? | ||
|
|
||
| A rough heuristic for an enhancement is anything that: | ||
|
|
@@ -47,31 +56,90 @@ and ask! | |
|
|
||
| ## When to Create a New Enhancement | ||
|
|
||
| Enhancements should be related to work to be implemented in the near | ||
| future. If you have an idea, but aren't planning to implement it right | ||
| away, the conversation should start somewhere else like the mailing | ||
| list or Slack. | ||
|
|
||
| Create an enhancement here once you: | ||
|
|
||
| - have circulated your idea to see if there is interest | ||
| - (optionally) have done a prototype in your own fork | ||
| - have identified people who agree to work on and maintain the enhancement | ||
| - many enhancements will take several releases to complete | ||
|
|
||
| ## Why are Enhancements Tracked | ||
|
|
||
| As the project evolves, its important that the OKD community understands how we | ||
| build, test, and document our work. Individually it is hard to understand how | ||
| all parts of the system interact, but as a community we can lean on each other | ||
| to build the right design and approach before getting too deep into an | ||
| implementation. | ||
|
|
||
| ## When to Comment on an Enhancement Issue | ||
|
|
||
| Please comment on the enhancement issue to: | ||
| - request a review or clarification on the process | ||
| - update status of the enhancement effort | ||
| - link to relevant issues in other repos | ||
|
|
||
| Please do not comment on the enhancement issue to: | ||
| - discuss a detail of the design, code or docs. Use a linked-to-issue or design PR | ||
| for that | ||
| ## How are Enhancements Reviewed and Approved? | ||
|
|
||
| The author of an enhancement is responsible for managing it through | ||
| the review and approval process, including soliciting feedback on the pull request | ||
| and in meetings, if necessary. | ||
|
|
||
| Each enhancement should have at least one "approver" and several | ||
| reviewers designated in the header of the document. | ||
|
|
||
| The approver assists authors who may not be familiar with the process, | ||
| the project, or the maintainers. They may provide advice about who | ||
| should review a specific proposal and point out deadlines or other | ||
| time-based criteria for completing work. The approver is responsible | ||
| for recognizing when consensus among reviewers has been reached so that a proposal is | ||
| ready to be approved, or formally rejected. In cases where consensus | ||
dhellmann marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| is not emerging on its own, the approver may also step in as a | ||
| mediator. The approver does not need to be a subject-matter expert for | ||
| the subject of the design, although it can help if they are. | ||
|
|
||
| Choosing the appropriate approver depends on the scope of an | ||
| enhancement. If it is limited in scope to a given team or component, | ||
| then a peer or lead on that team or pillar is appropriate. If an | ||
| enhancement captures something more broad in scope, then a member of | ||
| the OpenShift staff engineers team or someone they delegate would be | ||
dhellmann marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| appropriate. Examples of broad scope are proposals that change the | ||
| definition of OpenShift in some way, add a new required dependency, or | ||
| change the way customers are supported. Use your best judgement to | ||
| determine the level of approval needed. If you’re not sure, ask a | ||
| staff engineer to help find a good approver by posting in | ||
| `#forum-arch` on the CoreOS Slack server and tagging | ||
| `@aos-staff-engineers`. | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. as w/ the aos-devel suggestion above, it bothers me a little that this is basically an internal-only process, but it accurately reflects the process we have/follow today. So i guess rather than blocking this on "we need to define the community process before we document our EP workflow", i guess i'll just make a note that this feels like a gap in our EP workflow.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Agreed |
||
|
|
||
| The set of reviewers for an enhancement proposal can be anyone that | ||
| has an interest in this work or the expertise to provide a useful | ||
| input/assessment. At a minimum, the reviewers must include a | ||
| representative of any team that will need to do work for this EP, or | ||
| whose team will own/support the resulting implementation. Be mindful | ||
| of the workload of reviewers, however, and the challenge of finding | ||
| consensus as the group of reviewers grows larger. Clearly indicating | ||
| what aspect of the EP you expect each reviewer to be concerned with | ||
| will allow them to focus their reviews. | ||
|
|
||
| ## How Can an Author Help Speed Up the Review Process? | ||
dhellmann marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| Enhancements should have agreement from all stakeholders prior to | ||
| being approved and merged. Reviews are not time-boxed (see Life-cycle | ||
| below). We manage the rate of churn in OpenShift by asking component | ||
| maintainers to act as reviewers in addition to everything else that | ||
| they do. If it is not possible to attract the attention of enough of | ||
| the right maintainers to act as reviewers, that is a signal that the | ||
| project's rate of change is maxed out. With that said, there are a few | ||
| things that authors can do to help keep the conversation moving along. | ||
|
|
||
| 1. Respond to comments quickly, so that a reviewer can tell you are | ||
| engaged. | ||
| 2. Push update patches, rather than force-pushing a replacement, to | ||
| make it easier for reviewers to see what you have changed. Use | ||
| descriptive commit messages on those updates, or plan to use | ||
| `/label tide/merge-method-squash` to have them squashed when the | ||
| pull request merges. | ||
| 3. Do not rely solely on the enhancement for visibility of the | ||
| proposal. For high priority work, or if the conversation stalls | ||
| out, you can start a thread in `#forum-arch` on the CoreOS Slack | ||
| server or bring the enhancement to one of the weekly architecture | ||
| review meetings for discussion. If you aren't sure which meeting to | ||
| use, work with a staff engineer to find a good fit. | ||
| 4. If the conversation otherwise seems stuck, pinging reviewers on | ||
| Slack can be used to remind them to look at updates. It's generally | ||
| appropriate to give people at least a business day or two to | ||
| respond in the GitHub thread first, before reaching out to them | ||
| directly on Slack, so that they can manage their work queue and | ||
| disruptions. | ||
|
|
||
| ## Using Labels | ||
|
|
||
|
|
@@ -83,7 +151,6 @@ top level release priority. These will be highlighted in the | |
|
|
||
| ## Life-cycle | ||
|
|
||
|
|
||
| Pull requests to this repository should be short-lived and merged as | ||
| soon as there is consensus. Therefore, the normal life-cycle timeouts | ||
| are shorter than for most of our code repositories. | ||
|
|
@@ -109,14 +176,15 @@ the required sections. | |
|
|
||
| If you are working on an enhancement and the linter job fails because | ||
| of changes to the template (not other issues with the markdown | ||
| formatting), handle it based on the maturity of the enhancement PR: | ||
| formatting), handle it based on the maturity of the enhancement pull | ||
| request: | ||
|
|
||
| * If the only reason to update your PR is to make the linter job | ||
| * If the only reason to update your pull request is to make the linter job | ||
| accept it after a template change and there are no substantive | ||
| content changes needed for approval, override the job to allow the | ||
| PR to merge. | ||
| pull request to merge. | ||
| * If your enhancement is still a draft, and consensus hasn't been | ||
| reached, modify the PR so the new enhancement matches the updated | ||
| reached, modify the pull request so the new enhancement matches the updated | ||
| template. | ||
| * If you are updating an existing (merged) document, go ahead and | ||
| override the job. | ||
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 not sure i'd call it the OKD community? maybe just openshift community? (which encompasses OKD and OCP)
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 see you just moved this from elsewhere.....opportunity to fix it, i guess)
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.
Yeah, I decided to leave it as-is for now because we do have some OKD changes in the pipeline and I'd like for those to settle before we update the docs here to include OKD.