build(ploeg): consume Ploeg from ploeg-hq/ploeg and stop publishing it from Unfold #206
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "ryangr0/chore/ploeg-submodule-cutover"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Completes the consumer cutover approved in webgrip/unfold#1 and tracked in webgrip/unfold#2. Ploeg now lives in github.com/ploeg-hq/ploeg. Unfold pins it as a submodule and stops versioning and publishing it. System ADR-0019 records the decision and supersedes ADR-0004.
What changes
1. Ploeg's source leaves this repository. The 783 tracked files under
apps/ploegare replaced by one gitlink (mode160000). The path staysapps/ploeg, so the integration tests, the unified demo and existing doc links keep working.2. One pinned dependency
https://github.com/ploeg-hq/ploeg.git(.gitmodules)87f8dc45a0ea768c6ab95196d8b99d481df10c65=v0.1.0(annotated tag objectf2567286, verified withgit ls-remote)88cce444extracted from Unfold9c1d53f.developmentis still9c1d53f, so no Ploeg change on trunk is lost.apps/ploegpath at9c1d53fexists atv0.1.0. After normalising the module path, 60 files differ: release, chart and image identity, docs, three gofmt import reorders, and the canary fix87f8dc4.mise run setuprunsgit submodule sync/update --init --recursive. Every checkout that verifies, builds docs or runs the demo usessubmodules: recursive, and the TechDocs prepare commands initialise the submodule.scripts/ploeg-pin.mjs(inmise run verify) refuses vendored source, another URL, and an uninitialised or modified checkout. With--publishedit also requires the pin to be on Ploeg'smain. That is the newploeg-pinjob on PRs and pushes, andreleasewaits for it. A PR that pins an unmerged upstream change stays red until the change lands upstream.ploeg(for examplebuild(ploeg): pin ploeg-hq/ploeg v0.1.1), and such a commit never releases Unfold. Renovate ignoresapps/ploegand never moves the pin.3. Release ownership moves to Ploeg.
on_release_published.ymlloses the Ploeg chart, image, signing and distribution jobs.publish_release.py/publish_chart.pyrefuseploegbefore any Git, network or file access. Tests patch every side-effecting function to fail and prove this.github.com/webgrip/ploegis deleted, including the API call that disabled GitHub Actions there.PUBLISHES_LASTis gone).release-prepare.mjsandapps/.releaserc.cjstouch only Vloer's chart. The preflight drops theploegdandcharts/ploegregistry checks.release-floors.jsonkeeps Ploeg's floor0.4.0-rc.34and the withdrawn1.0.0-rc.1, and marks Ploegretired: the last Unfold-published version is0.4.0-rc.35. Both loaders refuse any train that versions a retired component. Theunfoldtrain is["vloer"].4. Verification follows the boundary.
mise run verifyruns Ploeg's ownscripts/verify.shat the pin (gofmt, vet, build,go test ./...with PostgreSQL, licence/brand/release-policy scripts, OpenSpec, Helm lint/template/goldens).ploegdimage context.5. Docs.
scripts/docs-configuration.pyis deleted.generate-domain.pywith a regression test: Ploeg's standalone model cites Unfold ADR-0002 by URL, which the combined glossary used to mangle into../../apps/ploeg/docs/domain/https:/….Commits
build(ploeg): consume Ploeg from ploeg-hq/ploeg as a submodule pinned at v0.1.0ci(release): stop versioning and publishing Ploeg from Unfolddocs: record that Unfold pins Ploeg and releases only VloerEach intermediate commit passes
docs-check, the Python release suite andrelease-checkon its own.Evidence (Unfold
05aa8f18with Ploeg87f8dc45, local, userryanwith non-root PostgreSQL, Go 1.27.1, Node 24.21.0, mise 2026.9.18)mise run setup: passed.mise run verify(CI env:GOFLAGS=-count=1,UNFOLD_VERIFY_CPUS=4, result cache on): all gates passed, 53.5 s wall.scripts/verify.sh: 36 packages ok, OpenSpec 17/17.TestOperatorWorkbenchQualificationand…InferenceQualificationpassed. Exactly 2 capped, scopedploeg-*keys were minted and both blocked; 0 inference requests, $0.mise run docs-check: 513 sources, 3,360 repository links, strict build ok.mise run release-check: 44 passed, 0 failed, 1 opt-in skipped. That one, run separately withUNFOLD_RELEASE_HISTORY=true, passed.On merge
The commits here are
build,cianddocs, so they release nothing by themselves. Butdevelopmentalready holds unreleased Vloer changes since rc.35 (fix(vloer)×2 and Renovate'sfeat(deps)). The release job after this merge will therefore cutunfold-v0.4.0-rc.36: the first Vloer-only release, computed above from the real history. Its notes will also list theploeg-scoped commits that landed before the extraction; those ship in Ploegv0.1.0, not in rc.36. The site train may also release (fix(site)since its last tag).Production is not touched.
homelab-clusterstill runs the last Unfold-published Ploeg (rc.35 from Harbor), and adoptingghcr.io/ploeg-hqartifacts is a separate change.Rollback
Revert the merge commit. That restores the vendored tree at
9c1d53fand the joint publisher. A rerun of the old Go export would then fail on purpose oncegithub.com/webgrip/ploegis archived.Open-PR migration
development(#188); ploeg-hq PR, then Unfold doc follow-upReplacement links are recorded on webgrip/unfold#2 and ploeg-hq/ploeg#45 as they open. No original is closed before its replacement exists and has run its checks.
Not in this PR
mise.lockrecords uv 0.12.21 whilemise.tomlpins 0.12.22 since711a4814; mise rewrites the lock locally.🤖 Generated with Claude Code
05aa8f18c01bca2ac69b