mirror of
https://github.com/systemd/systemd
synced 2024-07-22 02:34:54 +00:00
![Daan De Meyer](/assets/img/avatar_default.png)
tilde sorts lower in the version comparison spec: https://uapi-group.org/specifications/specs/version_format_specification/ ➜ systemd git:(strip) systemd-analyze compare-versions 249\~rc1 249 249\~rc1 < 249 ➜ systemd git:(strip) systemd-analyze compare-versions 249-rc1 249 249-rc1 > 249 Also update tools/meson-vcs-tag.sh to use carets instead of hyphens for the git part of the version as carets are allowed to be part of a version by pacman while hyphens are not and both sort higher than a version without the git part.
29 lines
2.4 KiB
Markdown
29 lines
2.4 KiB
Markdown
---
|
|
title: Steps to a Successful Release
|
|
category: Contributing
|
|
layout: default
|
|
SPDX-License-Identifier: LGPL-2.1-or-later
|
|
---
|
|
|
|
# Steps to a Successful Release
|
|
|
|
1. Add all items to NEWS
|
|
2. Update the contributors list in NEWS (`ninja -C build git-contrib`)
|
|
3. Update the time and place in NEWS
|
|
4. Update hwdb (`ninja -C build update-hwdb`, `ninja -C build update-hwdb-autosuspend`, commit separately).
|
|
5. Update syscall numbers (`ninja -C build update-syscall-tables update-syscall-header`).
|
|
6. [RC1] Update version and library numbers in `meson.build`
|
|
7. Check dbus docs with `ninja -C build update-dbus-docs`
|
|
8. Update translation strings (`cd build`, `meson compile systemd-pot`, `meson compile systemd-update-po`) - drop the header comments from `systemd.pot` + re-add SPDX before committing. If the only change in a file is the 'POT-Creation-Date' field, then ignore that file.
|
|
9. Tag the release: `version=vXXX~rcY && git tag -s "${version}" -m "systemd ${version}"`. Note that this uses a tilde (\~) instead of a hyphen (-) because tildes sort lower in version comparisons according to the [version format specification](https://uapi-group.org/specifications/specs/version_format_specification/), and we want `v255-rc1` to sort lower than `v255`.
|
|
10. Do `ninja -C build`
|
|
11. Make sure that the version string and package string match: `build/systemctl --version`
|
|
12. [FINAL] Close the github milestone and open a new one (https://github.com/systemd/systemd/milestones)
|
|
13. "Draft" a new release on github (https://github.com/systemd/systemd/releases/new), mark "This is a pre-release" if appropriate.
|
|
14. Check that announcement to systemd-devel, with a copy&paste from NEWS, was sent. This should happen automatically.
|
|
15. Update IRC topic (`/msg chanserv TOPIC #systemd Version NNN released | Online resources https://systemd.io/`)
|
|
16. [FINAL] Push commits to stable, create an empty -stable branch: `git push systemd-stable --atomic origin/main:main origin/main:refs/heads/${version}-stable`.
|
|
17. [FINAL] Build and upload the documentation (on the -stable branch): `ninja -C build doc-sync`
|
|
18. [FINAL] Change the default branch to latest release (https://github.com/systemd/systemd-stable/settings/branches).
|
|
19. [FINAL] Change the Github Pages branch in the stable repository to the newly created branch (https://github.com/systemd/systemd-stable/settings/pages) and set the 'Custom domain' to 'systemd.io'
|