graph-node icon indicating copy to clipboard operation
graph-node copied to clipboard

all: GraphQL API Versioning

Open kamilkisiela opened this issue 3 years ago • 9 comments

This is the initial implementation of versioning.

  • [ ] remove the example implementation of a feature flag

I left few comments on the interesting parts of the code to make it easier to review.

Continues #3155

kamilkisiela avatar Jan 25 '22 09:01 kamilkisiela

@kamilkisiela is this ready to review? I see that the CI is failing.

evaporei avatar May 11 '22 15:05 evaporei

@evaporei yes, the code won't change much even after a rebase. I've got some questions both in code and gh comments, because I'm not sure if it's the right implementation.

kamilkisiela avatar May 11 '22 16:05 kamilkisiela

hey @kamilkisiela have you got further updates here? just checking that you are not blocked

azf20 avatar Jun 14 '22 15:06 azf20

@azf20 no updates, I'm trying to implement support for interfaces in #3184 and once it's ready, I'll apply David's comments here.

kamilkisiela avatar Jun 14 '22 15:06 kamilkisiela

@lutter ready for a review again, I implemented everything you asked for.

Those two failing tests (just the order of fields) are related to the fact I moved the ordering logic behind a feature flag to show what the versioning will look like. Once I remove the example feature flag, it will be fine.

kamilkisiela avatar Jun 20 '22 11:06 kamilkisiela

@azf20 I read the GIP and applied some changes to the PR. When we get a version range, the semver package resolves to the most recent applicable version.

kamilkisiela avatar Jun 20 '22 11:06 kamilkisiela

@lutter I did a refactor, it includes your suggestions.

kamilkisiela avatar Jul 27 '22 09:07 kamilkisiela

Thanks @kamilkisiela and @lutter! I think starting with 1.0.0 is ok, but also interested in @That3Percent's expectations of a 1.x release

azf20 avatar Jul 27 '22 15:07 azf20

I think starting with 1.0.0 is ok, but also interested in @That3Percent's expectations of a 1.x release

I also think a 1.0.0 release is a good choice. Even if there are changes we know we would like to make, that's always the case so it's better to have a 1.0 and 2.0 than 0.x in perpetuity.

That3Percent avatar Jul 28 '22 16:07 That3Percent

Agree that this approach seems fine, and I think the GIP already allows for that kind of minimum version specification

azf20 avatar Aug 12 '22 13:08 azf20

Hey @kamilkisiela I think this is good to merge, though looks like there are a couple of conflicts first! cc @lutter

azf20 avatar Aug 22 '22 17:08 azf20