Skip to content
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

enhancements: Propose a more formal yet lean enhancement process #288

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

fabiand
Copy link
Member

@fabiand fabiand commented Apr 19, 2024

What this PR does / why we need it:

Today it's a very small group
which can approve design-proposals.
While certain individuals can approve design proposals, once they are merged
it is not clear who is owning them post-merge.

In this proposal we are proposing to change the process and shape them
around SIGs.
At the heart this proposal is requiring

  1. designs to be sponsored by a SIG
  2. to make a SIG responsible for the design process (reviews of design, code, documentation)
  3. to make a SIG responsible for managing the design process (collaboration with other SIGs as needed)
  4. to make a SIG owning the feature once it has been merged. The SIG is responsible for maintaing, fixing, running, everything it.

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #

Special notes for your reviewer:

Please see the "preview" at https://github.com/fabiand/enhancements

Checklist

This checklist is not enforcing, but it's a reminder of items that could be relevant to every PR.
Approvers are expected to review this list.

Release note:


@kubevirt-bot kubevirt-bot added dco-signoff: yes Indicates the PR's author has DCO signed all their commits. size/L labels Apr 19, 2024
@kubevirt-bot
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please ask for approval from fabiand. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@fabiand
Copy link
Member Author

fabiand commented Apr 19, 2024

@fabiand
Copy link
Member Author

fabiand commented Apr 19, 2024

@aburdenthehand please review as well (you get this as your very own comment to invite you for review :) )

@lyarwood
Copy link
Member

/cc

@iholder101
Copy link
Contributor

/cc

Copy link
Contributor

@aburdenthehand aburdenthehand left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mostly suggestions but also a couple of questions about lifecycle

design-proposals/enhancements.md Outdated Show resolved Hide resolved
design-proposals/enhancements.md Outdated Show resolved Hide resolved
design-proposals/enhancements.md Outdated Show resolved Hide resolved
design-proposals/enhancements.md Outdated Show resolved Hide resolved
design-proposals/enhancements.md Outdated Show resolved Hide resolved
design-proposals/enhancements.md Outdated Show resolved Hide resolved
design-proposals/enhancements.md Outdated Show resolved Hide resolved
design-proposals/enhancements.md Outdated Show resolved Hide resolved
design-proposals/enhancements.md Outdated Show resolved Hide resolved
Comment on lines 66 to 67
- VEP Author creates a PR to propose the design targeting a specific SIG
- SIG decides on an approver to sheppered the VEP
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

VEP Author creates a PR to propose the design targeting a specific SIG

How do we guarantee that SIGS are responsive to these PRs?

Said differently, how are we enforcing the PRs are triaged rather than rotting due to inactivity?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Later on the document talks about mirroring the OWNERS files from core kubevirt/kubevirt so I would assume the core approval group would end up with this responsibility.

It might be cleaner to define a meta SIG like sig-architecture in k8s who manage the KEP process and keep PRs flowing there?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally I think each SIG needs to have a representative in order to make sure someone from the SIG is reviewing PRs/proposals/issues, otherwise everyone can say the next one will have a look. I'll have a look what we have written down for now and will propose this.

It might be cleaner to define a meta SIG like sig-architecture in k8s who manage the KEP process and keep PRs flowing there?

I think this could be beneficial for more reasons, common solutions on common problems across SIGs and so on. Therefore +1 from me

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The SIG owns a PR. If the SIG is not responsible, then we should define a group which a VEP author can reach out to get some support.

I do not think that all PRs should run through i.e. something like sig-architecture.
A core principle of this proposal is to distribute the load.

At best a group like a throectical sig-architecture could act as a moderator between SIG and VEP author, but must not be directly involved with a VEP, unless the VEP is owned by this (arch) SIG.

@davidvossel would it be good enough for you to say: "In case of an unresponsive SIG, the VPE author can consult the KubeVirt Maintainers in order to resolve the situation."?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added:

  • KubeVirt Maintainers are responsible to support the owning SIG and VEP author in the case of conflicts and questions

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about adding a label stating that a design proposal doesn't have an owning SIG yet? Something like triage/needs-owning-sig?

This way it would be more visible that the design proposal needs to be assigned + it would be easier querying such VEPs

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that's a good idea. How good are you in prow automation coding, Itamar?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have near-to-zero experience with it TBH :)
But maybe it's time to dive in. I'll try getting to it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks :)

