api: freeze of v2 API, cut v4alpha API.#10601
api: freeze of v2 API, cut v4alpha API.#10601htuch wants to merge 3 commits intoenvoyproxy:masterfrom
Conversation
|
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. |
|
This is now working for build/test/docs, generated APIs look sane (to me). What remains is cleanup of the Python code and |
|
@htuch looks good for me only this API changes. |
c8e0f19 to
32e4edf
Compare
|
@lizan @mattklein123 this is now ready for review for real. |
|
@htuch Is it possible to split the tooling part out to another PR? |
|
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>
|
@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>
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>
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>
|
Closing this out, will do a pure API PR instead. |
This patch performs a major version freeze and bump by modifying package_version_status, using the tooling developed in #10636. Specifically:
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