freedomofpress / securedrop-workstation

Qubes-based SecureDrop Journalist Workstation environment for submission handling
GNU Affero General Public License v3.0
132 stars 39 forks source link

Release SecureDrop Workstation 0.5.0 #624

Closed eloquence closed 3 years ago

eloquence commented 3 years ago

Release date: November 4, 2020

This is a tracking issue for preparing the next release of the SecureDrop Workstation, which will ship consolidated templates via the preflight updater (#471), as well as other unreleased changes from main.

In addition to an RPM update, we will simultaneously issue new releases of most SecureDrop Workstation components, including the SecureDrop Client. These have their own versioning, but for simplicity, this issue uses "0.5.0" as a shorthand for the cross-component release.

This release will include also include release to other workstation components:

Release steps

Prepare

Please see the 0.5.0 test plan on the wiki.

eloquence commented 3 years ago

During the 10/15-10/28 sprint, we're aiming to land the remaining changes in #471 (and the reply badges release blocker https://github.com/freedomofpress/securedrop-client/issues/1149) and then begin the QA of all components. The actual release will likely happen in early November.

eloquence commented 3 years ago

Started building out the combined non-template consolidation test plan in this issue; see changelog tracking doc for current status. Still a couple of client changes to cover, will add those tomorrow.

eloquence commented 3 years ago

The test plan in this issue now fully reflects the selection and prioritization in the changelog tracking doc. What remains is:

As a reminder, the database migration in https://github.com/freedomofpress/securedrop-client/pull/1162 is a release blocker, and we should not kick off full pre-release QA until it lands.

conorsch commented 3 years ago

Completed a happy-path upgrade on hardware.

Release-specific test plan

Test parameters

Scenario: Template consolidation:

Install Type 2: Happy Path Upgrade:

Scenario: Use of sdw-admin

Test case: securedrop-admin to sdw-admin rename (Issue: #586; PR: #596)

Scenario: Running the preflight updater

Test case: Text scaling in preflight updater (Issue: #597; PR: #599)

Scenario: Investigating logs

Test case: Sorting logs by hostname (Issue: #583; PR: https://github.com/freedomofpress/securedrop-log/pull/18)

eloquence commented 3 years ago

Install Type 3: Sad Path Upgrade:

(Reboot requested at this stage, which I performed.)

I'm seeing only references to sd-small-buster-template and sd-large-buster-template, and the old templates no longer exist. Given the reboot, this is likely expected behavior.

Double-clicking icon does nothing, getting an error: sd-app: command failed with code: 2 if running launcher via CLI. VM indicates update pending, so I'm rebooting the whole system. After reboot, we're good:

Except that the version is 0.2.1-dev-20201029-164632 because we're using a nightly build that overrides the 0.3.0 version configured in the securedrop-client repo. I've updated that in the test plan.

And sd-devices-dvm for sd-devices.

sd-devices is listed as using the template sd-devices-dvm, and sd-devices-dvm is listed as using the template sd-large-buster-template.

Updater runtime:

real 8m38.093s
user 0m15.941s
sys 0m11.154s

Scenario: Use of sdw-admin

Test case: securedrop-admin to sdw-admin rename (Issue: #586; PR: #596)

Scenario: Running the preflight updater

Test case: Text scaling in preflight updater (Issue: #597; PR: #599)

Scenario: Using the SecureDrop Client

Test case: Preview snippets (Issue: https://github.com/freedomofpress/securedrop-client/issues/1121; PR: https://github.com/freedomofpress/securedrop-client/pull/1131)

Test case: Window resizing (Issues: https://github.com/freedomofpress/securedrop-client/issues/1109 and https://github.com/freedomofpress/securedrop-client/issues/1120; PRs: https://github.com/freedomofpress/securedrop-client/pull/1130 and https://github.com/freedomofpress/securedrop-client/pull/1145)

Test case: Reply badges feature (Issue: https://github.com/freedomofpress/securedrop-client/issues/76; PR: https://github.com/freedomofpress/securedrop-client/pull/1142)

Test case: Decryption error styling (Issue: https://github.com/freedomofpress/securedrop-client/issues/1150; PR: https://github.com/freedomofpress/securedrop-client/pull/1151)

Scenario: Investigating logs

Test case: Sorting logs by hostname (Issue: #583; PR: https://github.com/freedomofpress/securedrop-log/pull/18)

eloquence commented 3 years ago

(In spite of the :x:s, all good news so far; as far as I can tell the sd-devices-dvm output is just an artifact of how that particular VM works, given the persistent-name disposable VM approach.)

sssoleileraaa commented 3 years ago

Install Type 1: Fresh Install:

Scenario: Use of sdw-admin

Test case: securedrop-admin to sdw-admin rename (Issue: #586; PR: #596)

Scenario: Running the preflight updater

Test case: Text scaling in preflight updater (Issue: #597; PR: #599)

Test case: Preview snippets (Issue: https://github.com/freedomofpress/securedrop-client/issues/1121; PR: https://github.com/freedomofpress/securedrop-client/pull/1131)

Test case: Window resizing (Issues: https://github.com/freedomofpress/securedrop-client/issues/1109 and https://github.com/freedomofpress/securedrop-client/issues/1120; PRs: https://github.com/freedomofpress/securedrop-client/pull/1130 and https://github.com/freedomofpress/securedrop-client/pull/1145)

Test case: Reply badges feature (Issue: https://github.com/freedomofpress/securedrop-client/issues/76; PR: https://github.com/freedomofpress/securedrop-client/pull/1142)

Test case: Decryption error styling (Issue: https://github.com/freedomofpress/securedrop-client/issues/1150; PR: https://github.com/freedomofpress/securedrop-client/pull/1151)

Scenario: Investigating logs

Test case: Sorting logs by hostname (Issue: #583; PR: https://github.com/freedomofpress/securedrop-log/pull/18)

Scenario: Acceptance Tests

NOTES: The first time I tried this, I ran into this error (which I thought we had fixed): https://github.com/freedomofpress/securedrop-export/issues/51. I will need to figure out what the STR is but basically I plugged in the printer and connected the cable to my Qubes laptop, clicked on "print" next to an attached document in the client, and sd-devices started for the first time, then I saw the error reported in this issue: https://github.com/freedomofpress/securedrop-export/issues/51. To fix this I closed the client and unplugged the printer cable from the Qubes laptop and plugged it in again with a new cable, confirmed that it auto-attached to sd-devices properly, started the client, and printed successfully.

conorsch commented 3 years ago

Release-specific test plan

Test parameters

Scenario: Template consolidation:

Install Type 3: Sad Path Upgrade:

eloquence commented 3 years ago

Focused on exploratory MIME type testing to start with, since this is one of the highest risk areas that was modified in the consolidation.

I am noticing that Nautilus offers ImageMagick as an option for images on sd-app, not sure if that was the case before, but may be worth removing from the small template if it's not needed? Note that ImageMagick has its own graphical viewer app.

eloquence commented 3 years ago

Login

Sources

conorsch commented 3 years ago

I am noticing that Nautilus offers ImageMagick as an option for images on sd-app

Checking on a 0.4.0 prod machine right now, I don't see ImageMagick as an option in the Nautilus right-click pane. I do see the package imagemagick marked as automatically installed in sd-app-buster-template, however, so the inclusion of the package isn't new. Frankly I'd prefer to remove nautilus, since we started including it before we had the client interface to handle submissions.

conorsch commented 3 years ago

I don't see ImageMagick as an option in the Nautilus right-click pane

Correction: if I right-click on an image file in sd-app on 0.4.0 prod, I see "Open With Open in Disposable VM" [sic] as the first and default option. If I choose "Open With Other Application," though, then the "Selection Application" dialog does indeed suggest ImageMagick. So definitely not a regression as part of 0.5.0. I don't propose we remove imagemagick from the small template right now, because it's automatically being installed—although I would like to trace what's including it.

eloquence commented 3 years ago

Submissions

Preview
Export

Closing the client

eloquence commented 3 years ago

Scenario: Client and Journalist Interface both in use

Login

(skipped repopulating the client)

Sources, replies, submissions

zenmonkeykstop commented 3 years ago

Still working thru the rest of the test plan, but on a fresh install the logging scenario is failing for me - specifically, logs are only showing up for sd-whonix and securedrop-workstation-buster.

kushaldas commented 3 years ago

Completed a happy-path upgrade on hardware.

Release-specific test plan

Test parameters

Scenario: Template consolidation:

Install Type 2: Happy Path Upgrade:

Scenario: Use of sdw-admin

Test case: securedrop-admin to sdw-admin rename (Issue: #586; PR: #596)

Scenario: Investigating logs

Test case: Sorting logs by hostname (Issue: #583; PR: https://github.com/freedomofpress/securedrop-log/pull/18)

On a separate note for the client, can anyone please upload a markdown file (*.md) file as a source and try to view it as a client?

eloquence commented 3 years ago

Scenario: Offline mode without existing data

Offline to Online

Scenario: Offline mode with existing data

Offline to Online

conorsch commented 3 years ago

Performed a fresh install on rc3. Did not a few test failures, but they went away after an updater run and a reboot, see comment in https://github.com/freedomofpress/securedrop-workstation/issues/634#issuecomment-722025707

Release-specific test plan

Test parameters

Install Type 1: Fresh Install:

Scenario: Use of sdw-admin

Test case: securedrop-admin to sdw-admin rename (Issue: #586; PR: #596)

Scenario: Investigating logs

Test case: Sorting logs by hostname (Issue: #583; PR: https://github.com/freedomofpress/securedrop-log/pull/18)

sssoleileraaa commented 3 years ago

Since @conorsch already tested logging for the rc3 fresh install path on the same hardware that I have, I started to perform the sad path upgrade but ran into a setup issue (forgot to run sdw-admin --uninstall and then later make clean before installing 0.4.0 again) so the sad path scenario didn't go smoothly for me -- it was too happy of a path. Conor and I discussed how the rc3 fix has been thoroughly tested at this point so it makes the most sense to just set my workstation up with a fresh 0.4.0 prod install to prepare for testing the release as soon as it goes live tomorrow. I can even follow the same admin instructions we provide with the release.

zenmonkeykstop commented 3 years ago

Happy path failed for me - updater stalled indefinitely at 35%. Killed updater and reran it, it completed "successfully", updating all templateVMs but did not re-run sdw-admin --apply. This broke the logging setup (possibly what @emkll was seeing earlier?).

Ran sdw-admin --apply in dom0 , which corrected logging issues.

emkll commented 3 years ago

Release-specific test plan

Test parameters

Install Type 1: Fresh Install:

Scenario: Use of sdw-admin

Test case: securedrop-admin to sdw-admin rename (Issue: #586; PR: #596)

Scenario: Investigating logs

Test case: Sorting logs by hostname (Issue: #583; PR: https://github.com/freedomofpress/securedrop-log/pull/18)

kushaldas commented 3 years ago

Printing on brother DCP 7065DN was smooth from client.

emkll commented 3 years ago

Tested the changes introduced in https://github.com/freedomofpress/securedrop-client/pull/1184 using a production 0.2.1 client and database, reporting a successful migration of the draftreplies table to include correct journalist associations. I will push a new 0.3.0 tag to build production debs based on that revision

emkll commented 3 years ago

SecureDrop Workstation was released on 2020-11-09, closing