Skip to content

Commit

Permalink
Include non-Python data files into Python package
Browse files Browse the repository at this point in the history
Update our pyproject.toml file to include some non-Python data files,
e.g., our container image and assets. This way, we can use `poetry
build` to create a source distribution / Python wheel from our source
repository.

Note that this list of data files is already defined in our `setup.py`
script. In that script, one can find some extra goodies:

1. We can conditionally include data files in our Python package. We use
   this to include Qubes data only in our Qubes packages.
2. We can specify where will the data files be installed in the end-user
   system.

The above are non-goals for Poetry [1], especially (2), because modern
Python wheels are not supposed to install files in arbitrary places
within the user's host, nor should the install invocation use sudo.
Instead, this is a task that's better suited for the .deb / .rpm
packages.

So, why do we bother updating our `pyproject.toml` and not use
`setup.py` instead? Because `setup.py` is deprecated [2,3], and the
latest Python packaging RFCs [4], as well as most recent Fedora
guidelines [5] use `pyproject.toml` as the source of truth, instead of
`setup.py`.

In subsequent commits, we will also use just `pyproject.toml` for RPM
packaging.

[1]: python-poetry/poetry#890
[2]: https://peps.python.org/pep-0517/#source-trees
[3]: https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html
[4]: https://peps.python.org/pep-0517/
[5]: https://docs.fedoraproject.org/en-US/packaging-guidelines/Python/
  • Loading branch information
apyrgio committed Aug 31, 2023
1 parent 92708d5 commit a29aac9
Showing 1 changed file with 6 additions and 0 deletions.
6 changes: 6 additions & 0 deletions pyproject.toml
Expand Up @@ -4,6 +4,12 @@ version = "0.4.2"
description = "Take potentially dangerous PDFs, office documents, or images and convert them to safe PDFs"
authors = ["Freedom of the Press Foundation <info@freedom.press>", "Micah Lee <micah.lee@theintercept.com>"]
license = "MIT"
include = [
"share/",
"qubes/",
"install/linux/press.freedom.dangerzone.*",
"README.md"
]

[tool.poetry.dependencies]
python = ">=3.7,<3.12"
Expand Down

0 comments on commit a29aac9

Please sign in to comment.