releasing · git:20261014.bb251f8 · 2026-10-14 · sha256 06873057070c1a22
releasing git:20261014.bb251f8A
Immutable. This exact content never changes and is served at /api/v1/blob/06873057070c1a22.
--- name: releasing description: How an Explainer Studio release is decided, prepared in a release pull request, published by CI, and carried to the Heptabase plugin. Use when deciding whether to release, releasing a version, or checking a release afterwards. --- # Releasing A release is the tag `v<version>` on `main` and its GitHub Release. Every user's `explainer-studio upgrade` installs the latest release before their next series or episode, without asking them, so a release reaches everyone within a day. The marketplaces in this repository install the plugin from the release tag. ## When Releases are batched. Merged changes run as dev builds first; a release goes out when there is an improvement worth telling users about and the videos made meanwhile show no regression. A fix for a tool error that stops videos from being made goes out at once. The version raises the patch number for fixes and the minor number when how videos are made changes. ## The release pull request 1. From the latest `main`, on a branch `release-X.Y.Z`: `uv run python scripts/release.py --version X.Y.Z`. It sets the version in `pyproject.toml`, the plugin manifests and both marketplaces, and moves the items under `## [Unreleased]` in `CHANGELOG.md` (and the steps under `## Unreleased` in `UPGRADING.md`, if any) under the new version's heading. It also updates `uv.lock`, which records the version. 2. Edit the new CHANGELOG section for users: most important first in each category, one entry per change a user or agent would notice, merged where several pull requests made one change. Check that every UPGRADING step says how to tell whether a series needs it. 3. Run the commands in `AGENTS.md`, commit `chore: release X.Y.Z`, and open the pull request with that title and the CHANGELOG section as its description. The `check-pull-request-conventions` workflow fails a pull request that changes the version without that title, or to a version that is not higher than the latest release, or without its CHANGELOG section. 4. A maintainer squash-merges it. The `publish-release` workflow then tags the merged commit `vX.Y.Z` and publishes the GitHub Release with the CHANGELOG section as its notes. Merge nothing else before the tag exists: until then the marketplaces on `main` point at a missing tag. ## After the release - `gh release view vX.Y.Z` shows the release, and `explainer-studio upgrade` on a release install upgrades to it (after `uv run python scripts/use_release.py` if this computer runs a dev build). - If the skill changed since the previous release (`git diff --stat vPREVIOUS vX.Y.Z -- plugin/skills/explainer-studio`), copy the skill folder into the Heptabase plugin (`heptameta/heptabase-agent-plugins`) in a pull request there that raises that plugin's version; Codex needs that plugin's new ZIP uploaded too. The guide is not copied: it ships with the command.