Edit this page on Github

Release Management

Release schedule

There is currently no fixed release schedule. A release is made when there are (important) enough new improvements or bug fixes to justify one, or when we get special requests from users.

There are three kinds of releases:

In general, smaller releases like bugfix releases can only be installed with the updater tool. Upon special request they can also be made available via download. Major releases with significant changes to the runtime can not be installed with the updater, for technical reasons.

Versioning rules

Different versioning rules apply for different parts of the Pipeline. (For an overview of the various components see the page about source code.)

When updating version numbers, care must be taken to keep versions numbers in project declarations and dependency declaractions aligned. If both are snapshots, they must match. The super-build will error if this is not the case. In addition, if a release has been made of a certain component, or if significant changes have been made to it since the last release, all dependent components should ideally be updated as soon as possible to compile and test against the latest version. This allows you to see the consequences of a change immediately so that bugs are spotted sooner, and by running the test suite you can ensure that all the latest components are compatible. It can be enforced with the command make check-versions in the super-project.

Release procedure

The assumption is made that at the time a release is made, a number of things have already been done beforehand, during development:

To initiate a release, run the following command in the super-project:

make release

This will generate instructions for releasing the assembly and all its components. The instructions are mostly just shell commands that can be executed without much thinking.

The release script covers the following:

The things the script does not cover are listed in the following checklist:

Ideally the release notes should already be made prior to making the release, and milestones should have been set, however because life is not perfect, it is best to search the Github issues (use the link at https://github.com/daisy/pipeline#issues) for mistakes or things that were forgotten:

Finalize the release notes by adding a link to the pipeline-mod-braille release notes as well as a list of links to closed issues (skip the empty ones):

### Details
- [Closed issues in pipeline-tasks](https://github.com/issues?q=repo%3Adaisy%2Fpipeline-tasks+milestone%3Av1.10.0)
- [Closed issues in pipeline](https://github.com/issues?q=repo%3Adaisy%2Fpipeline+milestone%3Av1.10.0)
- [Closed issues in pipeline-assembly](https://github.com/issues?q=repo%3Adaisy%2Fpipeline-assembly+milestone%3Av1.10.0)
- [Closed issues in pipeline-cli-go](https://github.com/issues?q=repo%3Adaisy%2Fpipeline-cli-go+milestone%3Av1.10.0)
- [Closed issues in pipeline-framework](https://github.com/issues?q=repo%3Adaisy%2Fpipeline-framework+milestone%3Av1.10.0)
- [Closed issues in pipeline-gui](https://github.com/issues?q=repo%3Adaisy%2Fpipeline-gui+milestone%3Av1.10.0)
- [Closed issues in pipeline-mod-audio](https://github.com/issues?q=repo%3Adaisy%2Fpipeline-mod-audio+milestone%3Av1.10.0)
- [Closed issues in pipeline-mod-braille](https://github.com/issues?q=repo%3Adaisy%2Fpipeline-mod-braille+milestone%3Av1.10.0)
- [Closed issues in pipeline-mod-nlp](https://github.com/issues?q=repo%3Adaisy%2Fpipeline-mod-nlp+milestone%3Av1.10.0)
- [Closed issues in pipeline-mod-tts](https://github.com/issues?q=repo%3Adaisy%2Fpipeline-mod-tts+milestone%3Av1.10.0)
- [Closed issues in pipeline-modules-common](https://github.com/issues?q=repo%3Adaisy%2Fpipeline-modules-common+milestone%3Av1.10.0)
- [Closed issues in pipeline-scripts](https://github.com/issues?q=repo%3Adaisy%2Fpipeline-scripts+milestone%3Av1.10.0)
- [Closed issues in pipeline-scripts-utils](https://github.com/issues?q=repo%3Adaisy%2Fpipeline-scripts-utils+milestone%3Av1.10.0)
- [Closed issues in pipeline-updater](https://github.com/issues?q=repo%3Adaisy%2Fpipeline-updater+milestone%3Av1.10.0)
- [Closed issues in pipeline-updater-gui](https://github.com/issues?q=repo%3Adaisy%2Fpipeline-updater-gui+milestone%3Av1.10.0)

The “Release notes” section of the distribution README file in pipeline-assembly can be taken from the NEWS file. The details should be replaced with a link to the Github release page which has a full copy of the release notes.

An email announcement should be sent to the following lists:

The announcement can be based on the following template:

Subject: Pipeline 2 vXYZ released

Dear all,

Version XYZ of the DAISY Pipeline 2 project is now available for download. The following alternative packages are proposed:

All distributions include the graphical user interface (GUI), all the conversion scripts, and a native command line tool (CLI).

This release features notably:

For details, please refer to the full release notes: https://github.com/daisy/pipeline-assembly/releases/tag/vXYZ

User documentation is available on the project’s web site: http://daisy.github.io/pipeline/

If you have any problems or identify some bugs, please report them to the Pipeline team using our issue tracker on GitHub: https://github.com/daisy/pipeline/issues

As usual, feedback is warmly welcome!

Bert and Romain, for the Pipeline team

pipeline-webui and other components that are not included in pipeline-assembly are released separately.

Checklist for testing release binaries

For each release of the Pipeline 2, the steps below should be followed to test the release binaries:

TBD