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

Beta API and Support for Flexible Parameterized Types #2096

Closed
skaegi opened this issue Feb 24, 2020 · 2 comments
Closed

Beta API and Support for Flexible Parameterized Types #2096

skaegi opened this issue Feb 24, 2020 · 2 comments
Labels
area/api Indicates an issue or PR that deals with the API. kind/question Issues or PRs that are questions around the project or a particular feature

Comments

@skaegi
Copy link
Contributor

skaegi commented Feb 24, 2020

My concern is about API, specifically the golang API and the OpenAPI it might generate for Beta. The current Task and Pipeline types embed the target "run" types as holders where we do parameterization. I think it's likely that before GA Tekton will have more flexible support for parameterization and am trying to figure out how we can avoid a future API breakage -- also see #1530.

I don't think that a change to support a flexible parameterized type would break existing Task and Pipeline definitions -- e.g. CRD level should be correct still as this change would relax requirements in the CRD. I'm more concerned about any guarantee of compatibility with the golang API as for example I can imagine a lot of methods on Task changing.

Does anyone have a good sense about this? Is it possible to declare beta only for our CRDs and be very careful about how we describe them.

@vdemeester
Copy link
Member

The current Task and Pipeline types embed the target "run" types as holders where we do parameterization.

I am not sure I get that 🤔.

Does anyone have a good sense about this? Is it possible to declare beta only for our CRDs and be very careful about how we describe them.

The beta API is about the CRDs and the CRD only — the field and their meaning. How the struct are "implemented" (aka a go struct, a java bean, a rust struct, …), is a different beast and, as far as I understand, isn't cover by the beta support level. This mean we could change the entire struct (or even the language we use) and still support the API.

So for me it's a given, the "beta api declaration" is about the CRD, not the golang API. This is also a reason why I feel better having the "beta api release" not a 1.0, because then, this would make the assumption that the golang API is stable to (or at least is changed in a backward compatible way).

/area api
/kind question

@tekton-robot tekton-robot added area/api Indicates an issue or PR that deals with the API. kind/question Issues or PRs that are questions around the project or a particular feature labels Feb 25, 2020
@skaegi
Copy link
Contributor Author

skaegi commented Feb 25, 2020

Ok great. I think we can close this then.

@skaegi skaegi closed this as completed Feb 25, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/api Indicates an issue or PR that deals with the API. kind/question Issues or PRs that are questions around the project or a particular feature
Projects
None yet
Development

No branches or pull requests

3 participants