-
Notifications
You must be signed in to change notification settings - Fork 178
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
[RFC] CF API v2 End of Life #941
Conversation
This RFC shall define a plan to disable and finally remove CF API v2 from CAPI and cf-deployment.
I'd love to remove v2, but I'm worried that the cost of migrating clients will be too high. There are a bunch of (often non-OSS) legacy v2 clients that are in active use, but are not actively maintained. It is unlikely they will ever move the v3, so this would be a big breaking change. I'm personally interested if there are any half-steps we can take to maintain the v2 interface, but realize some of y'all's goals around v3 modernization. E.g. could we make Role schema migrations that favor the v3 API over v2? |
From SAP point of view, CF will be used productively at least for the next decade and probably even longer. We have to anticipate more demands on scalability and performance and there will be feature requests like the mentioned more fine granular roles. This gets harder and more expensive with the v2 legacy in the code base. I find that this extra burden and development cost within CAPI is difficult to justify for "a bunch of (often non-OSS), unmaintained legacy v2 clients that are still in use". I think that the efforts should be shared with the users of legacy v2 which translates into v3 migration efforts, replacing legacy clients or even more advanced strategies like shimming by v2 users with help of the CF community e.g. by new v3 clients, add missing v3 support in existing clients etc. This takes time and I know this only too well from our efforts to reduce v2 usage on SAP foundations. But it also takes a clear signal that v2 has an EOL one day and this is the main point of this RFC. A way forward could be to keep the EOL date and the related removal of v2 in CAPI more vague ('propose'/'plan' instead of 'define') and add checkpoints before the proposed EOL date. This way we get the message out and can start with first steps like disabling v2 by default in cf-deployment (without removing v2). I can come up with proposal but it will take some time due to vacation. |
How about something like:
Proposed phases:
Parallel with this process, we can explore opportunities to decouple v3 performance from v2, where possible. |
The proposed phases seem reasonable. For Stratos, our team, along with any contributors who wish to assist, plans to fully transition the codebase to v3. Our target for completing this transition is by next July, though we cannot provide any guarantees at this stage. We aim to discuss our plans with the community at CF Day EU on October 10th. |
@Gerg: I adapted the RFC to the proposed 3 phases. I added rough dates to avoid misunderstandings ("Three-year EoL window" is easily interpreted as "v2 is available at least for 3y"). Of course, the dates may shift due the checkpoints. We discussed the "unanimous approval from TOC" in the last TOC meeting and came to the conclusion that we should stick with the standard TOC Decision-Making process (decision by quorum). It is explicitly mention that TOC should strive to reach consensus on decisions and I don't remember any decision with a dissenting vote. |
We discussed this during the TOC meeting on 01.10.2024 and decided to start the FCP with the goal to accept it during the next TOC meeting. |
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.
Overall, it looks good to me.
I would like some language in the RFC saying what happens if the TOC doesn't approve moving to the next phase. For example something like:
If the TOC does not approve moving to the next phase, the TOC will decide a number of months to extend the current phase. Subsequent phases and the EoL date will be updated accordingly. The TOC will then re-convene after that period to again evaluate if it is appropriate to move to the next phase.
Assigning number 0032 to RFC from PR #941
This RFC shall define a plan to disable and finally remove CF API v2 from CAPI and cf-deployment.
Preview