chore(release): version hygiene — one canonical version field + drop legacy dig-companion assets#44
Merged
Conversation
…legacy dig-companion assets
#586: consolidate the node-info/status contract to ONE canonical `version`
field. Remove `dig_node_version` (the internal engine-library crate version) from
`/version`, `/.well-known/dig-node.json`, and `control.status`; `commit` already
pins the exact in-repo engine source, so the dual naming that made "which version?"
ambiguous is gone. Not part of the SYSTEM.md stable control.status contract and
unread by any ecosystem consumer (extension reads `version`), so removal is
non-breaking.
#585: drop the duplicate legacy `dig-companion-*` release assets from the reusable
build workflow; ship only the canonical `dig-node-*` binaries (+ the `dign` alias).
No downstream consumer resolves the legacy asset name from a dig-node release
(apt.dig.net uses `dig-node-{ver}-linux-{arch}`; the installer's pre-rename fallback
targets the SEPARATE DIG-Network/dig-companion repo's own frozen releases).
SPEC/README/USER_JOURNEY/runbook updated in the same unit. Minor bump 0.35.0→0.36.0.
Closes #585 #586
Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TLDR
Two release/version-hygiene cleanups. Closes #585 #586. Minor bump
0.35.0 → 0.36.0.#586 — one unambiguous version field
The node-info/status contract exposed BOTH
version(the shippeddig-nodebinary / workspace version,0.36.0) ANDdig_node_version(the internaldig-node-coreengine-library crate version,0.7.0) — a different value under a second key, so a consumer couldn't tell "which version?".Decision:
versionis canonical (the conventional name; what a consumer means by "the node version").dig_node_versionis removed from/version,/.well-known/dig-node.json, andcontrol.status.dig_node_version— it appeared only in dig-node's own source/docs. The extension readsversion(via/ws/status). So removal is non-breaking, not a hard-break of a consumer.commit(GIT_SHA) already pins the exact source of the whole workspace — including the engine, which is now an in-repo sibling crate (not the old digstore git pin) — sodig_node_versionis now redundant provenance, pure ambiguity.control.statuscontract and listsversion/commit/… but NOTdig_node_version— so this field was never part of the cross-repo stable contract. No SYSTEM.md change required.#585 — drop duplicate legacy
dig-companion-*release assetsThe reusable
build-binaries.ymlpublished every binary TWICE — canonicaldig-node-*AND a byte-identical legacydig-companion-*copy (dig-node was formerly dig-companion, #209). Removed thedig-companion-*staging; ship onlydig-node-*(+ thedignalias).Downstream-consumer grep (blast radius):
PKG_dig_node_ASSET_TEMPLATE="dig-node-{ver}-linux-{arch}"(canonical). Does NOT usedig-companion-*. The workflow header comment claiming apt needed the legacy name was stale/wrong — corrected.Repo::dig_node_legacy()fallback targets the SEPARATEDIG-Network/dig-companionrepo's own frozen historical releases (owner/name/stem alldig-companion), NOT thedig-companion-*asset name inside new dig-node releases. Unaffected.dig-companionreference.No cross-repo coherence change needed — no repo resolves the legacy asset name from a dig-node release.
Tests (TDD, red→green)
build_info_exposes_a_single_unambiguous_version_field(meta.rs) — assertsdig_node_versionabsent.server.rs/versiontest — asserts one version field,dig_node_versiongone.release_workflow_no_longer_ships_the_legacy_dig_companion_asset(workflow-shape guard) — asserts nodist/dig-companion-*staged.Local gate
cargo fmt --check✓ ·clippy -D warnings(dig-node-service) ✓ · service lib 190 tests ✓ · server integration 48 tests ✓ · workflow-shape + openrpc-drift guards ✓.SemVer rationale
Minor (
0.35.0 → 0.36.0): #586 is a status-contract shape change but removes an unread, non-stable-contract diagnostic field (backwards-compatible in practice — consumers readversion; extension models a field subset). #585 is achore(release-asset cleanup). No public API removed that any consumer depends on → not major.Docs updated in the same unit
SPEC.md (§2.2, §6.2, §9 status table, §11.2 asset naming, conformance rows), README.md, USER_JOURNEY.md, runbooks/release.md.
Do NOT self-merge — orchestrator gates (#586 contract change) + merges + releases + bumps + closes.
🤖 Generated with Claude Code