//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:
* [ ] `cd <GITSRC>/release-tools`
* [ ] make sure the repo is current (`git checkout releases/20.12`, `git pull`, `git diff` etc.)
* [ ] in file "version" increase version number to `20.12.1`
* [ ] in file "create_log.py" change "fromVersion=" to `v20.12.0` (previous stable)
* [ ] in file "create_sources_inc" (optionally, for .0 releases) change "unstable" to `stable` in download URL
* [ ] `git commit . && git push` to publish edits
Prepare repositories to be released:
* [ ] make sure you have a recent master checkout of all repositories from "modules.git" in <GITSRC>
* [ ] `./increase_repos_version.sh` with "git push" commented out to avoid pushing changes twice
* [ ] `./add_appstream_versions.sh -v -s<GITSRC> --date 2021-01-07` (expected release date) to push AppStream changes
* [ ] `./increase_repos_version.sh` with "git push" intact to push remaining repositories
* [ ] check and inform maintainers of build errors at https://build.kde.org/job/Applications/view/Everything%20-%20stable-kf5-qt5/
* [ ] check `git log v20.12.0..origin/releases/20.12` for all repositories and inform promo team of changes that are worth to announce
**PACKAGING** at tagging time
Prepare download directory (on `ftpadmin@deino.kde.org`):
* [ ] `ssh-add ; ssh -o ForwardAgent=yes ftpadmin@deino.kde.org` to log in
* [ ] `cd stable/release-service/` (resp. `cd unstable/release-service` for beta and RC releases)
* [ ] `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
* [ ] `exit` to log out
Prepare tars and signatures (on `pkgapplications@capona.kde.org`):
* [ ] `ssh-add ; ssh -o ForwardAgent=yes pkgapplications@capona.kde.org` to log in
* [ ] `cd release-tools/`
* [ ] make sure the repo is current (`git checkout releases/20.12`, `git pull`, `git diff` etc.)
* For **initial tars**:
** [ ] `rm -rf sources versions versions.tar.gz` to cleanup files from old releases
** [ ] `./update_l10n.sh` to fetch localization updates
** [ ] `./pack_all.sh` to generate the tars and signatures (needs 0.5 ... 1.5 hours)
* For each **respin**:
** [ ] `./pack.sh <REPO>` to update a single tar and signature
** [ ] changes for REVISIONS_AND_HASHES are in file "versions/<REPO>"
* [ ] `scp sources/*.tar.xz* "ftpadmin@deino.kde.org:/srv/archives/ftp/stable/release-service/20.12.1/src/"` to copy tars and and signatures to download location
* [ ] `./create_sources_inc > sources.inc`
* [ ] `tar cfz versions.tar.gz versions`
* [ ] `exit` to log out
[ ] copy files from capona, needed for announcements and tagging
** [ ] `scp "pkgapplications@capona.kde.org:release-tools/sources.inc" .`
** [ ] `scp "pkgapplications@capona.kde.org:release-tools/versions.tar.gz" .`
** [ ] `scp "pkgapplications@capona.kde.org:release-tools/REVISIONS_AND_HASHES" .`
* [ ] `rm -rf versions ; tar xf versions.tar.gz` to update versions
* [ ] `./create_log.py > changelog`
* [ ] make sure owner of all files in deino is "ftpadmin.packager"
* [ ] announce tars to release-team list (changelog, REVISIONS_AND_HASHES, and signature verification key)
**RELEASE** on release day
//`<FIXME>`// still needs to be updated
[ ] make sure we can release (check CI again, recent commits, mails etc.)
[ ] open download area in milona (chmod 755)
[ ] './tag_all.sh' to create git tags
[ ] commit "changelog" as announcements/fulllog_releases-19.12.1.inc
[ ] commit "sources.inc" as www/info/source-releases-19.12.1.inc
[ ] commit www/info/releases-19.12.1.php
[ ] inform promo team that releases are ready (e.g. via kde-promo IRC channel)
[ ] './add_bugzilla_versions.sh'