From 1c6bd2471ae1827651bbb4ccbb36daa5b0011b55 Mon Sep 17 00:00:00 2001 From: Stefan Steiner Date: Thu, 28 May 2026 18:12:11 -0700 Subject: [PATCH] chore: skip auto-tagging in release-please; manual gh release create stays the gate MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Configures release-please to NOT create the GitHub Release / git tag when the "chore: release main" PR merges. release-please continues to open release PRs (CHANGELOG, version bumps, manifest updates) — only the auto-tagging step is disabled. The maintainer creates the tag manually via `gh release create`, which fires release.yml → crates.io publish. Why: crates.io and npm are immutable. Once cargo publish succeeds, the version exists forever; cargo yank only marks it "don't pick by default" without freeing the version slot. The manual tag step is the only maintainer-controlled checkpoint between merging the release PR and permanently publishing the version. We discovered this property inadvertently during the v0.3.0 release: release-please failed to auto-tag (upstream googleapis/release-please#1946), forcing a manual gh release create + label-edit recovery. The recovery worked cleanly and the human checkpoint turned out to be valuable — better to codify it than depend on an upstream bug staying broken. Schema verification: skip-github-release is documented at both the top-level and per-package level in https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json (found at $.properties.skip-github-release and at $.definitions.ReleaserConfigOptions.properties.skip-github-release). Setting both for defense-in-depth and to make intent explicit, matching the bump-minor-pre-major pattern from #79. Cost: every release becomes manual, including patch releases. The tag-creation procedure is documented in #83 (filed for follow-up docs work in GITHUB_OPERATIONS.md). Net: trades one-time-per-release manual work for permanent prevention of accidentally shipping an incorrect version to immutable registries. --- release-please-config.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/release-please-config.json b/release-please-config.json index 0812193..f69661e 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -3,12 +3,14 @@ "include-component-in-tag": false, "separate-pull-requests": false, "bump-minor-pre-major": true, + "skip-github-release": true, "packages": { ".": { "release-type": "simple", "component": "hyper-api-rust", "changelog-path": "CHANGELOG.md", "bump-minor-pre-major": true, + "skip-github-release": true, "extra-files": [ { "type": "toml", "path": "Cargo.toml", "jsonpath": "$.workspace.package.version" }, { "type": "generic", "path": "hyperdb-api-core/Cargo.toml" },