Skip to content

chore: add release-please versioning and bump to 1.0.0 - #3

Merged
oroth8 merged 2 commits into
mainfrom
chore/release-versioning-1.0.0
May 27, 2026
Merged

chore: add release-please versioning and bump to 1.0.0#3
oroth8 merged 2 commits into
mainfrom
chore/release-versioning-1.0.0

Conversation

@oroth8

@oroth8 oroth8 commented May 27, 2026

Copy link
Copy Markdown
Collaborator

What & why

The repo had no formal release process: every component sat at 0.1.0, with no git tags, no GitHub releases, no CHANGELOG, and no LICENSE file (despite pyproject.toml declaring MIT), and the version was duplicated across four files with nothing keeping them in sync. This PR puts the repo on a real release footing and prepares the first v1.0.0 release.

Approach

  • Tooling: release-please (manifest mode) — GitHub-native, human-in-the-loop "release PR" model with an auto-generated changelog.
  • Versioning model: a single unified version across the MCP server, web app, and plugin; one tag, one root CHANGELOG.md.
  • release-type: simple, so the version of record lives in .release-please-manifest.json and every file is bumped explicitly via extra-files (a json updater for plugin.json; the generic updater keyed on # x-release-please-version comments for pyproject.toml and the two __init__.py files). This is used instead of release-type: python because those files live under server/src/…, not the repo root.

Changes

File Change
release-please-config.json, .release-please-manifest.json new — release-please config + version manifest (1.0.0)
.github/workflows/release-please.yml new — opens/updates the release PR and cuts the tag/release on merge
LICENSE new — MIT (LaunchPadLab), matching pyproject.toml
CHANGELOG.md new — Keep a Changelog, seeded with the 1.0.0 entry
server/pyproject.toml, server/src/aibank_mcp/__init__.py, server/src/aibank_web/__init__.py, plugins/ai-bank/.claude-plugin/plugin.json 0.1.01.0.0 (+ release-please annotations)
README.md new "Versioning & Releases" section

How releases work after this merges

Merges to main build up a standing release PR; merging it tags vX.Y.Z, cuts a GitHub Release, and the existing mcp-server-image.yml (already triggered on v*) publishes ghcr.io/launchpadlab/aibank-mcp:X.Y.Z. Version bumps/changelog are derived from Conventional Commit subjects (feat:/fix:/feat!:) — recommended, not CI-enforced.

Post-merge steps (maintainer)

  1. Bootstrap v1.0.0 (one-time, since the first changelog is hand-written): after merge, create the tag + release so the image builds —
    gh release create v1.0.0 --title "v1.0.0" --notes-file <(sed -n '/## \[1.0.0\]/,/## \[/p' CHANGELOG.md | sed '$d')
  2. Optional but recommended: add a RELEASE_PLEASE_TOKEN repo secret (fine-grained PAT or GitHub App token, Contents + Pull requests RW) so the tag release-please pushes on future releases triggers the Docker publish workflow. Without it, releases still work but that image must be built from the tag manually. (The manual v1.0.0 bootstrap above is unaffected.)

Verification done

  • claude plugin validate . --strict and claude plugin validate ./plugins/ai-bank --strict → both pass.
  • pyproject.toml parses (tomllib); both Python packages import at 1.0.0; all four version locations + the manifest read 1.0.0.
  • The server lint/test workflow (ruff + pytest) runs automatically on this PR.

🤖 Generated with Claude Code

oroth8 and others added 2 commits May 27, 2026 11:53
Establish a formal, automated release process for the repo:

- release-please (manifest mode) maintains a release PR that bumps the
  unified version across server/pyproject.toml, both aibank_*/__init__.py,
  and plugins/ai-bank/.claude-plugin/plugin.json, and regenerates the
  changelog. Config in release-please-config.json + .release-please-manifest.json.
- Add .github/workflows/release-please.yml. It uses RELEASE_PLEASE_TOKEN when
  present so the v* tag it pushes triggers the existing Docker publish workflow
  (mcp-server-image.yml), falling back to GITHUB_TOKEN otherwise.
- Seed CHANGELOG.md (Keep a Changelog) with the 1.0.0 entry and add the MIT
  LICENSE file already declared in pyproject.toml.
- Bump all version locations 0.1.0 -> 1.0.0 and document the release flow and
  the Conventional Commit convention in the README.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@oroth8
oroth8 merged commit 4756f95 into main May 27, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant