This is an automated email from the ASF dual-hosted git repository.

csun5285 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git


The following commit(s) were added to refs/heads/master by this push:
     new 6802f57005e [chore](build) Require new thrift/proto ids to land on 
master first (#70066)
6802f57005e is described below

commit 6802f57005ee4f9e96caa609cc17ec264e368f6f
Author: Chenyang Sun <[email protected]>
AuthorDate: Wed Nov 4 09:41:00 2026 +0800

    [chore](build) Require new thrift/proto ids to land on master first (#70066)
    
     Require new thrift/proto ids to land on master first
---
 .claude/skills/code-review/SKILL.md | 4 ++--
 AGENTS.md                           | 2 +-
 gensrc/AGENTS.md                    | 4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/.claude/skills/code-review/SKILL.md 
b/.claude/skills/code-review/SKILL.md
index 5cbdbff33bc..eb1a9d9353a 100644
--- a/.claude/skills/code-review/SKILL.md
+++ b/.claude/skills/code-review/SKILL.md
@@ -87,7 +87,7 @@ The following checkpoints must be **individually confirmed 
with conclusions** du
     - Can affected processes detect the change promptly without restart?
 - Does it involve incompatible changes like function symbols or storage 
formats? If yes:
   - Is compatibility code added? Can it correctly handle requests during 
rolling upgrades?
-- Does it change `gensrc/thrift` or `gensrc/proto`? If yes: read every touched 
definition on HEAD and on each release branch and compare. An id or enum value 
that means something else on another branch, a reused id, or a new required 
field is a finding. (See `gensrc/AGENTS.md`)
+- Does it change `gensrc/thrift` or `gensrc/proto`? If yes: read every touched 
definition on HEAD and on each release branch and compare. An id or enum value 
that means something else on another branch, a reused id, or a new required 
field is a finding. On a release-branch PR, an added id or enum value that is 
not already on master is a blocking finding. (See `gensrc/AGENTS.md`)
 - Are there functionally parallel code paths to the modified one? If yes:
   - Should this modification be applied to other paths, and has it been?
 - Are there special conditional checks? If yes:
@@ -210,7 +210,7 @@ Detailed module review guides live in `AGENTS.md` files in 
each source directory
 
 | Directory | Coverage |
 |-----------|----------|
-| `gensrc/AGENTS.md` | Thrift / protobuf ids and enum values: same meaning on 
every branch, never reused, new fields optional |
+| `gensrc/AGENTS.md` | Thrift / protobuf ids and enum values: same meaning on 
every branch, never reused, new fields optional, added on master first |
 
 ---
 
diff --git a/AGENTS.md b/AGENTS.md
index afb9beb5a01..c87e65dbb30 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -20,7 +20,7 @@ Separately, any new outbound HTTP request the FE or BE issues 
to a host named by
 
 ## Thrift and Protobuf Field Ids
 
-Every change under `gensrc/thrift` and `gensrc/proto` must keep every upgrade 
compatible (branch-3.1 → 4.0 → 4.1 → 4.2 → master): a field id or enum value 
means the same thing on every branch, an id is never reused, and a new field is 
optional. The rule and how to review against it are in `gensrc/AGENTS.md`; read 
it before touching those directories.
+Every change under `gensrc/thrift` and `gensrc/proto` must keep every upgrade 
compatible (branch-3.1 → 4.0 → 4.1 → 4.2 → master): a field id or enum value 
means the same thing on every branch, an id is never reused, and a new field is 
optional. A new id or enum value is added on master first; a release-branch PR 
that adds one master does not have is not mergeable. The rule and how to review 
against it are in `gensrc/AGENTS.md`; read it before touching those directories.
 
 ## When running in a WORKTREE directory
 
diff --git a/gensrc/AGENTS.md b/gensrc/AGENTS.md
index 87ff899372f..000c4ff39d9 100644
--- a/gensrc/AGENTS.md
+++ b/gensrc/AGENTS.md
@@ -1,7 +1,7 @@
 # AGENTS.md — gensrc (thrift / protobuf)
 
-Everything under `gensrc/thrift` and `gensrc/proto` is shared by every 
release, on the wire and on disk. One rule: a change here must keep every 
upgrade compatible, 3.1 → 4.0 → 4.1 → 4.2 → master. A field id or enum value 
means the same thing on every branch that has it, an id is never reused, and a 
field that only one side has is optional.
+Everything under `gensrc/thrift` and `gensrc/proto` is shared by every 
release, on the wire and on disk. One rule: a change here must keep every 
upgrade compatible, 3.1 → 4.0 → 4.1 → 4.2 → master. A field id or enum value 
means the same thing on every branch that has it, an id is never reused, and a 
field that only one side has is optional. New ids and enum values are allocated 
on master: the master PR lands first, even for a feature that ships only on a 
release branch (add the field the [...]
 
 ## Review
 
-Read every touched definition on HEAD and on each release branch that still 
takes picks (today branch-4.2, branch-4.1, branch-4.0 and branch-3.1; add a new 
branch when it is cut) with `git show <remote>/branch-4.2:<path>`. An id or 
enum value that means something else on another branch, a reused id, or a new 
required field is a finding. A collision that already exists between two 
shipped releases cannot be fixed by a PR; note it.
+Read every touched definition on HEAD and on each release branch that still 
takes picks (today branch-4.2, branch-4.1, branch-4.0 and branch-3.1; add a new 
branch when it is cut) with `git show <remote>/branch-4.2:<path>`. An id or 
enum value that means something else on another branch, a reused id, or a new 
required field is a finding. For a PR against a release branch, every added id 
or enum value must already be on `<remote>/master` with the same name, type and 
meaning; one that is no [...]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to