docs(contrail-gh): document surface-diff tripwire and version tagging - #52
Conversation
Passport's new CLI subcommand slipped past docs/contrail-gh.md's table because nothing mechanically flagged that contrail's public surface had changed. This documents the contrail-gh-side fix: surface-check.yml diffs subcommands and registry ids against a checked-in contrail-surface.json on every pin-bump PR, and tag-pin.yml tags minor/major bumps as vX.Y.Z (never patch-only, since bump-minor-pre-major already makes that split meaningful pre-1.0). Also rewords the "A release is cut" table row, which previously implied merging the Dependabot PR was sufficient on its own. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X6VSeYrwoBr5FU8ZiwVDTn
The recipe imported RAW_LOGS and STORAGES unconditionally, which don't exist in contrail 0.4.0, the version contrail-gh's requirements.txt currently pins. Mirror surface-check.yml's optional_import so the recipe produces the same null values the CI check and the committed baseline already expect, instead of an ImportError. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FiQX66jnRTAVwaYrBF7vQV
|
Fixed a bug a review turned up in the
|
One row lumped CLI subcommands together with importer/provider/storage/ raw-log ids under identical guidance, but they don't share a default posture: importers and providers should default to being scaffolded (an env var, a directory, a gitignore/guard if file-based) so a new source is as easy as possible to adopt; storages and raw-logs need the same wiring instinct but no repo-tree scaffolding by default, since they're output choices rather than data-source choices; CLI subcommands get no default at all -- Passport deserved active promotion, a hypothetical diagnostic flag would deserve none, and the table can't tell those apart in one shared line. Matches the per-key guidance just added to surface-check.yml in atdr/contrail-gh#14. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X6VSeYrwoBr5FU8ZiwVDTn
|
Pushed a follow-up commit (
Reasoning: a single shared row treated a Passport-style feature the same as an internal registry becoming visible, which doesn't reflect how differently those should actually be handled. Formatted/linted clean ( |
What changed
Documents a surface-diff tripwire and a version-tagging scheme for
atdr/contrail-gh, contrail's companion template repo. This PR is docs-only —the mechanism itself (
surface-check.yml,tag-pin.yml,contrail-surface.json)lands in a separate
atdr/contrail-ghPR, which this doc describes and links to.Why
Passport's new
passportCLI subcommand slipped pastdocs/contrail-gh.md'stable because nothing mechanically flagged that contrail's public surface had
changed — reviewers had to remember to check by hand. This documents the fix:
contrail-gh's
check-template.yml/check-instance.ymlwill diff CLI subcommandsand registry ids (importers/providers/storages/raw-logs) against a checked-in
contrail-surface.jsonon every pin-bump PR, andtag-pin.ymltags minor/majorbumps as
vX.Y.Z(never patch-only, sincebump-minor-pre-major/bump-patch-for-minor-pre-majoralready make that split reliably mean"feature/breaking" vs. "pure fix" while contrail is pre-1.0). Also rewords the "A
release is cut" table row, which previously implied merging the Dependabot PR was
sufficient on its own — it's the trigger, not the whole story.
Checks
./venv/bin/ruff check .and./venv/bin/ruff format .— no Python changed./venv/bin/pytest -q— no Python changedgh issue list; none of the open issues touch this changeTest plan
npx prettier@3.9.6 --write docs/contrail-gh.md— ran via pre-commit hook,no formatting issues remained
npx markdownlint-cli2 docs/contrail-gh.md— 0 issuesand section read coherently with the existing doc
🤖 Generated with Claude Code
https://claude.ai/code/session_01X6VSeYrwoBr5FU8ZiwVDTn