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]