Release Tsar
Version 1 - 2018-12-06
Role definition
The Release Tsar is a volunteer position, much like WG chairs, that is staffed by contributors from member companies. The responsibility of a Release Tsar is to coordinate the common tasks of each release that span across working groups, ensuring that the required release tasks are being performed on schedule and escalating any potential problems to the TSC and relevant working groups as early as possible.
The Release Tsar will provide a brief update in the TSC weekly calls, detailing the time remaining until the freeze or release, the progress made on Github issues targeting that release, and any potential release blockers or features that will not make the freeze date that they may be aware of.
While participation in WG meetings is not required, the Release Tsar should attend any of those where there is a concern about the number of open issues, potential release blockers, or major features still waiting to land as a freeze date approaches.
If a major feature is not ready before the feature freeze date but is ready soon after, and if that feature would ideally be included in the release, the developers can ask the Release Tsar for a freeze exception. The Release Tsar will present the case for this exception (both the benefit of the feature and the potential impact on the rest of the release) to the TSC, who will decide to allow it or bump the feature to a future release.
Selection process
The Release Tsar role will be shared by EdgeX Foundry member companies on a rotating basis. Each release will have its own Release Tsar who will be selected from the member company whose turn it is in the rotation. Any company who can contribute to this role should contact the TSC to request being added to the rotation.
The current list of companies volunteering to staff the Release Tsar role are:
IOTech
Intel
Dell
VMWare
Timeline of responsibilities
The Release Tsar role has an 8 month term. This allows them to cover the full 6 months of the regular release cycle, as well as one month before the cycle starts to prepare for it and one month after to help the next Release Tsar get started.
Because the dates of each release will vary, the times here are given as time before (-) or after (+) a given release.
Date | Task |
T - 7 months | New Release Tsar is selected and introduces themselves to the project. |
T - 6.5 months | Request version bump on all EdgeX Foundry projects, verify that they have been merged. |
T - 6 months | TSC Face to Face meeting |
T - 6 months | Collect list of features & issues from each working group that they plan on completing for the release (should be available after the TSC face to face meeting) |
T - 6 months | Create new “Release Schedule” wiki page, fill in dates for freezes, branching and final release (should be known after the TC face to face) |
T - 5 months | Request new Github milestone for the release, assign targeted issues to it |
T - 5 weeks | Send email reminder about upcoming feature freeze on the master branch |
T - 4 weeks | Send email announcing master branch feature freeze, request freeze exceptions for any late-landing features |
T - 3 weeks | Send email reminder about upcoming code freeze on the master branch |
T - 2 weeks | Send email announcing master branch code freeze, request that the Linux Foundation release engineer create a release branch from master |
T - 1 week | Send email announcing the release branch availability, lift the freeze on the master branch |
T - 1 week | Verify that developers/devops have configured CI to build staging artifacts (docker images, snaps) from the new release branch. |
T - 3 days | Generate Release Notes document (using release metrics script and providing highlights from the release) and publish it to the wiki. |
T - 2 days | Provide release information to marketing and LF PR for release announcement |
T - 1 day | Coordinate with WG chairs to identify which staging artifacts will be the official release, email the LF Release Engineer requesting that the release be made by providing them the Jenkins job for the desired artifact. |
T = 0 | Verify that stable release images have been published to Docker Hub |
T = 0 | Verify that stable snap package has been published to the Snap store |
T = 0 | Verify that the release announcement has gone out with link to Release Notes |
T + 1 week | Send email announcing x.1 target release date and targeted features/bug fixes |
T + 2 weeks | Send email reminder about upcoming point release freeze |
T + 3 weeks | Send email announcing release branch code freeze |
T + 4 weeks | Verify that stable release artifacts (docker images, snaps) of the point release have been published |