FWIW - I think that we need approvers and "potential chairs" to really look into automation to simply help the process. the appovers and pr authors.

Comment on lines 97 to 101

Require this process for KubeVirt v1.3+

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Previously a formal design was never required, but encouraged when the complexity of a feature was high.

Are we saying now that the design process is required? If so, where do we draw the line for what needs a design and what does not?

A part of the reason the guideline around what needs a design and what doesn't has been so relaxed in the past is that drawing the line is difficult. if we're too strict, than we've introduced needless bureaucracy. Too relaxed, and someone risks implementing a bunch of code that get's rejected.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 I wouldn't change the requirements here and would reword this as something like strongly encourage while also highlighting the benefits of getting a design reviewed alongside a PR etc.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What about requiring a proposal if an new API is being proposed? The API is the biggest burden to maintain ,imho, so making sure we don't overextend it seems reasonable. Also, nowadays we have 3 months dev cycles while in the past we had only one month, therefore proposals are less likely to stall progress(if we do good work reviewing them...).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wouldn't be against mandating this for enhancements touching the API for the 1.4 release cycle but I think our lives would be easier setting the bar a little lower until the process fully GAs.

Copy link
Member Author

@fabiand fabiand May 2, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me slice it into two parts:

  1. When does this proposal become effective (a new way to process features)
  2. What features are - covered in Define the term "Feature" #285

I merely meant to say:
For whatever feature is proposed accroding to current standards, from 1.3 on, let's use this newly proposed process.
This proposal does not change the requirement for when a design is required.

Simply put: If we'd require a design today, then - in future - use this new process instead of the old one.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FWIW this should also be clear from the doc itself, as the proposal itself does not touch what a feature is.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lyarwood @fabiand @xpivarc: can we bring this discussion topic to sig-api call on June 4th? I think we could potentially find a way to make progress on making design requirements for changes in API in a gradual way the does not overwhelm participants yet makes iterative progress in coming releases

Copy link
Member

@lyarwood lyarwood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added some comments. Overall I think the target of GA by 1.4 is too aggressive and we really need to create and seed the kubevirt/enhancements repo to help land this proposal. Happy to help with this!

design-proposals/enhancements.md Outdated Show resolved Hide resolved
design-proposals/enhancements.md Outdated Show resolved Hide resolved
design-proposals/enhancements.md Outdated Show resolved Hide resolved

## Repos

- https://github.com/kubevirt/enhancements
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can I suggest that we create and seed this repo with examples to help folks understand the proposal better?

It can then also serve as a place to document follow ups or discussions we don't want to resolve prior to merging this document.

Happy to help with this if you don't have the bandwidth.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes.

Please see https://github.com/fabiand/enhancements
This includes this proposal as a dry run, and I've got a PR to convert all existing - former - designs into this new format, specifically assigning primary sig owners for former designs.

Comment on lines 66 to 67
- VEP Author creates a PR to propose the design targeting a specific SIG
- SIG decides on an approver to sheppered the VEP
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Later on the document talks about mirroring the OWNERS files from core kubevirt/kubevirt so I would assume the core approval group would end up with this responsibility.

It might be cleaner to define a meta SIG like sig-architecture in k8s who manage the KEP process and keep PRs flowing there?

Comment on lines 97 to 101

Require this process for KubeVirt v1.3+

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 I wouldn't change the requirements here and would reword this as something like strongly encourage while also highlighting the benefits of getting a design reviewed alongside a PR etc.

@fabiand
Copy link
Member Author

fabiand commented May 2, 2024

xlink #286

Signed-off-by: Fabian Deutsch <fabiand@fedoraproject.org>
Signed-off-by: Fabian Deutsch <fabiand@fedoraproject.org>
Signed-off-by: Fabian Deutsch <fabiand@fedoraproject.org>
@fabiand
Copy link
Member Author

fabiand commented May 2, 2024

Thanks for the review folks, Ive addressed most comments.

Copy link
Contributor

@iholder101 iholder101 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @fabiand!
Overall looks great!

2. SIG approvers are empowered to approve designs, increase the approvers pool
3. The ownership of an implemented feature becomes clear
4. Ensure that designs converge (accept, reject)
5. Formalize this process as an Virtualization Enhancement Proposal (VEP) process
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can't we just call it KEP (Kubevirt Enhancement Proposal)?
I feel like using VEP will be confusing. WDYT?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I thought about this as well.

