Repository: freedomofpress/securedrop

Issue:
Release SecureDrop 2.4.0
This is a tracking issue for the release of SecureDrop 2.4.0

Scheduled as follows:

**Feature / string freeze:** 2022-05-05
**Pre-release announcement:** 2022-05-12
**Release date:** ~~2022-05-19~~ 2022-05-24
**Release manager:** @zenmonkeykstop 
**Deputy release manager:** @eaon 
**Communications manager:** @legoktm
**Deputy CM:** @eloquence
 **Localization manager:** @cfm 
**Deputy LM:** @zenmonkeykstop 

QA team: TBD

_SecureDrop maintainers and testers:_ As you QA 2.4.0, please report back your testing results as comments on this ticket. File GitHub issues for any problems found, tag them "QA: Release", and associate them with the [2.4.0 milestone](https://github.com/freedomofpress/securedrop/milestone/78) for tracking (or ask a maintainer to do so).

Test debian packages will be posted on https://apt-test.freedom.press signed with [the test key](https://gist.githubusercontent.com/conorsch/ec4008b111bc3142fca522693f3cce7e/raw/2968621e8ad92db4505a31fcc5776422d7d26729/apt-test%2520apt%2520pubkey)

# [QA Matrix for 2.4.0](https://docs.google.com/spreadsheets/d/1autPlQ6RTNguCFLBM919Gy81C9WEphdj2DKl08JFHCY/edit#gid=2135593926)

# [Test Plan for 2.4.0](https://github.com/freedomofpress/securedrop/wiki/2.4.0-Test-Plan)

## Localization management
High-level summary of these steps can be found here: https://docs.securedrop.org/en/stable/development/i18n.html#two-weeks-before-the-release-string-freeze Duplicating that content as checkboxes below, for visibility:

- [x] Update translations on latest develop, following [docs for i18n procedures](https://docs.securedrop.org/en/stable/development/i18n.html#update-strings-to-be-translated)
 - [x] Update strings served on Weblate, [following docs](https://docs.securedrop.org/en/stable/development/i18n.html#merge-develop-to-weblate) 
- [x] [Update Weblate screenshots](https://docs.securedrop.org/en/stable/development/i18n.html#update-weblate-screenshots) so translators can see new or modified source strings in context.
- [x] Update the [i18n timeline](https://forum.securedrop.org/t/about-the-translations-category/16) in the translation section of the forum.
- [x] Add a [Weblate announcement](https://weblate.securedrop.org/admin/trans/announcement) with the translation timeline for the release. Important: make sure the Notify users box is checked, so that translators receive an email alert.
- [x] Remind all developers about the string freeze in [Gitter](https://gitter.im/freedomofpress/securedrop).
- [x] Remind all translators about the string freeze in the Localization Lab channel in the [IFF Mattermost](https://internetfreedomfestival.org/wiki/index.php/IFF_Mattermost).


# Release management
## Prepare release candidate (2.4.0~rc1)
- [x] Link to latest version of Tails, including release candidates, to test against during QA
- [x] Prepare 2.4.0~rc1 release changelog
- [x] Branch release/2.4.0 from develop
- [x] Prepare 2.4.0~rc1
- [x] Build debs, preserving build log, and put up `2.4.0~rc1` on test apt server
- [x] Commit build log.

# Release management
## Prepare release candidate (2.4.0~rc2)
- [x] Link to latest version of Tails, including release candidates, to test against during QA
- [x] Prepare 2.4.0~rc2 release changelog
- [x] Branch release/2.4.0 from develop
- [x] Prepare 2.4.0~rc2
- [x] Build debs, preserving build log, and put up `2.4.0~rc2` on test apt server
- [x] Commit build log.

## Final release
- [x] Ensure builder in release branch is updated and/or update builder image
- [x] Push signed tag 
- [x] Pre-Flight: Test updater logic in Tails (apt-qa tracks the `release` branch in the LFS repo)
- [x] Build final Debian packages for 2.4.0 (and preserve build log)
- [x] Commit package build log to https://github.com/freedomofpress/build-logs
- [x] Upload Debian packages to apt-qa server via PR from `release` branch in LFS repo
- [x] Pre-Flight: Test that install and upgrade from 2.3.2 to 2.4.0 works w/ prod repo debs (apt-qa.freedom.press polls the `release` branch in the LFS repo for the debs)
- [x] Flip apt QA server to prod status (merge to `main` in the LFS repo)
- [x] Merge Docs branch changes to ``main`` and verify new docs build in securedrop-docs repo
- [x] Prepare release messaging


## Post release
- [x] Create GitHub release object 
- [x] Once release object is created, update version in `securedrop-docs` (version information in Wagtail is updated automatically)
- [x] Verify new docs show up on https://docs.securedrop.org
- [x] Publish announcements
- [ ] Merge changelog back to `develop`
- [x] Update roadmap wiki page: https://github.com/freedomofpress/securedrop/wiki/Development-Roadmap


Discussion:

Resolving patch:
diff --git a/securedrop/version.py b/securedrop/version.py
--- a/securedrop/version.py
+++ b/securedrop/version.py
@@ -1 +1 @@
-__version__ = '2.4.0~rc1'
+__version__ = '2.5.0~rc1'
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -4,7 +4,7 @@
 
 setuptools.setup(
     name="securedrop-app-code",
-    version="2.4.0~rc1",
+    version="2.5.0~rc1",
     author="Freedom of the Press Foundation",
     author_email="securedrop@freedom.press",
     description="SecureDrop Server",


Test patch:
diff --git a/molecule/builder-focal/tests/vars.yml b/molecule/builder-focal/tests/vars.yml
--- a/molecule/builder-focal/tests/vars.yml
+++ b/molecule/builder-focal/tests/vars.yml
@@ -1,5 +1,5 @@
 ---
-securedrop_version: "2.4.0~rc1"
+securedrop_version: "2.5.0~rc1"
 ossec_version: "3.6.0"
 keyring_version: "0.1.6"
 config_version: "0.1.4"