github-actions[bot] commented on code in PR #68785: URL: https://github.com/apache/doris/pull/68785#discussion_r4227704521
########## gensrc/AGENTS.md: ########## @@ -0,0 +1,11 @@ +# AGENTS.md — gensrc (thrift / protobuf) + +Everything under `gensrc/thrift` and `gensrc/proto` is a wire format between FE, BE and the cloud services; `olap_file.proto` and `segment_v2.proto` are also on-disk formats. Thrift and protobuf carry field ids and enum values, not names, and a mismatch is not an error: a field that lands on another field of the same wire type is read as that field, and an enum member is just an integer. + +## The rule + +Every definition (a thrift struct, union, exception, service method or enum; a proto message or enum) must mean the same thing on both sides of every upgrade step: branch-3.1 to branch-4.0, branch-4.0 to branch-4.1, branch-4.1 to branch-4.2, branch-4.2 to master, and for on-disk formats every release that can still read the data. An id or enum value present on both sides must be the same field with the same wire type, requiredness and meaning, and the receiver must treat it the same way when the sender leaves it unset (the declared default or the `__isset` / `has_` fallback). An id present on one side only must stay unused on the other, which is why a dropped field keeps its id (`// Deprecated`, a commented-out line, proto `reserved`) and why an id taken on any branch is taken on master. Names are not on the wire, but json2pb dumps and the cloud meta-service HTTP API are keyed by name, so a rename must keep the meaning and land on every branch that has the field. Review Comment: [P2] Treat Thrift RPC method names as wire-visible. This rule includes service methods but says names are not on the wire. A Thrift request header carries the method name: after renaming `FrontendService.reportExecStatus` without keeping an alias, an older BE still invokes `reportExecStatus`, which the newer FE cannot dispatch even though argument ID 1 is unchanged. Qualify the name statement for ordinary field encoding and require service methods to remain callable during supported rolling upgrades (or provide an alias/migration). -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