My worry would be the confusion between kube and kubevirt KEPs.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

KVEPs?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fabiand yeah this is a valid concern imo

Comment on lines +67 to +74
- VEP Author creates a GitHub Issue for getting a unique identifier and starting the process
- VEP Author creates a PR to propose the design targeting a specific SIG
- SIG decides on an approver to shepherd the VEP
- SIG collaborates with other SIGs to ensure its thoroughly reviewed
- SIG approves or rejects VEP
- Other SIG approvers can veto a proposal
- SIG owns future maintenance of the implementation
- KubeVirt Maintainers are responsible to support the owning SIG and VEP author in the case of conflicts and questions
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's missing here IMO is the concept of treating the KEP/VEP as a "live-document" that's continuously being updated. That's how it works in k8s and I think it would benefit us as well.

For example, after the KEP/VEP is merged and the implementation starts taking place the feature owners and/or SIG maintainers can decide to change the design (which could be APIs, behavior, etc). In such scenario the KEP/VEP should be updated with a PR.

Another example where it is very important is updating the requirements and changes between alpha/beta/ga stages (which should be required in the future, see #286). When a feature is only being started it is very hard to think about the exact timeline or requirements for Beta/GA. It should be acceptable to leave these empty with the intention of updating them later when the feature matures and more feedback is granted.

Another clear benefit from this approach is that the KEP/VEP remains the source of truth for the feature's accepted design. This is very different than the current situation where a DP can be merged, but usually gets irrelevant very quickly since design changes aren't being reflected back to it.

BTW, in k8s the tracking issue remains open until the feature GAs. Maybe we want to document it here as well.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@iholder101 very well. What would you add to make it clear that it is a living doucment?

BTW, in k8s the tracking issue remains open until the feature GAs.

This is part of this proposal as well. If this is not clear, then it should be clarified.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah-a. I see your comment below.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WDYT about the following? I've highlighted new bullets

  • VEP Author creates a GitHub Issue for getting a unique identifier and starting the process
  • VEP Author creates a PR to propose the design targeting a specific SIG
    • VEP Author is expected to list requirements and goals for Alpha
    • Preferably, VEP Author also vaguely lists requirements for Beta/GA.
  • SIG decides on an approver to shepherd the VEP
  • SIG collaborates with other SIGs to ensure its thoroughly reviewed
  • SIG approves or rejects VEP
  • Other SIG approvers can veto a proposal
  • SIG owns future maintenance of the implementation
  • VEP author should make sure that the VEP is the source of truth w.r.t. the VEP's status (design / implementations / goals / etc)
    • VEP author should create more PRs to update the VEP whenever it is not reflecting the updated VEP's status
    • VEP author updates the requirements for Beta/GA as they become clearer
    • VEP author updates implementation phases for Beta/GA as they become clearer
  • KubeVirt Maintainers are responsible to support the owning SIG and VEP author in the case of conflicts and questions

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is going in the right direction, I'll update the doc

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is still relevant I think

design-proposals/enhancements.md Show resolved Hide resolved
None.

## Scalability

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: redundant newline

Signed-off-by: Fabian Deutsch <fabiand@fedoraproject.org>
1. designs to be sponsored by a SIG
2. to make one SIG responsible for the design process (reviews of design, code, documentation)
3. to make one SIG responsible for managing the design process (collaboration with other SIGs as needed)
4. to make one SIG to own the feature once it has been merged. The SIG is responsible for maintaining, fixing, running, _everything-it_.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
4. to make one SIG to own the feature once it has been merged. The SIG is responsible for maintaining, fixing, running, _everything-it_.
4. to make one SIG own the feature once it has been merged. The SIG is responsible for maintaining, fixing, running, _everything_ it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, yes, it was more like a small (failed) word game:

maintain it
fix it
run it
everything it ....

Key elements:

- Ownership: SIGs own a _feature_ (which includes the process, but also
the resulting code) from it's inception (design) all the way (fixes, maintenance) to it's end (removal)[^1]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
the resulting code) from it's inception (design) all the way (fixes, maintenance) to it's end (removal)[^1]
the resulting code) from its inception (design) all the way (fixes, maintenance) to its end (removal)[^1]

Comment on lines +85 to +88
## API Examples

None.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
## API Examples
None.

