-
Notifications
You must be signed in to change notification settings - Fork 9
add process and guidelines #10
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
base: main
Are you sure you want to change the base?
add process and guidelines #10
Conversation
bf8b8bc to
43d9920
Compare
43d9920 to
6345197
Compare
|
Thanks for putting this together, @LiorLieberman. I think we really need this. We obviously want to avoid any heavyweight process, but a minimum set of guidelines to govern how the project is meant to operate, always in a safe and just manner, is a good thing IMO. A couple of questions I believe this doc could try to answer:
|
I think this is something that the prototype itself can also tell. We should probably lean into the group of contributors we have as well. But not really why do we need something to say "green light -- now you can protoype". Instead we should be relying on code reviews when for the protoype PRs. Remember at this stage we dont release anything.
(a) I dont think this have a solution generally. (b) I dont think we are at a point where this needs definition. I hope we are not at a point where we believe someone has bad intentions. The project is very new, I dont think we need additional red-tape especially given that we narrow it down so much to say, no releases.
Code review. Nothing is becoming a standard at this stage. We agreed that we are at the very early stage of the project and for something to become a standard it needs more implementations, and will probably be after a few iterations of the protoype. This does not mean that we need to accept whatever, but it does mean that we need to be more agile and iterative here and not trying to get everything perfect from start.
Same as number 2, I dont have a good solution here, and again, we have not faced this problem (yet). Lets solve things as we face them. Some (proven) ideas - Code review, multi-vendor representation, etc. |
|
|
||
| The primary purpose of this repository is to serve as a space for defining and iterating on Agentic Networking concepts/APIs/capabilities within Kubernetes. | ||
|
|
||
| * We explicitly welcome and intend to host **multiple iterations of prototypes** that explore different architectural approaches or integration points for Agentic Networking. This allows for evaluation and robust comparison before API finalization. |
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.
To Gui's point about when to protoype, we could add some additional guidance here.
For example, if there are questions in a proposal about if something is feasible or scalable, or it isn't clear or obvious how a worked example is meant to actually behave, a proposal could be kept open until those questions or concerns are answered via research and/or prototype.
Alternatively, if a proposal is generally clear on the intent, it can be merged and a prototype done at that 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.
I agree that the bias should be towards demonstration via the reference implementation. This is the one of the best ways we have towards shaking out what makes sense.
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.
At a high level I am very supportive of an iterative process. I have been advocating for these practices for many years in SIG Network. You can see traces of this, including some prior-art for process around this in the Gateway API GEP Process, which includes a Prototyping phase.
The fundamental point of the Gateway API Prototyping phase the was that things effectively aren't present in main. This helps reduce contention from contributors who (rightly) expect to have equity in the project's future.
This is, I think, at the heart of why the community has had contention which we're now trying to resolve by adding process: from what I've seen so far there's a strong desire to only do minimal review, emphasizing more (and smaller) PRs. A "fix-it-forward" sort of mentality. This "fix-it-forward" approach could work. However, there are many in the community who have a stake in the future of this technology.
This project (by way of being a kubernetes-sigs project) has (whether you like it or not) established itself as "The definitive future place for Kubernetes standards around agentic networking to emerge". There will undoubtedly be multiple implementations in the long run, and nearly everyone in the community is working on this right now, so many have a stake in this. Additionally, I can't think of anyone off-hand who doesn't think that the main branch of a repository in https://github.com/kubernetes-sigs is "sacred" at some level.
I don't think stopping and trying to add a bunch of process right now is a good use of time, given the objectives and how fast this technology area is developing. You'll still have the fundamental problem that some here want to build something that's not yet for anyone, but put it in a position that signals that its for everyone. I think the important thing is to find the right balance between the desire to quickly iterate, and proper signalling and the community's need for equity. I recommend this for prototyping:
- Set the proposal status to indicate prototyping
- Create a non-
mainbranch - PR like crazy into that branch, with as little review as you like. Lean, iterative and fast
- Repeat
#3over the next few weeks until something forms that starts feeling solid and might be ready for wider use - PR against
mainfrom that branch, in reasonably sized chunks - Now: be prepared for a more complete review process, with multiple stakeholders included, and probably some need for compromises. This will take some time, but it's worth it to keep our community strong and integrated.
|
Thanks for the suggestions @shaneutt! I'm mostly aligned with what you're suggesting here, but I'm not sure why we need a separate branch here. You seem to be taking a similar rapid iteration approach in WG AI Gateway but have not chosen to use a separate branch for this and instead PRs are going directly to main. Why the distinction here? |
Sub-projects and Working Groups don't really compare. The AI Gateway WG, as a working group, does not own code or APIs. The product of iteration cycles there can only be more proposals to the relevant SIGs and sub-projects. Ultimately we haven't faced any similar contention thus far, we're ready to change our process and try to accommodate if there are concerns. Given your concern, I have gone ahead and created kubernetes-sigs/wg-ai-gateway#18 to use this same branching strategy for any potential prototyping there (the difference being they likely wouldn't ever merge to main, except maybe for posterity before the repository is archived when the WG concludes). |
I am going to +1 one @shaneutt has suggested (and also what I shared in the slack thread). I see main as the authoritative source of truth (fully agreed upon by the community stake holders). If you need to prototype, that can be done in a shared common branch. I have rewritten entire parts of the K8s code and never needed anything in the main branch for example. |
|
Talked with Rob on Slack to further explore the branching strategy. Clarification: I think the proposals need to be in |
92d7e74 to
622fd8f
Compare
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: LiorLieberman 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 |
1 similar comment
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: LiorLieberman 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 |
|
( I messed up and closed it accidentally, opened again now) |
| This document outlines the development process, release policy, and key timelines for the Agentic Networking repository. Our goal is to foster rapid iteration through prototyping while working toward a broadly implementable, stable API. | ||
|
|
||
| These guidelines truly embrace the prototyping phase and iteration by defining some guardrails and intentions to ensure we communicate clearly that this is not production ready and establish a safe place for iteration. | ||
|
|
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 realize this is an experiment that is going to be different than how many Kubernetes projects have evolved in the past. The agent networking space is moving rapidly and it is worth trying a new methodology to keep pace with the developments."
|
|
||
| The primary purpose of this repository is to serve as a space for defining and iterating on Agentic Networking concepts/APIs/capabilities within Kubernetes. | ||
|
|
||
| * We explicitly welcome and intend to host **multiple iterations of prototypes** that explore different architectural approaches or integration points for Agentic Networking. This allows for evaluation and robust comparison before API finalization. |
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 agree that the bias should be towards demonstration via the reference implementation. This is the one of the best ways we have towards shaking out what makes sense.
|
|
||
| To ensure the community is engaging with stable and meaningful artifacts, we are adopting a conservative release strategy: | ||
|
|
||
| * **No Releases Until API Readiness:** The repository will **not** publish any official releases, alpha, or beta tags until the maintainers and implementation representatives determine that the core API is ready for broad implementation. |
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.
Suggest:
- This project may have internal, incremental commits and the contents of the repo (e.g.
apis/) should not be treated as canonical towards an API release while iteration is occurring. - Official releases: the project will explicitly publish releases (e.g. alpha, beta) that adhere to the standard Kubernetes version guarantees.
| | :---- | :---- | :---- | | ||
| | **Initial Prototyping Phase** | Next 2-3 Months | Explore core concepts and technical feasibility across multiple approaches. | | ||
| | **Alpha API** | Targeting February 2026 | Define a stable alpha, implementable API that can be consumed by implementations. | | ||
| | **Initial Implementations** | Targeting KubeCon EU 2026 (end of March) | Aim to have one or more full reference implementations demonstrating the finalized API at KubeCon EU. | |
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.
Nit: I think there is only one "reference implementation" (in this repo).
| | Activity | Target Timeline | Milestone Goal | | ||
| | :---- | :---- | :---- | | ||
| | **Initial Prototyping Phase** | Next 2-3 Months | Explore core concepts and technical feasibility across multiple approaches. | | ||
| | **Alpha API** | Targeting February 2026 | Define a stable alpha, implementable API that can be consumed by implementations. | |
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.
Nit: Would be good to give end of Feb or beginning of Feb
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'd recommend early Feb, to give more time for the full reference implementation end of March
Yes. This is important to avoid confusion on where proposals are, and if there are dependencies between proposals (which is the case with AccessPolicy/Backend and AuthScheme).
Agreed, but the branch doesn't need to be on this repo. It probably should be on a fork.
Agreed. PR to main at this point. If an in flight prototype depends on another prototype (which again, could be the case with AccessPolicy/Backend and AuthScheme), let's push it to the implementors to manage that dependency, rebasing etc..
I don't think a hard and fast rule is needed here. |
/kind documentation
What this PR does / why we need it:
Add process, guidelines and guardrails
Does this PR introduce a user-facing change?: