Skip to content

api: freeze of v2 API, cut v4alpha API.#10601

Closed
htuch wants to merge 3 commits intoenvoyproxy:masterfrom
htuch:v4alpha-upgrade
Closed

api: freeze of v2 API, cut v4alpha API.#10601
htuch wants to merge 3 commits intoenvoyproxy:masterfrom
htuch:v4alpha-upgrade

Conversation

@htuch
Copy link
Member

@htuch htuch commented Apr 1, 2020

This patch performs a major version freeze and bump by modifying package_version_status, using the tooling developed in #10636. Specifically:

  • v2 APIs are frozen (except for where they are the latest in their package history and still active)
  • v3 APIs are transitioned to be active
  • Candidate v4alpha APIs are generated (not used by Envoy yet)

Fixes #10355

Risk level: medium (entire API's files are modified, visually verified to ensure things look sane, all tests pass)
Testing: CI

Signed-off-by: Harvey Tuch htuch@google.com

@repokitteh-read-only
Copy link

CC @envoyproxy/api-shepherds: Your approval is needed for changes made to api/.

🐱

Caused by: #10601 was opened by htuch.

see: more, trace.

@htuch
Copy link
Member Author

htuch commented Apr 1, 2020

FYI @mattklein123 @lizan. I'm going to be force pushing here etc. until it's ready to review, but this is a snapshot of where we're heading.

@htuch
Copy link
Member Author

htuch commented Apr 2, 2020

This is now working for build/test/docs, generated APIs look sane (to me). What remains is cleanup of the Python code and protoxform_test tests. Need to merge #10585 as well.

@Shikugawa
Copy link
Member

@htuch looks good for me only this API changes.

@htuch htuch force-pushed the v4alpha-upgrade branch 2 times, most recently from c8e0f19 to 32e4edf Compare April 2, 2020 17:10
Signed-off-by: Harvey Tuch <htuch@google.com>
@htuch htuch force-pushed the v4alpha-upgrade branch from c0db284 to 24963b9 Compare April 3, 2020 00:55
@htuch htuch changed the title WiP for v2 freeze, v4 alpha creation. api: freeze of v2, v4alpha cut and related tooling Apr 3, 2020
@htuch
Copy link
Member Author

htuch commented Apr 3, 2020

@lizan @mattklein123 this is now ready for review for real.

@lizan
Copy link
Member

lizan commented Apr 3, 2020

@htuch Is it possible to split the tooling part out to another PR?

@lizan
Copy link
Member

lizan commented Apr 3, 2020

re: CI I think this doubles the format job which now takes 20 minutes, I guess we can split it to two part, format and protoxform. WDYT?

Signed-off-by: Harvey Tuch <htuch@google.com>
@htuch
Copy link
Member Author

htuch commented Apr 3, 2020

@lizan I've corrected a performance problem and it's back to 12m. Will split out the tools diff to a distinct PR.

Signed-off-by: Harvey Tuch <htuch@google.com>
htuch added a commit to htuch/envoy that referenced this pull request Apr 3, 2020
This patch introduces the tools/docs for a new flow for protoxform: freeze.
This performs a major version freeze and bump by modifying
package_version_status. Tooling now needs to deal with 3 possible versions (v2,
v3, v4alpha). The following contributions are made in the patch:

* Tooling added to support v2 APIs freeze, transitioning v3 to active
  and generating v4alpha.
* A new tool, merge_active_shadow.py, is introduced to combine hand-edited
  active v3 API protos with the v2 implied shadows for deprecated fields.
* The type database now spans v2 and v3 (and implied v4alpha files).
* api_proto_plugins can now take extra args on the Bazel CLI; this is
  used to plumb in the freeze arg to protoxform.
* Docs are updated to reflect the v3 flow that developers should now
  follow.

Part of envoyproxy#10355

This is the tools/docs component of envoyproxy#10601. See envoyproxy#10601 for the resulting
API protos generated by a freeze/fix cycle.

Risk level: Low (tooling only, no API changes yet)
Testing: new golden protos tests for protoxform, unit tests for merge_active_shadow.

Signed-off-by: Harvey Tuch <htuch@google.com>
@htuch
Copy link
Member Author

htuch commented Apr 3, 2020

@lizan tools/doc aspect of this PR is now split out in #10636

htuch added a commit that referenced this pull request Apr 7, 2020
This patch introduces the tools/docs for a new flow for protoxform: freeze.
This performs a major version freeze and bump by modifying
package_version_status. Tooling now needs to deal with 3 possible versions (v2,
v3, v4alpha). The following contributions are made in the patch:

* Tooling added to support v2 APIs freeze, transitioning v3 to active and generating v4alpha.
* A new tool, merge_active_shadow.py, is introduced to combine hand-edited active v3 API protos with the v2 implied shadows for deprecated fields.
* The type database now spans v2 and v3 (and implied v4alpha files) 
* api_proto_plugins can now take extra args on the Bazel CLI; this is used to plumb in the freeze arg to protoxform.

Docs are updated to reflect the v3 flow that developers should now
follow.
Part of #10355

This is the tools/docs component of #10601. See #10601 for the resulting
API protos generated by a freeze/fix cycle.

Risk level: Low (tooling only, no API changes yet)
Testing: new golden protos tests for protoxform, unit tests for merge_active_shadow.

Signed-off-by: Harvey Tuch <htuch@google.com>
@htuch htuch changed the title api: freeze of v2, v4alpha cut and related tooling api: freeze of v2 API, cut v4alpha API. Apr 7, 2020
@htuch
Copy link
Member Author

htuch commented Apr 7, 2020

Closing this out, will do a pure API PR instead.

@htuch htuch closed this Apr 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Freeze v2 API

4 participants