## Goals

1. The design process now has a mechanism to distribute designs among SIGs
2. SIG approvers are empowered to approve designs, increase the approvers pool
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unclear. SIG approvers can increase the approvers pool?
Or, the fact that SIG approvers can approve designs increases the approvers pool? In which case:

Suggested change
2. SIG approvers are empowered to approve designs, increase the approvers pool
2. SIG approvers are empowered to approve designs, increasing the approvers pool

But does it really? Technically, most sigs have less approvers than kubevirt/community does today...

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The second. Because we have sig approvers, we implicitly increase the pool.

Yes, sigs have less approvers then root, but: the sum of sig approvers should venetually be larger than the amount of root approvers.

@fabiand
Copy link
Member Author

fabiand commented May 31, 2024

@jean-edouard @iholder101 @lyarwood @0xFelix @vladikr @xpivarc i'd appreciate your opinion to start moving fwd with this.


Instead of relying on a small approvers pool, now the process starts
with routing VEPs in the beginning of their life-time to SIGs.
This is expected to increase the time-to-merge-or-reject for VEPs.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this really increase the time? I would think spreading the load across a larger pool of possible approvers should speed up the process?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I think that should be decrease.

1. designs to be sponsored by a SIG
2. to make one SIG responsible for the design process (reviews of design, code, documentation)
3. to make one SIG responsible for managing the design process (collaboration with other SIGs as needed)
4. to make one SIG to own the feature once it has been merged. The SIG is responsible for maintaining, fixing, running, _everything-it_.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't this process encourage a VEP author to become member of said SIG? Currently it sounds a bit like as a VEP author I can forget about the feature once it is merged and the SIG has to carry the burden of maintaining it.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add that the original author is encouraged but not required to become a member of the SIG to help with on-going maintenance of the feature they are introducing.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently it sounds a bit like as a VEP author I can forget about the feature once it is merged and the SIG has to carry the burden of maintaining it.

Do you mean "once it GAs"?
If you'd forget about the feature before it GAs, it will eventually be dropped.

Forgetting about a feature after developing it to the point it GAs sounds fair to me TBH.

I would add that the original author is encouraged but not required to become a member of the SIG to help with on-going maintenance of the feature they are introducing.

I'm not against encouraging it, but not sure it's necessary TBH. These scenarios are completely valid IMO:

  1. Someone develops a feature under a certain SIG but is interested only in the feature's narrow scope, not the entire SIG. For example, someone can develop a network feature under sig-network, but care about this specific feature and not about SIG network generally.
  2. Someone can develop a feature, own and maintain it for a while, then stop maintaining it (due to switching his position, becoming interested in other stuff, etc). IOW, we should expect that people will move around. In any case the SIG always owns all of its features while people can stop maintaining them.

Comment on lines +19 to +20
2. to make one SIG responsible for the design process (reviews of design, code, documentation)
3. to make one SIG responsible for managing the design process (collaboration with other SIGs as needed)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To me these two items essentially are the same, maybe merge them?


* As a VEP Author I want to know who I can work with in order to move
my proposal forward
* As a SIG I want to have a say in what is getting pushed into my domain
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will this hurt adoption of new features in the long run if a SIG decides there is no capacity to maintain everything? I'm thinking of a constantly increasing maintenance load on the SIG while the count of members may not increase.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In an extreme scenario but the opposite is also possible if we continue to allow features to flow into the project without finer grain ownership of the design process right?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@lyarwood +1.

It is better to understand that we don't have the capacity to maintain a feature. Now we can't even figure that out because there is no clear definition of ownership.


Process elements:

- VEP Author creates a GitHub Issue for getting a unique identifier and starting the process
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: Add link to the repo?

Copy link
Member

@lyarwood lyarwood left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[..] @lyarwood [..] i'd appreciate your opinion to start moving fwd with this.

A few more comments from me, @fabiand if it would help move this forward I'm happy to clean up some of the language nits and post an updated draft if you can add me as a collaborator on your branch?

2. SIG approvers are empowered to approve designs, increase the approvers pool
3. The ownership of an implemented feature becomes clear
4. Ensure that designs converge (accept, reject)
5. Formalize this process as an Virtualization Enhancement Proposal (VEP) process
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

KVEPs?


