//Checklist for RC (.90) and stable (.x) releases. For beta (.80) releases, see `<FIXME>`. //
**PREPARATIONS** a few days before tagging date
Update the "release-tools" repository:
* [X] `cd <GITSRC>/release-tools`
* [X] make sure the repo is current (`git checkout releases/20.12`, `git pull`, `git diff` etc.)
* [X] in file "version" increase version number to `20.12.1`
* [X] in file "create_log.py" change "fromVersion=" to `v20.12.0` (previous stable)
* [ ] ~~(only for .0 releases) in file "create_sources_inc" change "unstable" to `stable` in download URL ~~
* [X] `git commit . && git push` to publish edits
Prepare repositories to be released:
* [X] make sure you have a recent master checkout of all repositories from "modules.git" in <GITSRC>
* [X] `./increase_repos_version.sh` with "git push" commented out to avoid pushing changes twice
* [X] `./add_appstream_versions.sh -v -s <GITSRC> --date 2021-01-07` (expected release date) to push AppStream changes
* [X] `./increase_repos_version.sh` with "git push" intact to push remaining repositories
* [X] check for "error:" in script outputs and manually fix and push git conflicts
* [X] check and inform maintainers of build errors at https://build.kde.org/job/Applications/view/Everything%20-%20stable-kf5-qt5/
* [X] check `git log v20.12.0..origin/releases/20.12` for all repositories
* [X] (only for bugfix releases, starting with .1) inform promo team of three or five changes that are worth to announce (important bug fixes, commits from new contributors, ...)
**PACKAGING** at tagging time
Prepare download directory (on `ftpadmin@deino.kde.org`):
* [X] `ssh-add ; ssh -o ForwardAgent=yes ftpadmin@deino.kde.org` to log in
* [X] `cd stable/release-service/` (resp. `cd unstable/release-service` for beta and RC releases)
* [X] `mkdir -p 20.12.1/src ; chmod 750 20.12.1 20.12.1/src ; chown ftpadmin.packager 20.12.1 20.12.1/src` to create the download "src" directory with correct attributes
* [X] `exit` to log out
Prepare tars and signatures (on `pkgapplications@capona.kde.org`):
* [X] make sure we can package (check CI again, recent commits, mails etc.)
* [X] `ssh-add ; ssh -o ForwardAgent=yes pkgapplications@capona.kde.org` to log in
* [X] `cd release-tools/`
* [X] make sure the repo is current (`git checkout releases/20.12`, `git pull`, `git diff` etc.)
* For **initial tars**:
** [X] `rm -rf sources versions` to cleanup files from old releases
** [X] `./update_l10n.sh` to fetch localization updates
** [X] `./pack_all.sh` to generate the tars and signatures (needs 0.5 ... 1.5 hours)
** [X] `scp sources/*.tar.xz* "ftpadmin@deino.kde.org:/srv/archives/ftp/stable/release-service/20.12.1/src/"` to copy tars and signatures to download directory
* For each **respin**:
** [X] `./pack.sh <REPO>` to update a single tar and signature
** [X] changes for REVISIONS_AND_HASHES are in file "versions/<REPO>"
** [X] `scp sources/<REPO>-20.12.1.tar.xz* "ftpadmin@deino.kde.org:/srv/archives/ftp/stable/release-service/20.12.1/src/"` to copy tar and signature to download directory
* [X] `./create_sources_inc > sources.inc`
* [X] `exit` to log out
Prepare announcement for packagers:
* [ ] copy files from capona, needed for announcements and tagging
** [ ] `scp "pkgapplications@capona.kde.org:release-tools/sources.inc" .`
** [X] `scp "pkgapplications@capona.kde.org:release-tools/REVISIONS_AND_HASHES" .`
** [ ] `scp "pkgapplications@capona.kde.org:release-tools/versions/*" versions/`
* [ ] `./create_log.py > changelog`
* [X] make sure download files have 644 access mode (rw-r--r--) and owner "ftpadmin.packager" :
** [X] (on ftpadmin@deino.kde.org): `chmod 644 20.12.1/src/* ; chown ftpadmin.packager 20.12.1/src/*`
* [X] announce tars to release-team list (changelog, REVISIONS_AND_HASHES, and signature verification key)
**RELEASE** on release day
* [ ] make sure we can release (check mails etc.)
* [ ] open access to download directory to warm up mirrors:
** [ ] (on ftpadmin@deino.kde.org): `chmod 755 20.12.1 20.12.1/src`
[ ] `./tag_all.sh` to create and push git tags
[ ] add/commit/push files to websites/kde-org repository:
** [ ] add Jekyll/Markdown header to "changelog" (cf. previous releases)
** [ ] "changelog" as `content/announcements/fulllog_releases-20.12.1.md`
** [ ] "sources.inc" as `content/info/sources/source-releases-20.12.1.html`
** [ ] add `content/info/releases-20.12.1.md` (cf. previous releases)
** [ ] check `https://kde.org/info/releases-20.12.1/` (needs a few minutes to appear)
** [ ] check `https://kde.org/announcements/fulllog_releases-20.12.1/?version=20.12.1`
[ ] inform promo team that releases are ready (e.g. via kde-promo IRC channel)
[ ] `./add_bugzilla_versions.sh`