-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Release Management
This page documents the process for creating a DASH.js release. dash.js creates two kinds of releases:
- Release Candidate (RC) is an interim release that has been tested by the developers but not yet approved by the DASH-IF Interoperability Working Group. These releases are intended for development use. There will typically be a number of Release Candidates between each approved DASH-IF release. The latest release candidate is always available on our demo site
- Reference Implementation Release (Release) is a release that has been validated by the DASH-IF Interoperability Working Group. These releases are considered to be official reference implementations of the DASH-AVC/264 Interoperability Specifications.
This page documents how this approval is sought and, once provided, how a formal release of the DASH.js code is made.
This section describes the process for creating a release candidate. A release candidate is a release that has not been validated by the Interoperability Working Group. It is intended for developers and for demonstration of future releases from the DASH-IF. There will be a number of Release Candidates for each DASH-IF release where each release candidate adds important features and stability improvements as the community works towards an official DASH-IF release of the reference player.
-
Development:
- Agree the features that will be in the upcoming release.
- Record in the issue tracker under the appropriate milestone.
- Create a feature branch for each major feature.
- Minor changes can be made in hotfix branches.
- Request review of feature branches to be included:
- Record issues in the issue tracker.
- Reviews must include a License Audit and Legal Audit - including headers, dependencies, LICENCE and NOTICE files.
- After successful review, merge the feature branch into the "development" branch.
- The review period lasts for a minimum of 72 hours (allow for weekends and other breaks).
- When all feature branches have been merged into the development branch and no blocking issues in the issue tracker are remaining, the release process can start.
-
Prepare for release:
- Bump the version number in the "development" branch.
- Conduct a license Audit and Legal Audit - including headers, dependencies, LICENCE and NOTICE files.
- Documentation – Check installation and build documentation for accuracy, create status document, create release notes.
- Call for developers to test the development branch. NOTE: From this moment until development branch is merged into master, only bug fixes are allowed in the development branch.
- Call a vote for the release.
-
Create release candidate:
- Merge the development branch into master.
- Tag master.
- Build the release packages .
- Write the release announcement.
-
Release candidate publication:
- Upload release files to the demo site.
- Update the website:
- News item
- Demo updates
- Announce the release.
- If this release is to be considered by the Interoperability Working Group, start the Release Process defined below.
This section describes the process of moving a Release Candidate to full reference client status. That is it describes the process by which the DASH-IF Interoperability Working Group approve a release candidate for formal release. A formal release is an official reference implementation of the DASH-AVC/264 interoperability specifications.
- Invite the Interoperability Working Group (IWG) to review the latest Release Candidate.
- IWG test and review the release candidate:
- Issues are reported to the dash.js development team.
- Issues raised are recorded by the dev team in the issue tracker and given appropriate severity flags.
- Reviews must include a License Audit and Legal Audit - including headers, dependencies, LICENCE and NOTICE files.
- The review period lasts for a minimum of 120 hours with at least 240 hours being preferred (allow for weekends and other breaks, e.g. 5 working days minimum, 10 working days optimum.)
- If any blocking issues were recorded, the Reference Client release is aborted and a new Release Candidate process is started. If no blocking issues were recorded the Reference Client is released as follows:
- Prepare for release:
- Bump the version number in the development branch
- Documentation – Check installation and build documentation for accuracy, create status document, create release notes
- Create Reference Client release package:
- Merge the development branch into master
- Tag master
- Build the release packages
- Write the release announcement
- Prepare for release:
- Reference Client publication:
- Upload release files to the demo site.
- Upload the files to the official release site.
- Update the dash.js website.
- News item.
- Demo updates.
- Announce the release.