Repository navigation
wrapper: point the standalone feed at the canonical recipe - #11
Amperstrand wants to merge 1 commit into
Conversation
THINKING ALOUD. Two hand-maintained copies of one OpenWrt recipe is the definition of split brain, and the ledger shows it: Gen-2 (FreedomTechFeed/packages) grew vendor.lock, build-in-CI portal bundling, both-directions tarball parity, main-tip SHA pins, the apk pre-release scheme and the build- contract fence; Gen-1 (this repo) stayed on the v0.5.0 tarball with committed built portal assets (violating Gen-2's own build-in-CI rule), a CLI version injection Gen-2 fixed in pre5, and no CVM daemon. Every one of those was fixed in one brain and not the other. The DRY end-state this lands: ONE recipe (Gen-2, where the fences live); this repo becomes a wrapper for existing feeds.conf lines -- scripts/sync-from-canonical.sh mirrors the canonical net/tollgate-wrt wholesale (fences included), rewrites the ONE layout difference (the golang-package.mk include anchor for standalone src-git use, the swap Gen-1's old header documented), and records the mirrored ref in .canonical-source so staleness is visible. The old sync-from-upstream.sh is deleted: it re-derived release facts by hand, which is the defect, not the feature. README carries a deprecation banner; the Makefile carries a mirror header. New consumers point at the canonical feed. Deliberately NOT executed here: the sync itself. Running it flips what this feed publishes (v0.5.0 -> whatever the canonical pin is) -- a release decision for the org, now one command instead of a re-derive.
|
Companions: canonical recipe FreedomTechFeed/packages#90 (contract consumption) + #91 (the source-of-truth README this wrapper points at); the contract itself: OpenTollGate/tollgate-module-basic-go#1021, map: their #1022. |
|
@maintainers — the packages trio (#90/#91/#92) merged tonight and the contract fence is live and behaving as designed on master (warn-on-pre-contract-pin, pass). This wrapper PR is the remaining loose end; the sync-execution step is yours (one command: |
|
@cobrador — safety case for the whole lane incl. this wrapper: OpenTollGate/tollgate-module-basic-go#1015 (comment 6310059367). This PR is a pointer + sync script; publishing flip is deliberately left as the org's one-command decision. |
Why
Two hand-maintained copies of one OpenWrt recipe is split brain by definition, and the ledger shows it: this repo (Gen-1) is on the v0.5.0 tarball with committed built portal assets (violating the build-in-CI rule Gen-2 enforces), a CLI version injection Gen-2 fixed in pre5, and no CVM daemon — while Gen-2 (
FreedomTechFeed/packages:net/tollgate-wrt) grew vendor.lock, build-in-CI bundling, both-directions tarball parity, SHA pins, the apk pre-release scheme, and now the upstream build-contract fence (companion PRs: FreedomTechFeed/packages#90 + OpenTollGate/tollgate-module-basic-go#1021). Every one of those was fixed in one brain and not the other.What — this repo becomes a wrapper
scripts/sync-from-canonical.sh— mirrors Gen-2'snet/tollgate-wrtwholesale (fences come with it), rewrites the one layout difference (thegolang-package.mkinclude anchor for standalonesrc-gituse — the swap this repo's old Makefile header documented), records the mirrored ref in.canonical-source.sync-from-upstream.shdeleted — it re-derived release facts by hand, which is the defect, not the feature.net/tollgate-wrt/; change it upstream of the mirror, then re-sync. New consumers point at the canonical feed.Companion: FreedomTechFeed/packages#90 (contract consumption +
tollgate-cvm), OpenTollGate/tollgate-module-basic-go#1021 (the contract itself). Reasoning narrative in the commit message.