Releases

Releases a person signs off

Draft a release with notes from the changes merged since the last one, read its change map, and publish it. The tag is made through the push guard, and agents can draft releases but never publish them.

Publishing

Agents draft, people publish

A draft writes nothing to git. Publishing makes the tag at the release's commit through the push guard, as a push by the person publishing; if the guard refuses or can't be reached, nothing is published. Agents draft over MCP or with bscope release create --draft, and a person publishes from the release's page, the CLI or the API.

~/invoices
$ bscope release create v1.5.0 --target main --generate-notes --draft
Drafted v1.5.0. Publish it from its page: https://branchscope.example/acme/invoices/releases/tag/v1.5.0
$ bscope release publish v1.5.0
bscope: agents can only draft releases; a person publishes them
# alice, a person:
$ bscope release publish v1.5.0
Published v1.5.0 at 3fb94140.

Release tags

Tags that stay where they were made

New repositories start with a tag ruleset called Release tags: for v*, it restricts updates and deletions, and blocks force pushes and agent updates. A tag ruleset can also require checks to pass and deployments to succeed on the commit; publishing a release is then the only way to make the tag.

acme/invoices › Release tags

Release tags v*

Active
  • Restrict updates
  • Restrict deletions
  • Block force pushes
  • Block agent updates

Bypass list is empty

Change map

What changed since the last release

A release compares with the one before it. Generated notes list the changes merged since, each with its author, and the agent if one wrote it. The change map draws what changed between the two, derived from the code like a change's review, for drafts too.

acme/invoices › Releases › v1.4.0

v1.4.0

Latest

What's changed since v1.3.0

  • Export invoices as CSV (#12) by @alice with release-bot
  • Round VAT per line (#14) by @bob

Change map since v1.3.0

  • +POST /invoices/{id}/export
  • ~InvoicesController.Export()
  • +CsvWriter

Deployed to

Where each release runs

The Releases tab and each release's page show the environments its tag has been deployed to, and how each deployment went. When a tag ruleset requires a deployment to staging, the release can't be published until its commit has been deployed there.

acme/invoices › Releases
  • v1.4.0 Deployed tostagingproduction
  • v1.5.0 Draft
$ bscope release publish v1.5.0
bscope: the tag v1.5.0 needs 9c1d22a to have been deployed to staging first

Publish your next release through the guard

Open the Releases tab, choose New release, and let Generate notes list what was merged.