Pre-flight check-release-ready.sh 34 rows · 31 ok · 2 warn · 1 bad · 21:04
branch
working tree
venv python
sidecar venv python
CI status
ci streak
release streak
publish gate
shippable diff
pre-bump consistency
CHANGELOG entry
CHANGELOG body
README changelog
man page .TH
pbxproj MARKETING
doc surfaces
dependency drift
dependency majors
providers live
ruff
Apple Distribution
Developer ID
installer cert
provisioning profile
ASC config
ASC private key
SIGN_IDENTITY
skip-worktree
copr token
copr auth
tap workflow
git tag
publish hold
.ship-local.conf
Build build-all.sh step 6 of 9 · 1h52 elapsed · est. 14m left
1Pre-flight1m
1cSwift unit suite6m
2Sidecar FVPP · fetch · build · sign · 224 Mach-O, no holes31m
2aBundle self-test2m
2bSupply-chain inventory · 116 rows · drift: last build0m
2cApp Store string scan0m
2dAgent extension (.mcpb)1m
5Xcode archive19m
6Export → .pkg5m…
7Release-binary scan~2m
8Provisioning profile~0m
9Notarisation~13m
Gate ci.yml on main @ da82dc6b strict-macos: dispatch · run 33 907 4xx · 14m
3.103.113.123.133.14
ubuntu
✓
✓
✓
✓
✓
macos–
–
✓
✓
…
windows–
–
✓
–
–
strict mac–
–
…
–
–
ruff0
inventory4481
gate-policy
gate-proofs14
ratchet14>13
manpage
mypy149=149
frontend207.7k
e2e2 browsers
Ratchets docs/testing/ratchet.json a number that may not rise
mypy errors149 / 149
gates without proof14 / 13
pytest skip sites23 / 23
slow-marked7 / 7
e2e allowlist4 / 4
IRREVERSIBLE — the tag push
Tag v0.30.0 not yet · waits on: strict mac · ratchet · TestFlight processed · 21:00 working-day window
tag == HEAD
not on PyPI
strict CI verdict
ratchet
TF processed
bank holiday? no
TestFlightby hand · 1/9
upload-testflight.sh → altool --wait → ASC processing
build0.30.0 (3070)stateuploaded 23:31 · PROCESSING (typ. 12–40m)probe
90d from upload
90d
Developer-ID .dmgby hand · 2/9
build-dmg.sh → check-dmg-shippable → upload-dmg.sh (atomic swap)
current0.29.1 · 18d leftnextafter .pkg export · notarise separatelyprobe
30d from build
18d
PyPItag · 3/9
release.yml: ci → build → publish (Trusted Publishing, attest)
live0.29.1expect+23–25m after tag · CDN-cached index, confirm on version URLprobe
permanent
∞
GitHub Releasetag · 4/9
same run · auto notes + sdist/wheel/SBOM assets
livev0.29.1expectwith PyPIprobe
permanent
∞
Homebrewtag · 5/9
repository-dispatch → homebrew-bristlenose update-formula
live0.29.1expectafter PyPI · tap trust is per-invocationprobe
permanent
∞
Fedora Coprtag · 6/9
trigger-copr, needs: verify-pypi · Source0 re-asks a 404 for 10m
live0.29.1 · f43 x86_64expect~35m · SRPM arch varies · repodata is the truthprobe
token 23 Feb 2027
171d
Snapdispatch · 7/9
snap.yml --ref vX.Y.Z → latest/stable · canonical/action-publish (node24)
edge0.29.1+git.30483d1 r14stable0.29.1 r13probe
amd64 only
—
Websiteby hand · 8/9
build.py + rsync assets + deploy.sh (SSH agent)
changelogreads CHANGELOG.md live.dmg link0.29.1probe
—
Verify release.sh verify probes are tri-state: ok · pending · bad — never derived
PyPI
GitHub
Homebrew
TestFlight
.dmg
Snap
Copr
Website