docs: use one branch for both PR stages

This commit is contained in:
Beckylu 2026-07-29 17:04:18 +08:00
parent 8444e34a7f
commit ac6512ed86
2 changed files with 58 additions and 50 deletions

View File

@ -229,31 +229,9 @@ from your own implementation.
## 3. Build the Trust Chain with Two PRs
This section defines the responsibilities and order of the two PRs: PR A establishes the specification, while PR B supplies the implementation, tests, and performance evidence. Both PRs must link the operator-claim Issue. See Section 7 for submission formats and checks.
This section defines the responsibilities and order of the two PRs: PR A establishes the specification, while PR B supplies the implementation, tests, and performance evidence. PR A and PR B use the same `feat/<operator-id>` branch, and both must link the team's operator-claim Issue. See Section 7 for submission formats and checks.
### PR A: Manifest
PR A defines the operator interface, dtypes, shape rules, workloads, and Roofline formulas before implementation. It is the shared contract for the implementation, tests, and Benchmark.
Create `manifest/<operator-id>` from `summer-camp-2026`:
```bash
git switch summer-camp-2026
git pull --ff-only
git switch -c manifest/<operator-id>
```
Submit only:
- the new operator entry in `tileops/manifest/<family>.yaml`; create a new Manifest file only when no existing family is appropriate;
- Manifest validation or necessary contract tests;
- an explanation of inputs/outputs, shapes, dtypes, workloads, and Roofline formulas.
A new Manifest must start with `status: spec-only`. PR A requires a fast review by a teaching assistant or maintainer and may be merged after Manifest validation passes. PR A does not review the Kernel, performance, or C500 data.
### PR B: Implementation
After PR A is merged, create `feat/<operator-id>` from the latest `summer-camp-2026`:
Create the development branch from the latest `summer-camp-2026`:
```bash
git switch summer-camp-2026
@ -261,7 +239,31 @@ git pull --ff-only
git switch -c feat/<operator-id>
```
Submit:
### PR A: Manifest
PR A defines the operator interface, dtypes, shape rules, workloads, and Roofline formulas before implementation. It is the shared contract for the implementation, tests, and Benchmark.
In the first stage, submit only:
- the new operator entry in `tileops/manifest/<family>.yaml`; create a new Manifest file only when no existing family is appropriate;
- Manifest validation or necessary contract tests;
- an explanation of inputs/outputs, shapes, dtypes, workloads, and Roofline formulas.
A new Manifest must start with `status: spec-only`. PR A requires a fast review by a teaching assistant or maintainer and may be merged after Manifest validation passes. PR A does not review the Op, Kernel, performance, or C500 data.
Do not commit implementation code to this branch before PR A is merged.
### PR B: Implementation
After PR A is merged, continue using the original `feat/<operator-id>` branch and first synchronize it with the latest target branch:
```bash
git switch feat/<operator-id>
git fetch origin
git merge origin/summer-camp-2026
```
After synchronization, submit:
- a stateless Op under `tileops/ops/`;
- a TileLang Kernel under `tileops/kernels/`;
@ -269,6 +271,8 @@ Submit:
- an independent baseline Benchmark under `benchmarks/ops/`;
- only the Manifest status, provenance, and workload fields that may be updated with the implementation.
After completing the implementation, tests, and C500 performance validation, create PR B from the same branch.
Do not include unrelated refactoring, dependency upgrades, or multiple operators in one PR.
## 4. Migration Requirements

View File

@ -219,31 +219,9 @@ subprocess做 Benchmark 时如遇无输出的 `exit 137`,优先怀疑这个
## 3. 使用两个 PR 建立信任链
本节说明两个 PR 的职责和先后关系PR A 先确定规范PR B 再完成实现、测试和性能验收;两个 PR 均须链接算子认领 Issue。具体提交格式和检查命令见第 7 节。
本节说明两个 PR 的职责和先后关系PR A 先确定规范PR B 再完成实现、测试和性能验收。PR A 和 PR B 使用同一个 `feat/<operator-id>` 分支,并均须链接本组的算子认领 Issue。具体提交格式和检查命令见第 7 节。
### PR AManifest
PR A 用于在实现前确定算子的接口、数据类型、形状规则、工作负载和 Roofline 公式,作为后续实现、测试与 Benchmark 的统一契约。
`summer-camp-2026` 创建 `manifest/<operator-id>`
```bash
git switch summer-camp-2026
git pull --ff-only
git switch -c manifest/<operator-id>
```
只提交:
- 在 `tileops/manifest/<family>.yaml` 中新增对应算子;仅在没有合适 family 时创建新的 Manifest 文件;
- Manifest 校验或必要的契约测试;
- 对输入输出、shape、dtype、工作负载和 Roofline 公式的说明。
新 Manifest 的初始状态必须是 `spec-only`。PR A 必须经过助教或维护者的快速 Review并在 Manifest 校验通过后合入。PR A 不审核 Kernel、性能或 C500 数据。
### PR B实现
PR A 合入后,从最新的 `summer-camp-2026` 创建 `feat/<operator-id>`
从最新的 `summer-camp-2026` 创建开发分支:
```bash
git switch summer-camp-2026
@ -251,7 +229,31 @@ git pull --ff-only
git switch -c feat/<operator-id>
```
提交:
### PR AManifest
PR A 用于在实现前确定算子的接口、数据类型、形状规则、工作负载和 Roofline 公式,作为后续实现、测试与 Benchmark 的统一契约。
第一阶段只提交:
- 在 `tileops/manifest/<family>.yaml` 中新增对应算子;仅在没有合适 family 时创建新的 Manifest 文件;
- Manifest 校验或必要的契约测试;
- 对输入输出、shape、dtype、工作负载和 Roofline 公式的说明。
新 Manifest 的初始状态必须是 `spec-only`。PR A 必须经过助教或维护者的快速 Review并在 Manifest 校验通过后合入。PR A 不审核 Op、Kernel、性能或 C500 数据。
PR A 合入前,不得在该分支提交实现代码。
### PR B实现
PR A 合入后,继续使用原来的 `feat/<operator-id>` 分支,并先同步最新的目标分支:
```bash
git switch feat/<operator-id>
git fetch origin
git merge origin/summer-camp-2026
```
同步完成后提交:
- `tileops/ops/` 下的无状态 Op
- `tileops/kernels/` 下的 TileLang Kernel
@ -259,6 +261,8 @@ git switch -c feat/<operator-id>
- `benchmarks/ops/` 下的独立基线 Benchmark
- Manifest 中允许随实现更新的状态、来源和工作负载字段。
完成实现、测试和 C500 性能验证后,再从同一分支创建 PR B。
不要把无关重构、依赖升级或多个算子放进同一个 PR。
## 4. 迁移要求