chore(main): release gitops-reverser 0.31.0 - #206
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Closing as spurious. This PR was generated by release-please during the ~20-minute window while the v0.30.0 GitHub release was still a draft ( main is already at the v0.30.0 release commit (46e0494) with 0 commits since — there is nothing new to release. After re-running the Release Please job now that v0.30.0 is published, release-please correctly reports: Follow-up (separate change): drop |
release-please builds the next release PR in the same invocation that cuts the draft release for the just-merged one, before publish-release flips that draft to published. A draft release is invisible to release-please's "latest release" lookup, so the next PR is computed against the full history and proposes a bogus "release everything" version (it cannot see the release just cut) — e.g. #206 proposed 0.31.0 with a 168-line changelog re-listing work shipped releases ago. Add a close-stale-release-pr job after publish-release: once the release is published, if main has no commits past its tag, close the open 'autorelease: pending' / 'release-please--' PR. release-please opens a fresh, correct one on the next push with releasable commits. Deterministic cleanup; leaves the draft/asset-attachment flow (required for immutable releases) untouched. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Fix the spurious "release everything" PR at its root instead of janitoring it. release-please cut the draft release AND built the next PR in one invocation; the draft is invisible to its own "latest release" lookup, so the PR was computed against full history (e.g. #206 -> 0.31.0, 168-line changelog). Split the action into two invocations: - release-please job: skip-github-pull-request=true — cut the (draft) release only, never open a PR, so no spurious PR is ever created. - release-please-pr job: skip-github-release=true — open/refresh the next release PR *after* publish-release makes the release visible, so it anchors to the published release. The PR job runs whenever CI + release-please succeeded and either no release was created (publish-release skipped) or publish-release succeeded, so a failed publish (release still a draft) never opens a PR against the draft. Keeps immutable-releases + the draft/asset-attach flow untouched; replaces the close-stale-release-pr janitor added in the previous commit. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Fix the spurious "release everything" PR at its root instead of janitoring it. release-please cut the draft release AND built the next PR in one invocation; the draft is invisible to its own "latest release" lookup, so the PR was computed against full history (e.g. #206 -> 0.31.0, 168-line changelog). Split the action into two invocations: - release-please job: skip-github-pull-request=true — cut the (draft) release only, never open a PR, so no spurious PR is ever created. - release-please-pr job: skip-github-release=true — open/refresh the next release PR *after* publish-release makes the release visible, so it anchors to the published release. The PR job runs whenever CI + release-please succeeded and either no release was created (publish-release skipped) or publish-release succeeded, so a failed publish (release still a draft) never opens a PR against the draft. Keeps immutable-releases + the draft/asset-attach flow untouched; replaces the close-stale-release-pr janitor added in the previous commit. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…pplication, KRO) as first-class documents (#203) * feat(gitops-api): F7 — pin higher-level KRM objects as first-class documents Flux HelmRelease, Argo CD Application, and KRO resources already mirror and edit through the kind-agnostic pipeline exactly like core resources (no per-kind allowlist; only a small deny list of noisy built-ins). F7 makes that guarantee load-bearing rather than assumed. No product code changes. - manifestedit corpus: helmrelease.yaml, argocd-application.yaml, kro-podinfoapp.yaml flow through the existing globbed round-trip (byte-identical) and convergence (perturb-then-settle) gates. - e2e (manager,f7-higher-level-krm): a Flux HelmRelease is mirrored to its canonical path and a live chart-version bump round-trips in place, preserving a hand-authored comment. Uses the Flux CRDs already in the base e2e cluster; spec.suspend keeps the helm-controller inert. - docs: f7 design doc + user guide installing-apps-as-krm.md (install an app = add a KRM document; the chart-inflation boundary stays refused); README ladder marks F7 implemented. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(gitops-api): stress capturing intent, not rendered output The install-apps guide explained that the operator won't *render* charts, but not the bigger configuration discipline: users must deliberately scope capture to authored intent (HelmRelease/Application/KRO documents) and keep the objects those controllers render (Deployments, Services, ConfigMaps, ReplicaSets, Pods) out of Git. Add a "capture intent, not the rendered output" section that explains why mirroring rendered output breaks round-trippability (controller-owned objects have no single writable destination), that the operator cannot tell an authored Deployment from a rendered one (only a few purely-runtime kinds are excluded by default), and how to draw the line: select intent kinds not workload kinds, separate intent from runtime by namespace, and mind overlaps. Frame it as the same principle as the chart-inflation boundary, applied at runtime. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * ci(release): auto-close the stale release-please PR after publish release-please builds the next release PR in the same invocation that cuts the draft release for the just-merged one, before publish-release flips that draft to published. A draft release is invisible to release-please's "latest release" lookup, so the next PR is computed against the full history and proposes a bogus "release everything" version (it cannot see the release just cut) — e.g. #206 proposed 0.31.0 with a 168-line changelog re-listing work shipped releases ago. Add a close-stale-release-pr job after publish-release: once the release is published, if main has no commits past its tag, close the open 'autorelease: pending' / 'release-please--' PR. release-please opens a fresh, correct one on the next push with releasable commits. Deterministic cleanup; leaves the draft/asset-attachment flow (required for immutable releases) untouched. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * ci(release): split release-please into release + PR passes Fix the spurious "release everything" PR at its root instead of janitoring it. release-please cut the draft release AND built the next PR in one invocation; the draft is invisible to its own "latest release" lookup, so the PR was computed against full history (e.g. #206 -> 0.31.0, 168-line changelog). Split the action into two invocations: - release-please job: skip-github-pull-request=true — cut the (draft) release only, never open a PR, so no spurious PR is ever created. - release-please-pr job: skip-github-release=true — open/refresh the next release PR *after* publish-release makes the release visible, so it anchors to the published release. The PR job runs whenever CI + release-please succeeded and either no release was created (publish-release skipped) or publish-release succeeded, so a failed publish (release still a draft) never opens a PR against the draft. Keeps immutable-releases + the draft/asset-attach flow untouched; replaces the close-stale-release-pr janitor added in the previous commit. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * docs(ci): document the two-pass release-please split Reflect the release.yml change in the release docs: release-please now runs as two passes — cut the (draft) release with skip-github-pull-request, then open/refresh the next PR with skip-github-release after publish makes the release visible. Explains why (a draft is invisible to release-please's latest-release lookup, so a single-pass run proposed a full-history "release everything" PR). - docs/ci-overview.md: third "worth calling out" property covering the split. - .github/RELEASES.md: two-pass flow in "What Happens When You Push", draft → publish note, diagram note. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
🤖 I have created a release beep boop
0.31.0 (2026-07-07)
⚠ BREAKING CHANGES
Features
Bug Fixes
Performance Improvements
Documentation
This PR was generated with Release Please. See documentation.