-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Create API compatibility and Supported Versions Policy for Feast #687
Comments
Thanks for taking the time to write this out @mrzzy. A pleasant surprise.
You touched on a core issue here. If we had unlimited manpower and bandwidth we could easily maintain multiple code paths and gradually deprecate old APIs. We don't, unfortunately. I like the idea behind the policy you are proposing. I think we should start with a pebble (to steal @ches's saying). We can keep the policy as simple as possible for the time being, and over time it can grow to contain more and more information. We are already documenting breaking api changes with the Here is an example of what I mean: https://cloud.google.com/kubernetes-engine/docs/release-notes This would allow users to at least identify upcoming breakages and plan for their upgrade.
It would be great if you could provide "reasonable defaults" here that we can attack as a straw man. We probably want to only have breaking changes on minor version bumps (patch versions are for.. patches). And minimally we want to have 1 minor version of backward compatibility, but I can see ourselves breaking that rule as we are with
Perhaps every release should come out with an email on the mailing list. This should also communicate breaking changes and possibly a link to find out more information on upgrades.
I had something like this in mind: https://docs.getdbt.com/docs/guides/migration-guide/upgrading-from-0-10-to-0-11 |
Tying everything together into a policy: Defining API:
Defining Breaking Change:
What steps should developers take introduce breaking changes to the API?
What & How much API compatibility guarantees can we provide to users?
How do we provide a clear way for developers to announce breaking changes to users? (ie Slack? Deprecation notices? Issues? etc.)
How can we provide a clear transition path for existing users to upgrade to new versions with potentially breaking changes?
|
I read through the policy. It looks good to me.
Also thought about this. I think for now we can exclude it since the assumption is that code would be contributed to Feast, and that the code owners should keep it up to date with the current interface. Once we have a plugin interface then it should definitely be included in this policy though.
We should also use the |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Background
As Feast evolves and matures over time, and new users integrate Feast into their systems, we are faced with two conflicting needs:
For guidance on how to resolve this we can look at Kubernetes does it:
User Facing APIs in Question for context:
Problem
How do we resolve the two conflicting needs of Developers and Users while satisfy the following requirements:
Proposed Solution
Create and API compatibility and Support Versions Policy to document how:
action required
in Release note what needs to be changed etc.)The text was updated successfully, but these errors were encountered: