Skip to content

Add the release workflow and its gates - #52

Merged
professor3333 merged 1 commit into
mainfrom
release/workflow
Oct 17, 2026
Merged

professor3333 merged 1 commit into
mainfrom
release/workflow

Conversation

@professor3333

Copy link
Copy Markdown
Owner

Implements the planned release.yml.

  • scripts/release_check.py + configs/release_gates.json: on dev only, entity and end-to-end relation F1 must reproduce the bundle's recorded CPU evaluation (±0.002); precision at 30% coverage (±0.01) and post-calibration ECE (≤ +0.01) must reproduce the committed calibration report; p95 latency ≤ 3 s and peak RSS ≤ 3 GB on the runner. ONNX/INT8 parity is not gated (served runtime is PyTorch FP32).
  • .github/workflows/release.yml: on a v* tag, corpus at the pinned commit → dev split → bundle at the pinned Hub revision → gates → SciBERT image build → container smoke test with the real bundle → push to ghcr.io → GitHub release with the manifest and image digest. workflow_dispatch runs everything except publishing.

Local run of the gates (Apple M1, 4 threads): all pass; entity F1 0.8003, relation F1 0.6389, precision@30% 0.9205, ECE after 0.0087, p95 1.13 s, peak RSS 915 MiB.

A v* tag checks the gates in configs/release_gates.json on dev (accuracy
and calibration reproduce the bundle's recorded numbers; p95 latency and
memory within the targets on the runner), smoke-tests the SciBERT image
with the pinned bundle, pushes it to ghcr.io and creates a GitHub release
recording the image digest. A manual run publishes nothing.
@professor3333
professor3333 merged commit 81d700a into main Oct 17, 2026
1 check passed
@professor3333
professor3333 deleted the release/workflow branch October 17, 2026 13:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant