You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
echo "::notice title=Proto breaking check skipped::This PR has label breaking-change:proto or breaking-change:approved. A maintainer acknowledged an intentional proto break. Remove the label to re-enable buf breaking."
echo "::notice title=TypeScript API check skipped::This PR has label breaking-change:typescript-api or breaking-change:approved. Commit an updated api-baseline.d.ts when appropriate; this label only bypasses CI."
echo "::notice title=Host bindings check skipped::This PR has label breaking-change:host-bindings or breaking-change:approved. Update snapshots and host-imports-baseline.txt when appropriate; this label only bypasses CI."
Copy file name to clipboardExpand all lines: README.md
+17-3Lines changed: 17 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -268,16 +268,30 @@ bun generate:sdk # Generate all SDK types and code
268
268
269
269
### Breaking Changes
270
270
271
-
The `breaking-changes` CI job blocks PRs that alter any of the three protected contracts.
272
-
If your change is intentional, update the relevant baseline before pushing:
271
+
The [`breaking-changes`](./.github/workflows/breaking-changes.yml) workflow blocks PRs that alter any of the three protected contracts. If your change is intentional, update the relevant baseline before pushing:
273
272
274
273
| Contract | What triggers the failure | How to update |
275
274
|---|---|---|
276
-
| Proto fields | Field deleted, renamed, renumbered, or type changed | No baseline file needed — CI runs `buf breaking` on `submodules/chainlink-protos` (`cre` module) against the submodule commit pinned on `main`|
275
+
| Proto fields | Field deleted, renamed, renumbered, or type changed | No baseline file — CI runs `buf breaking` on `submodules/chainlink-protos` (`cre` module) against the submodule commit pinned on `main`|
277
276
| TypeScript public API | An exported type/interface was removed or changed | Run `bun run update-api-baseline` inside `packages/cre-sdk` and commit `api-baseline.d.ts`|
278
277
| JS host binding names | A binding was added, removed, or renamed in `host-bindings.ts`| Run `bun test --update-snapshots` inside `packages/cre-sdk` and commit the updated `__snapshots__` file |
279
278
| Rust host imports | An `extern "C"` import was added or removed in `lib.rs`| Re-run the sed extraction (see `breaking-changes.yml`) and commit `host-imports-baseline.txt`|
280
279
280
+
#### CI override labels
281
+
282
+
When a change is **intentionally** breaking and cannot be fixed by updating a baseline (e.g. a coordinated proto break before `main` catches up), a **maintainer** adds the matching label on the PR (this re-runs the workflow):
Labels are an audit trail in the PR timeline, not a substitute for review. Prefer updating baselines (`api-baseline.d.ts`, snapshots, `host-imports-baseline.txt`) when the new contract is the new source of truth. For proto breaks, coordinate the `chainlink-protos` submodule bump and document migration notes in the PR.
292
+
293
+
Restrict who can add these labels in the repo’s **Labels** settings (e.g. maintainers only).
294
+
281
295
For detailed development setup, see individual package READMEs:
0 commit comments