Releasing

This page describes the steps for publishing a new Home Assistant release. Those steps requires that you don’t use forks but work with the repositories themself. The hass-release script is a helper to do a release.

Release preparation (3 days before release)

GitHub

Merge master into dev to make the PR mergeable.

Cut a release branch from dev. Example name release-0-57.

Create a pull request from the release branch to master with the upcoming release number as the title.

Update homeassistant/const.py with the correct version number (remove the dev tag) and push that commit to release branch.

Website

Merge current into next

Cut release branch of next. For example release-0-57.

Open a PR from release branch to current with the upcoming release number as the title.

Release day

From creating the release branch till it has been merged, we tag bugfixes with the milestone for the release (create if doesn’t exist).

GitHub

Cherry-pick the milestoned PRs that need to get into the release python3 -m hassrelease milestone_cherry_pick 0.57

Run python3 -m hassrelease release_notes 0.56 for the release notes.

Once the release notes has been generated, issue python3 -m hassrelease milestone_close 0.56

Merge pull request (DO NOT SQUASH!). Use Merge pull request.

Go to releases, click Draft a new release and tag a new release on the master branch. “Tag version” and “Release title” are the version number (O.x for major version, 0.x.y for minor and bug fix releases). Release description is the text from PR. Press “Publish release” to finish the process.

Merge master into dev.

Update homeassistant/const.py with the upcoming version number (including the dev tag) and push that commit to the dev branch.

Website

Create a blog post in the release branch and base it on the text of the PR in the main repository. Add images, additional text, links, etc. if it adds value. Tag each platform/component in a message to documentation.

Create missing documentation as stubs.

Run credits_generator.

Update _config.yml with a link to the new release blog post and version number (at the bottom of the file).

Bugfix Release

Update homeassistant/const.py with the correct version number (increment PATCH_VERSION) and push that commit to release branch.

Create a pull request from the release branch to master with the upcoming release number as the title.

Merge pull request (DO NOT SQUASH!). Use Merge pull request.

Go to releases, click Draft a new release and tag a new release on the master branch. “Tag version” and “Release title” are the version number (O.x for major version, 0.x.y for minor and bug fix releases). Release description is the text from PR. Press “Publish release” to finish the process.