Skip to content

Commit

Permalink
Doxygen: Improve release checklist
Browse files Browse the repository at this point in the history
  • Loading branch information
ubruhin committed Apr 21, 2019
1 parent b12397c commit cd6d1a4
Showing 1 changed file with 28 additions and 17 deletions.
45 changes: 28 additions & 17 deletions dev/doxygen/pages/release_workflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,35 +131,46 @@ downloading translations from [Transifex].

# Release Checklist {#doc_release_workflow_checklist}

## Prepare New Major Release

1. Review the file format of the current `master` branch very carefully. We must
be sure that the file format is completely stable *before* creating a release
branch.
2. On [Transifex], create a new [resource] for by copying `librepcb.ts`.
2. On [Transifex], create a new [resource] by copying `librepcb.ts`.
3. Create a new release branch (e.g. `release/0.1`) from the current `master`.
4. On `master`, add a commit to increment the application's major version and
the file format version.
5. On the release branch, set the define `FILE_FORMAT_STABLE` to `1` and commit.
6. On the release branch, change resource in `.tx/config` to the corresponding
release (e.g. 'librepcb-0.1.ts'), update the `i18n` submodule and commit
everything.
7. On the release branch, set the define `APP_VERSION` to the release candidate
version (e.g. "0.1-rc1"), commit and push.
8. Check if CI is successful and test the artifacts generated by CI.
9. If the artifacts are working properly, add and push a new tag with the name
equal to the value of `APP_VERSION` (e.g. "0.1.0-rc1"). Keep in mind that the
tag must be signed and it's name must always have three numbers (i.e. "0.1.0"
release (e.g. 'librepcb-0.1.ts') and commit.

## Create Release

1. Cherry-pick relevant commits from `master`.
2. Update the `i18n` submodule and commit.
3. Update the define `APP_VERSION` (e.g. "0.1.0-rc1" or "0.1.1") and commit.
4. Update the installer version in `ci/build.sh` (e.g. "0.1.0-1"), commit and
push. Note: Always append a dash followed by a number!
5. Check if CI is successful and test the artifacts generated by CI.
6. Publish the artifacts at https://download.librepcb.org/releases/.
7. Test the official releases again, this time including the installer.
8. Make sure all submodules point to persistent commits (commits could be
garbage collected when rebasing a branch, this would break the checkout of
older releases!). If necessary, add tags to the submodule repositories to
avoid garbage collection of these commits.
9. If everything works properly, add and push a new tag with the name equal to
the value of `APP_VERSION` (e.g. "0.1.0-rc1"). Keep in mind that the tag
must be signed and it's name must always have three numbers (i.e. "0.1.0"
instead of "0.1")!
10. Make sure all submodules point to persistent commits (commits could be
garbage collected when rebasing a branch, this would break the checkout of
older releases!). If necessary, add tags to the submodule repositories to
avoid garbage collection of these commits.
11. Publish the artifacts at https://download.librepcb.org.
12. Add changelog to [GitHub Releases].
13. Update website download links and changelog, write blog post, Twitter, ...
10. Update website/documentation download links and publish blog post
containing the changelog.
11. Add tag description to [GitHub Releases], including a link to the blog post.
12. Notify users through Patreon, Twitter, ...
13. Start updating distribution packages (Flatpak, Arch, NixOS, ...).


[semantic versioning]: https://semver.org/
[forward compatibility]: @ref doc_versioning_forward_compatibility
[Transifex]: https://transifex.com
[resource]: https://docs.transifex.com/projects/introduction
[GitHub Releases]: https://github.com/LibrePCB/LibrePCB/releases
[GitHub Releases]: https://github.com/LibrePCB/LibrePCB/releases

0 comments on commit cd6d1a4

Please sign in to comment.