Skip to content

wrapper: point the standalone feed at the canonical recipe - #11

Open
Amperstrand wants to merge 1 commit into
mainfrom
wrapper/point-to-canonical
Open

Amperstrand wants to merge 1 commit into
mainfrom
wrapper/point-to-canonical

Conversation

@Amperstrand

Copy link
Copy Markdown

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's net/tollgate-wrt wholesale (fences come with it), rewrites the one layout difference (the golang-package.mk include anchor for standalone src-git use — the swap this repo's old Makefile header documented), records the mirrored ref in .canonical-source.
  • sync-from-upstream.sh deleted — it re-derived release facts by hand, which is the defect, not the feature.
  • README deprecation banner + a mirror header on the Makefile: do not hand-edit net/tollgate-wrt/; change it upstream of the mirror, then re-sync. New consumers point at the canonical feed.
  • Deliberately not executed here: the sync itself — running it flips what this feed publishes (v0.5.0 → the canonical pin), which is a release decision for the org. It is now one command instead of a re-derivation.

Companion: FreedomTechFeed/packages#90 (contract consumption + tollgate-cvm), OpenTollGate/tollgate-module-basic-go#1021 (the contract itself). Reasoning narrative in the commit message.

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.
@Amperstrand

Copy link
Copy Markdown
Author

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.

@Amperstrand

Copy link
Copy Markdown
Author

@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: scripts/sync-from-canonical.sh) — the README map (#91) and the source-of-truth routing it documents are already in place.

@Amperstrand

Copy link
Copy Markdown
Author

@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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant