-
v0.1.38 Stable
released this
2026-07-16 07:44:43 +00:00 | 96 commits to main since this releaseAdded
spec.libBump— the release-tag autoland for library projects. A go-library-tag
project declaringlibBump: {module, downstreams}renders a<project>-libbumpSensor
on its release-tag CREATE event (new TagEvent filter-fields variant: tag events carry a
bare ref + ref_type and noafter) that submits pipeline-lib-bump — bumping every
downstream's go.mod on alib-bumpsbranch, waiting its CI, and merging to its trunk.
Golden caselibbumppins the rendered sensor byte-exactly.
Included changes (v0.1.37 -> v0.1.38)
40c3c2458968feat(libbump): spec.libBump renders the release-tag go.mod autoland sensor
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.1.37 Stable
released this
2026-07-15 18:19:50 +00:00 | 100 commits to main since this releaseChanged
- Bump
libseanfarm-operatorv0.4.9 -> v0.4.10; envtest suite bootstrap now rides
reconcile/testkit.StartEnvtest(shared bring-up + binary discovery), keeping the
repo-specific taxonomy/namespace seeding.
Included changes (v0.1.36 -> v0.1.37)
113888d4cb86chore(deps): bump libseanfarm-operator v0.4.9 -> v0.4.10 + suite onto reconcile/testkit
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Bump
-
v0.1.36 Stable
released this
2026-07-15 16:25:37 +00:00 | 104 commits to main since this releaseChanged
- Bump
libseanfarm-operatorv0.4.7 -> v0.4.9: picks up the six shared-harness fixes from
the R5 bug-hunt (dry-run delete no longer touches the remote, Degraded message truncation,
Progressing cleared on failure, dry-run clears stale Degraded/Progressing, empty
Ready=Falsereason defaults toNotReadyinstead of a silently-swallowed 422,
dry-run converge now runsMirrorStatus).
Included changes (v0.1.35 -> v0.1.36)
6c5058e2049ffix(deps): bump libseanfarm-operator v0.4.7 -> v0.4.9
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Bump
-
v0.1.35 Stable
released this
2026-07-15 14:54:52 +00:00 | 108 commits to main since this releaseFixed
- The zombie reaper no longer deletes a build that ever succeeded. A
PipelineBuildwhose rollup
phase is non-terminal (a later re-run isRunningand its workflow has since vanished) but which
already recorded aSucceeded/Releasableattempt was reaped past the grace — destroying the durable
Releasable=truerecord (the build's whole reason to persist). The reaper now spares any build with
Releasableor a succeeded attempt. - A
gitops-fluxproject withoutspec.deploy.fluxis now rejected rather than silently rendering
an inert CI/deploy sensor. A struct-level CEL validation requiresdeploy.fluxfor thegitops-flux
taxonomy. - A release in flight can no longer be flipped to
Succeeded/Skippedby a late taxonomy change.
Once the run workflow exists, the projector owns the release phase; the submitter now short-circuits
before re-evaluating the prepare workflow's outputs, so a mid-release change (skip outcome, legacy
re-read, orStagingArgserroring because the project stopped being operator-submittable) can't cause
premature green / phase flapping.
Included changes (v0.1.34 -> v0.1.35)
05607e1ef269fix(control-plane): reaper spares Releasable builds, gitops-flux requires deploy.flux, no premature-green mid-release (3 fixes)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- The zombie reaper no longer deletes a build that ever succeeded. A
-
v0.1.34 Stable
released this
2026-07-14 23:21:42 +00:00 | 112 commits to main since this releaseFixed
- Zombie reaper now reaps a release wedged in its prepare stage. The reaper checked only
Status.Workflow, which is empty during the release prepare stage (onlyStatus.PrepareWorkflow
is set then;Status.RunWorkflowis the run stage).workflowGone("")is false, so a release whose
prepare workflow vanished — TTL-GC, cancel-stale supersession, or a delete missed while the operator
was down — was never reaped and wedgedPendingforever (a perpetual dashboard row, a stuck ship
intent). The reaper now evaluates all three refs viareleaseWorkflowsGoneand reaps only when at
least one ref exists and every non-empty ref is gone — so a run-stage release whose prepare workflow
was normally GC'd but whose run workflow is still live is spared. - Status anti-downgrade no longer bypassed by a start-less event.
projectSingle's guard only
fired when both the stored and incomingStartedAtwere non-nil, so a stalePendingre-delivery
(which has no start time) overwrote aSucceededrun and nil'd the stored start — permanently
disabling the guard and flapping the status. A nil incomingStartedAtnow counts as the oldest
possible activity and can never downgrade a run that already started. - Pin resolver no longer latches a blank commit SHA on a transient Forgejo miss.
TagSHAreturns
""on any transient failure (network, non-200, restart); the resolver minted aPipelineDeploywith
a blankSpec.SHA, and the idempotent(artifact, version)guard then skipped every later sweep —
latching the blank traceability sha forever. A blank sha now defers minting to a later sweep, which
resolves the real sha once Forgejo recovers.
Included changes (v0.1.33 -> v0.1.34)
c49b95dca9b0fix(projector): reap prepare-stage zombies, close anti-downgrade nil-gap, defer blank-sha pins
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Zombie reaper now reaps a release wedged in its prepare stage. The reaper checked only
-
v0.1.33 Stable
released this
2026-07-14 16:16:12 +00:00 | 116 commits to main since this releaseChanged
- Incremental release.
Included changes (v0.1.32 -> v0.1.33)
c403daa9bd27fix(pipelineproject): sweep ForgejoTagProtection on delete (was leaking)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.1.32 Stable
released this
2026-07-13 12:05:36 +00:00 | 120 commits to main since this releaseRemoved
- Dead CRD fields (audit Wave 2), all confirmed never-read:
SigningSpec.Method,
DeploySpec.Engine,BranchProtectionSpec.Main/.Trunk(PipelineProject) and
PipelineBuildSpec.Trigger/.DeclaredBy(PipelineBuild). The real drivers are the
taxonomy (Keyset/DeployProfile) and unconditional branch-protection rendering.
Also stopped the declare-build sensor writing the now-removedtrigger/declaredBy.
Regenerated deepcopy + CRD manifests + golden; parity/golden unchanged (proves the
fields never reached rendered output). Requires the CR-side strip in sean/pipelines
to ship FIRST (this drops the fields from the CRD schema).
Included changes (v0.1.31 -> v0.1.32)
360dac52a244chore(operator): remove dead CRD fields (audit Wave 2)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Dead CRD fields (audit Wave 2), all confirmed never-read:
-
v0.1.31 Stable
released this
2026-07-13 11:22:14 +00:00 | 124 commits to main since this releaseRemoved
- Dead code (audit Wave 1):
sortedChildKinds()(unexported, zero callers) and the
unusedisIBMiparity-test helper.
Included changes (v0.1.30 -> v0.1.31)
d89e02ed113dchore(operator): remove dead code (sortedChildKinds, isIBMi test helper)
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- Dead code (audit Wave 1):
-
v0.1.30 Stable
released this
2026-07-13 07:39:06 +00:00 | 128 commits to main since this releaseChanged
- Incremental release.
Included changes (v0.1.29 -> v0.1.30)
36ffd700a4b2fix(provision): run provision.sh on pipeline-tools (AlmaLinux), not alpine/k8s
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
v0.1.29 Stable
released this
2026-07-12 11:09:56 +00:00 | 133 commits to main since this releaseChanged
- Incremental release.
Included changes (v0.1.28 -> v0.1.29)
2af4765a9aafrefactor(release): excise 'cadence' misnomer from the release engine
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads