diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 2999759..356b03e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,7 +2,7 @@ name: Release on: push: - branches: [master] + branches: [master, next] permissions: contents: read diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 40f260c..077085c 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -4,7 +4,7 @@ on: push: branches: [ master ] pull_request: - branches: [ master ] + branches: [ master, next ] jobs: build: diff --git a/.releaserc.json b/.releaserc.json index c090b4c..b340b30 100644 --- a/.releaserc.json +++ b/.releaserc.json @@ -1,5 +1,6 @@ { "tagFormat": "${version}", + "branches": ["master", { "name": "next", "prerelease": "rc" }], "plugins": [ ["@semantic-release/commit-analyzer", { "preset": "conventionalcommits" }], ["@semantic-release/release-notes-generator", { "preset": "conventionalcommits" }], diff --git a/README.md b/README.md index d37c005..c4dada5 100644 --- a/README.md +++ b/README.md @@ -199,6 +199,22 @@ publishes the GitHub release with the generated notes. The package version comes If publishing fails, the tag and a draft release already exist: re-run the failed jobs of that run (not the whole run) before anything else is merged. +### Release candidates + +Every push to `next` releases a pre-release of the next version, tagged `X.Y.Z-rc.N` +(`6.0.0-rc.1` once a breaking change is in). +It goes to PyPI as a pre-release, `X.Y.ZrcN` (setuptools-scm normalizes the tag to PEP 440), so +`pip install visual-regression-tracker` keeps installing the last stable release and +`pip install --pre visual-regression-tracker` installs the candidate. +Its GitHub release is marked as a pre-release. + +Breaking changes go into `next` through pull requests that target it. Merge `master` into `next` when +`master` gets new commits. + +To release the final version, merge `next` into `master` with a merge commit, not a squash, so that +semantic-release still sees the breaking commits. That push releases it. The repository deletes merged +branches, so create `next` again from `master` before the next round of candidates. + ## Links - [Visual Regression Tracker](https://github.com/Visual-Regression-Tracker/Visual-Regression-Tracker): the server and how to run it