Creating a release ================== This document is documentation intended for maintainers of Barrier. It documents the release process of Barrier. Step 1: Setup environment variables ----------------------------------- Setup the following environment variable that will be used throughout the rest of the steps. export VERSION=X.Y.Z Step 2: Release notes PR ------------------------ Open a new branch (e.g. `release`) and run the following: towncrier --version ${VERSION} --date `date -u +%F` This collects the release notes using the `towncrier` tool. Please commit the collected release notes afterwards. Certain file names are not properly supported by the `towncrier` tool and it ignores them. Check `newsfragments` directory for any forgotten release notes Step 3: Merge the release notes PR ---------------------------------- Step 4: Bump the version number ------------------------------- Pull the merge commit created on the `master` branch during the step 2. Edit the following files and update the version numbers: - `Build.properties` - `cmake/Version.cmake` - `doc/barrierc.1` - `doc/barriers.1` - `.github/ISSUE_TEMPLATE/bug_report.yml` Commit to the release branch with the following message `Barrier x.y.z`. Push the commit: git push origin master Step 5: Push git tag -------------------- Create a tag: git tag -s v${VERSION} -m v${VERSION} Push the tag: git push origin master --tags Step 6: Draft a new release on GitHub ------------------------------------- Go to https://github.com/buildbot/buildbot/releases and draft a new release. Use git tag as the title of the release: `vX.Y.Z`. Use the release notes generated by the `towncrier` tool as the description of the releases. Upload the artifacts created by Azure pipelines as the binaries of the release. The following artifacts should be uploaded to GitHub: - the Barrier-X.Y.Z-release.dmg created by the newest Mac OS task (artifact name is "Mac Release Disk Image and App XYZ"). - the BarrierSetup-X.Y.Z-release.exe (artifact name is Windows Release Installer).