Repository navigation
Conversation
Add reusable workflows wrapping the release-please CLI (release PR, draft release, asset build, publish, experimental prerelease), a script that lints the version annotations release-please silently skips, and a prototype config whose only version file is the README badge. knope and its workflows are unchanged. Stacked on the removal of self-pins: no workflow here pins this repository by tag, so the config lists no workflow file and needs no `workflows` token, and the lint is a script rather than a composite action. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K3mkz6m3aZBokQhgvfjnSv
BatmanAoD
force-pushed
the
prototype-release-please
branch
from
November 12, 2026 18:45
eb7558b to
c2738e2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #25 (base branch
remove-self-pins).Merge #25 first; this PR must merge after it.
Prototype of
release-pleaseas reusable components, for projects with non-Rust parts or version files thatrelease-plzcannot handle.Draft, alongside the knope workflows: no knope workflow or
knope.tomlchanged.Design notes and assumptions:
agent-choices.md(now covers both #25 and this PR; delete before merging).Changed by the rebase onto #25
x-release-please-start-version/x-release-please-endblocks around workflow self-pins; refactor!: remove self-pins and the composite actions #25 removed the pins..github/release-please/config.jsonlists onlyREADME.md(the badge) as an extra-file; the.github/workflows/*.ymlglob is gone.workflowspermission.The caveat remains for consumers whose version files are workflow files.
actions/release-please-lint: refactor!: remove self-pins and the composite actions #25's guard forbids step-level local actions, and the repository ships no composite actions.scripts/lint-release-pinsstays.scripts/test-release-please-bumplints the bumped badge against the new version (which fails if the badge loses its annotation).scripts/test-release-please-bumpchecks the badge instead of a workflow pin.agent-choices.mdfrom both PRs merged into one file.What is here
release-please-pr.yml: dispatch on the default branch, open or update the release PR.release-please-draft.yml: after merging that PR, create the release as a draft (no tag yet; GitHub creates it on publish).Idempotent: published, draft, and tag-without-release are all handled.
release-assets-build.yml: optional generic build matrix.Any job that uploads
release-*artifacts works,rust-cli-build.ymlincluded.release-please-publish.yml: attach assets to the draft, check they are all there, then publish.No
make_latestis sent.release-please-prerelease.yml: experimental tag-only prerelease with a local bump commit.scripts/lint-release-pins: fails on an unannotated pin, a pin outside the config's extra-files, a pin that disagrees with the manifest, or a malformed marker.For callers whose own files pin a repository by tag.
.github/release-please/{config,manifest}.json:release-type: simple, with the README badge as the onlygenericextra-file.The badge's marker sits after the
), outside knope's regex.docs/release-please.md: when to choose which tool, annotation syntax, updater types, release types, commit mapping, token caveats, how to try it.Design choices that matter
release-please@17.11.2), notrelease-please-action: separaterelease-prandgithub-releasecommands and--draft.GITHUB_TOKENdefault withsecrets.token || github.tokeninside each called workflow, callers grant the permissions, third-party actions SHA-pinned.GITHUB_TOKEN limit
release-please writes the release PR through the API, and
GITHUB_TOKENcannot create or update files under.github/workflows/.After #25 this repository's config lists no workflow file, so
GITHUB_TOKENsuffices here.A consumer that lists workflow files needs a token with the
workflowspermission (the optionaltokensecret).About 85% confident, from GitHub's documentation; not tried.
Verified (locally, after the rebase)
yqparse of every workflow;shellcheckclean on the scripts and on every extractedrun:block.scripts/check-inlined-steps, pass.scripts/test-lint-release-pins: all fixtures pass (also under/bin/bash3.2).scripts/test-release-please-bump: release-please 17.11.2's own updater over this repository's real files rewrote the badge, kept thevprefix, and changed nothing else.Not verified
actionlintis not installed locally; CI installs it.release-prandgithub-releaseend to end,--draft, the label flow.GITHUB_TOKENworkflow-file limit and the prerelease flow.Try it on a throwaway repository
Last section of
docs/release-please.md.In short: new private repo, enable Allow GitHub Actions to create and approve pull requests, add a config and manifest, add the caller workflow referencing these workflows at
@prototype-release-please, push afeat:commit, dispatchopen-pr, merge, dispatchrelease.Manual steps for humans
agent-choices.md(default "Latest" behavior, vendoring release-please's dependencies, keeping the prerelease flow).🤖 Generated with Claude Code
https://claude.ai/code/session_01K3mkz6m3aZBokQhgvfjnSv