Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QA and Release 0.6.1 #785

Closed
58 of 59 tasks
apyrgio opened this issue Apr 22, 2024 · 3 comments
Closed
58 of 59 tasks

QA and Release 0.6.1 #785

apyrgio opened this issue Apr 22, 2024 · 3 comments
Labels
development Development-focused changes
Milestone

Comments

@apyrgio
Copy link
Contributor

apyrgio commented Apr 22, 2024

Pre-release

Before making a release, all of these should be complete:

  • Copy the entirety of these instructions onto a new issue and call it QA and Release version <VERSION>
  • Add new Linux platforms and remove obsolete ones
  • Bump the Python dependencies using poetry lock
  • Check for official PySide6 versions
  • Update version in pyproject.toml
  • Update share/version.txt
  • Update the "Version" field in install/linux/dangerzone.spec
  • Update screenshot in README.md, if necessary
  • CHANGELOG.md should be updated to include a list of all major changes since the last release
  • Create a PGP-signed git tag for the version, e.g. for dangerzone v0.1.0, the is created with:

QA

To ensure that new releases do not introduce regressions, and support existing
and newer platforms, we have to do the following:

  • Make sure that the tip of the main branch passes the CI tests.
  • Make sure that the Apple account has a valid application password and has
    agreed to the latest Apple terms (see macOS release
    section).
  • Create a test build in Windows and make sure it works:
    • Check if the suggested Python version is still supported.
    • Create a new development environment with Poetry.
    • Build the container image and ensure the development environment uses
      the new image.
    • Run the Dangerzone tests.
    • Build and run the Dangerzone .exe
    • Test some QA scenarios (see Scenarios below).
  • Create a test build in macOS (Intel CPU) and make sure it works:
    • Check if the suggested Python version is still supported.
    • Create a new development environment with Poetry.
    • Build the container image and ensure the development environment uses
      the new image.
    • Run the Dangerzone tests.
    • Create and run an app bundle.
    • Test some QA scenarios (see Scenarios below).
  • Create a test build in macOS (M1/2 CPU) and make sure it works:
    • Check if the suggested Python version is still supported.
    • Create a new development environment with Poetry.
    • Build the container image and ensure the development environment uses
      the new image.
    • Run the Dangerzone tests.
    • Create and run an app bundle.
    • Test some QA scenarios (see Scenarios below).
  • Create a test build in the most recent Ubuntu LTS platform (Ubuntu 24.04
    as of writing this) and make sure it works:
  • Create a test build in the most recent Fedora platform (Fedora 40 as of
    writing this) and make sure it works:
    • Create a new development environment with Poetry.
    • Build the container image and ensure the development environment uses
      the new image.
    • Run the Dangerzone tests.
    • Create an .rpm package and install it system-wide.
    • Test some QA scenarios (see Scenarios below).
  • Create a test build in the most recent Qubes Fedora template (Fedora 39 as
    of writing this) and make sure it works:
    • Create a new development environment with Poetry.
    • Run the Dangerzone tests.
    • Create a Qubes .rpm package and install it system-wide.
    • Ensure that the Dangerzone application appears in the "Applications"
      tab.
    • Test some QA scenarios (see Scenarios below) and make sure
      they spawn disposable qubes.

Publishing the Release

To publish the release:

  • Run container scan on the produced container images (some time may have passed since the artifacts were built)
  • Collect the assets in a single directory, calculate their SHA-256 hashes, and sign them.
    • You can use ./dev_scripts/sign-assets.py, if you want to automate this task)
  • Create a new draft release on GitHub and upload the macOS and Windows installers.
    • Copy the release notes text from the template at docs/templates/release-notes
    • You can use ./dev_scripts/upload-asset.py, if you want to upload an asset using an access token.
  • Upload the container.tar.gz i686 image that was created in the previous step
  • Upload the detached signatures (.asc) and checksum file.
  • Update the Dangerzone website to link to the new installers and signatures
  • Update the brew cask release of Dangerzone with a PR like this one
  • Update version and download links in README.md

(see also the previous QA and Release for 0.6.0)

@apyrgio
Copy link
Contributor Author

apyrgio commented Apr 23, 2024

Regarding our PySide6 versions, it seems that we are currently stuck with 6.6.3.1 in all platforms.

@apyrgio
Copy link
Contributor Author

apyrgio commented Apr 30, 2024

Our Windows QA was quite eventful. We have uncovered several issues, both new and old, as well as a noticeable termination delay in some edge cases (#791). I'll send a PR soon that fixes these issue, and unblock our release.

@apyrgio
Copy link
Contributor Author

apyrgio commented May 14, 2024

Dangerzone 0.6.1 is out 🥳. All subtasks have been resolved, so we can now close this issue.

@apyrgio apyrgio closed this as completed May 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
development Development-focused changes
Projects
None yet
Development

No branches or pull requests

1 participant