Instead of relying on a small approvers pool, now the process starts
with routing VEPs in the beginning of their life-time to SIGs.
This is expected to increase the time-to-merge-or-reject for VEPs.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I think that should be decrease.


## Functional Testing Approach

Require this process for KubeVirt v1.4 and onwards.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

require from v1.5


* As a VEP Author I want to know who I can work with in order to move
my proposal forward
* As a SIG I want to have a say in what is getting pushed into my domain
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In an extreme scenario but the opposite is also possible if we continue to allow features to flow into the project without finer grain ownership of the design process right?

1. designs to be sponsored by a SIG
2. to make one SIG responsible for the design process (reviews of design, code, documentation)
3. to make one SIG responsible for managing the design process (collaboration with other SIGs as needed)
4. to make one SIG to own the feature once it has been merged. The SIG is responsible for maintaining, fixing, running, _everything-it_.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add that the original author is encouraged but not required to become a member of the SIG to help with on-going maintenance of the feature they are introducing.

@iholder101
Copy link
Contributor

@fabiand @0xFelix @jean-edouard @lyarwood @davidvossel

I think this proposal is very important and would serve as a perfect alternative to the current "design proposal" which is not owned by any SIG, doesn't serve as a live-document until the feature GAs, and so on.

What's left in order to get this in? Does anyone have any objections?

@jean-edouard
Copy link
Contributor

@fabiand @0xFelix @jean-edouard @lyarwood @davidvossel

I think this proposal is very important and would serve as a perfect alternative to the current "design proposal" which is not owned by any SIG, doesn't serve as a live-document until the feature GAs, and so on.

What's left in order to get this in? Does anyone have any objections?

Honestly I'm a bit concerned about this.
SIGs created big silos within the project/community/CI.
To me, this proposal deepens those silos by encouraging members of a given SIG to both submit and approve design proposals. That looks a lot like a conflict of interest!
I would almost argue for the opposite, i.e. design proposals must be approved by someone who is not a member of that SIG...

@iholder101
Copy link
Contributor

@fabiand @0xFelix @jean-edouard @lyarwood @davidvossel
I think this proposal is very important and would serve as a perfect alternative to the current "design proposal" which is not owned by any SIG, doesn't serve as a live-document until the feature GAs, and so on.
What's left in order to get this in? Does anyone have any objections?

Honestly I'm a bit concerned about this. SIGs created big silos within the project/community/CI. To me, this proposal deepens those silos by encouraging members of a given SIG to both submit and approve design proposals. That looks a lot like a conflict of interest! I would almost argue for the opposite, i.e. design proposals must be approved by someone who is not a member of that SIG...

Man, that's an interesting thought! :)

As I see it, this proposal has two main goals:

  1. Requiring an issue that would serve as a source of truth regarding a VEP's progress (similar to k8s KEPs).
  2. Easing the process of design-proposals/VEPs getting merged.

We aim to address (2) by introducing SIGs and giving them ownership and responsibility of the KEPs in their domain. This way SIGs can approve proposals without waiting for many "uber-approvers" to chime in the discussion, and have the responsibility to respond in a reasonable time frame.

That looks a lot like a conflict of interest!

I understand your point. However, I'm not sure it will hurt us in practice for a few reasons.

  1. A SIG does not only submit and approve proposals, but also maintains them. Rushing into approving a bad proposal is basically shooting yourself in the foot.
  2. This proposal writes: SIG collaborates with other SIGs to ensure its thoroughly reviewed. IOW It's the SIG's responsibility to ensure which other SIGs are related to the proposal by actively reaching out to them and getting their ACK. If any one of the other SIGs thinks it relates to them as well, I agree that we should require an approval/LGTM from their side in order to accept the proposal.
  3. We should anyways encourage other SIGs (and all community members!) to take part in the discussions about the different proposals. The fact that a SIG owns a VEP doesn't mean that others' opinion do not count.
  4. Requiring that every proposal should be reviewed by all KEPs kind of misses the point of addressing (2). We would again get to a point where it would be pretty hard to get a reviewer to look at your proposal.

Let me know what you think

@iholder101
Copy link
Contributor

@jean-edouard ping :)

@fabiand WDYT about splitting this proposal into two - one for using a tracking issue with graduation requirements etc, and another one for the SIG ownership part? I support them both, but perhaps it'll be easier to merge this way.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dco-signoff: yes Indicates the PR's author has DCO signed all their commits. size/L
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants