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]

Reply via email to