docs: record the runtime-package version contract (#20) - #21
Merged
Conversation
AGENTS.md named no package version and did not mention the package-contract gate's version/Provides/SONAME locks. Record 1.5.6+ceralive.1, the versioned Provides that lets it replace both Debian TLS flavours, and the apt/R2 percent-encoding consequence of the '+' in the version.
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.
What
Rule-A follow-up for PR #20 (
chore(release): 1.5.6+ceralive.1 + package-contract tests), which extendedpackage-contract.shwith real version/metadata locks butleft
AGENTS.mdsilent about them.Adds the current package version to the runtime-package bullet and a
"Runtime-package version contract" subsection listing exactly what the static gate
locks.
Why
AGENTS.mdis the routing layer for this repo and it named no package versionat all, so there was nothing to check a drift claim against — the version lived
only in
build-deb.shand two workflows.Two things are easy to get wrong and are now written down:
1.5.6+ceralive.1) and theProvidesversion (= 1.5.6)are deliberately DIFFERENT strings. The
Providesmust match the upstreamversion Debian's
libsrt1.5-gnutls/-opensslwould satisfy, because that iswhat lets this package replace both flavours instead of co-installing beside
them — which is the single-fork invariant the whole device runtime rests on.
+in the version is not cosmetic. apt's https method percent-encodes it to%2Bwhile R2 stores the literal+, which 404'd every+-versioned.debon-device until
apt-workerAdd note about building library dynamically to obey LGPL Haivision/srt#23 keyed lookups on the decoded path. Cross-linkedso the next person changing this version sees that consequence.
How to verify
The gate is static (reads packaging sources and workflows; no build needed):
Every value in the new table is one the script asserts, so the doc cannot drift
from the packaging without the gate going red.
Risks
None — documentation only. No packaging, workflow, or script change.