-
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
KEP-1a: Meta KEP Implementation #2655
Conversation
Adding Tim, Aish, and Aaron to weigh in on Release Team implications. /assign @tpepper @AishSundar @spiffxp |
Adding an explicit hold until we gather some feedback: |
af95cca
to
ab3d728
Compare
|
||
#### Organize | ||
|
||
- Move KEPs into [k/features] |
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.
Just to be honest, this document was confusing up until this point.
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.
Also, this KEP will likely be dead after the transition... but whatevers.
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.
@timothysc -- were there specific parts that were confusing? The motivation was "create a KEP that speaks about the improvements we need to make to the process, while ensuring (in the interim) that the process doesn't change underneath SIGs who have adopted it in its' current state".
And yep, this KEP will effectively die once we re-implement KEP-1.
- Create tooling to present: | ||
- KEPs, through some easy to use mechanism e.g., https://keps.k8s.io | ||
- Project tracking across SIGs | ||
- SIGs roadmaps |
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 might be a bit orthogonal imo. SIGs react on the fly.
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.
Currently, SIGs react on the fly.
Ideally, moving forward, SIGs should be able to plan and provide some level of soft commit prior to the release cycle, and that information should be aggregatable through the metadata in each KEP. The shape of how exactly to aggregate the data hasn't been defined yet, though.
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.
Without specifics, I would remove.
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.
@timothysc -- removed
|
||
#### Organize | ||
|
||
- Move KEPs into [k/features] |
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.
Can you say more about how you expect end users to use the new repository structure?
If I am an end user who wants to find out about the design of Kubernetes, what URL should I start at? For Python, there is one page, called https://www.python.org/dev/peps/ that lists all their PEPs (~=KEPs).
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.
End users should be able to hit https://keps.k8s.io, which would be a redesigned version of https://contributor.kubernetes.io/keps/.
I envision this site / repo having at least three directories:
keps/
(KEPs)design-proposals/
(historical design proposals from https://git.k8s.io/community/contributors/design-proposals)arch[itecture]|design/
(design principles of Kubernetes, derived from reorganizing https://git.k8s.io/community/contributors/devel, mentioned here)
- Enable redirects to [k/keps] | ||
- Prevent new KEPs and design proposals from landing in [k/community] | ||
- Correlate existing features with KEPs | ||
- Fix [KEP numbering races] by adopting one of two schemes: |
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.
Note that Python solves this, AFAICT, by having a single PEP, called PEP 0, which is an index of all the PEPs. You reserve a number by sending a commit to add a row to the table in PEP 0.
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 feel that having a KEP index is a good idea, but sending a commit to add a row still leaves the race condition that we had with who chooses a number first.
I'd imagine that an index would simply be generated by some script we use to walk the repo and then committed alongside KEP changes e.g., make generate
for sig-list.md
- Correlate existing features with KEPs | ||
- Fix [KEP numbering races] by adopting one of two schemes: | ||
- Issue number of the KEP tracking issue | ||
- PR number for the PR that marks the KEP as `accepted` |
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, then KEPs don't have a number until they are accepted? This makes talking about them harder? Also, don't we want to keep a record of non-accepted KEPs as a record of what didn't work? Python allocates numbers to all proposals and tracks rejected and withdrawn as well as accepted PEPs
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 point about the KEPs that aren't in some accepted state. I've updated the copy to say we'll track based on the GitHub issue number of the KEP tracking issue.
5e1c123
to
2fba19d
Compare
@timothysc @erictune -- PTAL again. Hoping that I've addressed your comments. I've also added a proposed directory structure as well as the metadata structure that would be included per KEP directory. |
/approve |
Signed-off-by: Stephen Augustus <foo@agst.us>
a988ac2
to
e9e8a5e
Compare
@erictune -- apologies for not adding that. Just pushed a commit to reference the directory structure. We'll be able to present in a way that's accessible, which may very well include an index. I really like that idea. |
I'd like to thank everyone who's reviewed thus far. It's been extremely valuable to get your input, especially from the historical aspect! ❤️ Given that this KEP is currently marked as
If you feel that what we've laid out is a good start and moving in the right direction, please drop a (As mentioned on this SIG Architecture thread, we'll be timeboxing the comment period for this to today, Wednesday, 9/19 at 6pm PT.) |
@jdumars wrote:
I don't agree that casual observers (users if you will) are dead last. @calebamiles wrote:
|
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.
Lots of good ideas here. Thank you for taking this up! My biggest concern is that this is a lot of changes and we'll have to write up good instructions for folks. I think the biggest mistake we've made up until now is introducing KEPs without tooling. We could also have done a better job of providing "how to" instructions so that folks working with KEPs understand clearly the workflow.
IMO, let's make sure we prioritize that before anything else.
- Move KEPs from flat-files to a directory structure: | ||
``` | ||
├── keps # top-level directory | ||
│ ├── sig-beard # SIG directory |
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 original thinking here is that there would broadly be two types of keps -- those that are "local" to a SIG whereby the SIG is reusing the KEP process for their own internal decision making process. This might leak out where it is mostly in one SIG with a few other SIGs weighing in.
Contrast this to KEPs that are wide reaching and impact most of the project. These should get wider review and have a wider set of approvers. I can see situations where something might start out "SIG local" but become "k8s wide" as the implications are realized.
I don't think we did a good job of making this clear.
I think we should either make it clear that there are two types of KEPs and perhaps have another top level directory for sig-local keps (sig-keps
?) or we should just say that every kep is top level and collapse the hierarchy.
That being said -- I'd suggest that we move forward in some concrete ways that will improve things. We can always change this again in the future if we need to.
| | | │ ├── ... | ||
| | | │ └── feature-n.md | ||
| | | ├── guides | ||
| | | | ├── guide-for-developers.md (required) |
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 do like the idea of having a directory for keps. There are then options to make it bigger and evolve it over time. I would look to minimize the amount of required stuff here and not be too prescriptive of the breakdown. We already have a problem where there are a lot of rules and it is hard to get people to understand the purpose of them.
- Prevent new KEPs and design proposals from landing in [k/community] | ||
- Remove `kind/kep` from [k/community] once KEP migration is complete | ||
- Correlate existing Feature tracking issues with links to KEPs | ||
- Fix [KEP numbering races] by using the GitHub issue number of the KEP tracking issue |
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 a huge fan of this but I guess it is ok. We'll have sparse numbering as there will be other PRs.
One thing that I want to do regardless is encourage people to check in early. If the latency between PR for new kep and commit is small these races will be minimal. We can and should build some presubmit to prevent races too.
In any case, if we use the PR number as the KEP number there will still have to be a dance where people will create a change, submit a PR, update their files and submit/push another change to that PR. That dance isn't obvious and will make this a bit harder.
|
||
- Create tooling to: | ||
- Generate KEP directories and associated metadata | ||
- Present KEPs, through some easy to use mechanism e.g., https://enhancements.k8s.io. This would be a redesigned version of https://contributor.kubernetes.io/keps/. We envision this site / repo having at least three directories: |
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 are already building out contributors.k8s.io and we should put the keps there. That was one of the main reasons for that site. /cc @castrojo
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 can totally do this, we just need the repo URL when it's created and we can implement it. Doing it with three sections wouldn't be a problem. Hugo can be sensitive to the metadata though, it'd be great if the tooling could lint it before hugo consumes it.
I agree -- the number should out in front. I think this is just a point in time issue. @castrojo -- Where should Eric file an issue. |
Also -- merge early! Let me know when you want an LGTM label and I'll happily put it on there. Don't want to do it now to prevent a surprise merge. |
@erictune sorry I wasn't clear enough on my comment. I meant casual observers as people who do not have any stake in either consuming or generating the information. Many people "weigh in" on things as an academic exercise. I'd prefer that this site be focused on meeting user and generator needs. |
@erictune and others, https://github.com/kubernetes-sigs/contributor-site/issues is where site issues should be. I am filing other issues for the design proposals and architecture designs as well. Please feel free to file issues and recommendations. Happy to share OWNERship with anyone who wants to rev faster/contribute. |
@jbeda -- thanks for the feedback. This is ready for an |
FYI: I've created a KEP Implementation Tracking project board, which captures some of the feedback here. |
/approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: calebamiles, jbeda 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 |
/lgtm |
KEP-1a: Meta KEP Implementation
/remove-sig pm |
This is a provisional meta-KEP, which discusses iterative improvements to the KEP process.
rel:
/sig pm architecture
/assign @jdumars @calebamiles @idvoretskyi @timothysc
Signed-off-by: Stephen Augustus foo@agst.us