Skip to content

Commit

Permalink
ci: Bump PySide6 version in Fedora end-user envs
Browse files Browse the repository at this point in the history
Our end-user Fedora environments, that we create for testing how
Dangerzone would operate on a clean Fedora system, require PySide6 to be
installed. This package is not available from the official Fedora repos
yet.

We have a way instead to check the poetry.lock file, grab the latest
PySide6 version from there, and install it from a URL. This is no longer
necessary, now that PySide6 6.7.0 will soon be available in all stable
Fedora releases. Since the last release maintained by FPF will be
6.6.3.1, we should pin this version in our env.py script. This way, we
can bump poetry.lock independently, and let Windows/macOS users get
different versions.

Refs freedomofpress/maint-dangerzone-pyside6#5
  • Loading branch information
apyrgio committed Apr 18, 2024
1 parent 7c4e629 commit 7cd73ca
Showing 1 changed file with 5 additions and 17 deletions.
22 changes: 5 additions & 17 deletions dev_scripts/env.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
DEFAULT_SHOW_DOCKERFILE = False
DEFAULT_DOWNLOAD_PYSIDE6 = False

PYSIDE6_VERSION = "6.6.3.1"
PYSIDE6_RPM = "python3-pyside6-{pyside6_version}-1.fc{fedora_version}.x86_64.rpm"
PYSIDE6_URL = (
"https://packages.freedom.press/yum-tools-prod/dangerzone/f{fedora_version}/%s"
Expand Down Expand Up @@ -309,8 +310,8 @@ class PySide6Manager:
"""Provision PySide6 RPMs in our Dangerzone environments.
This class holds all the logic around checking and downloading PySide RPMs. It can
detect the PySide6 version that the project requires, check if an RPM is present
under "/dist", and download it.
check if the required RPM version is present under "/dist", and optionally download
it.
"""

def __init__(self, distro_name, distro_version):
Expand All @@ -320,22 +321,9 @@ def __init__(self, distro_name, distro_version):
self.distro_version = distro_version

@property
@functools.lru_cache
def version(self):
"""Retrieve the PySide6 version from poetry.lock.
Read the poetry.lock file, and grep the version of the PySide6 library. The
results of this method call are cached, so we can call it repeatedly without any
performance cost.
"""
# FIXME: I don't like regexes, but problem is that `tomllib` is not present in
# Python < 3.11. So, since we don't want to rely on an external library yet, we
# have to resort to regexes. Note that the regex we choose uses Shiboken6,
# mainly because the PySide6 package and its version are in different lines.
with open(git_root() / "poetry.lock") as f:
toml = f.read()
match = re.search(r'^shiboken6 = "([\d.]+)"$', toml, re.MULTILINE)
return match.groups()[0]
"""The version of the PySide6 RPM."""
return PYSIDE6_VERSION

@property
def rpm_name(self):
Expand Down

0 comments on commit 7cd73ca

Please sign in to comment.