From a29aac9ba0a43cc4409a182e3d4f22aebbe9e65e Mon Sep 17 00:00:00 2001 From: Alex Pyrgiotis Date: Thu, 31 Aug 2023 11:16:21 +0300 Subject: [PATCH] Include non-Python data files into Python package 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]: https://github.com/python-poetry/poetry/issues/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/ --- pyproject.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 6a676ca51..f73b80fa1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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 ", "Micah Lee "] license = "MIT" +include = [ + "share/", + "qubes/", + "install/linux/press.freedom.dangerzone.*", + "README.md" +] [tool.poetry.dependencies] python = ">=3.7,<3.12"