Use `poetry` to manage the virtualenv in debian packages (#12449)
* Use `poetry` to build venv in debian packages Co-authored-by: Dan Callahan <danc@element.io> Co-authored-by: Shay <hillerys@element.io> * Changelog * Only pull in from requirements.txt Addresses the same problem as #12439. * Include `test` and `all` extras `poetry export` helpfully silently ignores an unknown extra Haven't seen this before because it's the only place we export `all` and `test`. I could have __sworm__ that the syntax `--extra "all test"` worked for `poetry install`... * Clean up requirements file on subsequence builds * Fix shell syntax Co-authored-by: Dan Callahan <danc@element.io> Co-authored-by: Shay <hillerys@element.io>pull/12476/head
parent
8af8a9bce5
commit
6b3e0ea6bd
|
@ -0,0 +1 @@
|
||||||
|
Use `poetry` to manage the virtualenv in debian packages.
|
|
@ -30,9 +30,19 @@ case $(dpkg-architecture -q DEB_HOST_ARCH) in
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
# Use --builtin-venv to use the better `venv` module from CPython 3.4+ rather
|
# Manually install Poetry and export a pip-compatible `requirements.txt`
|
||||||
# than the 2/3 compatible `virtualenv`.
|
# We need a Poetry pre-release as the export command is buggy in < 1.2
|
||||||
|
TEMP_VENV="$(mktemp -d)"
|
||||||
|
python3 -m venv "$TEMP_VENV"
|
||||||
|
source "$TEMP_VENV/bin/activate"
|
||||||
|
pip install -U pip
|
||||||
|
pip install poetry==1.2.0b1
|
||||||
|
poetry export --extras all --extras test -o exported_requirements.txt
|
||||||
|
deactivate
|
||||||
|
rm -rf "$TEMP_VENV"
|
||||||
|
|
||||||
|
# Use --no-deps to only install pinned versions in exported_requirements.txt,
|
||||||
|
# and to avoid https://github.com/pypa/pip/issues/9644
|
||||||
dh_virtualenv \
|
dh_virtualenv \
|
||||||
--install-suffix "matrix-synapse" \
|
--install-suffix "matrix-synapse" \
|
||||||
--builtin-venv \
|
--builtin-venv \
|
||||||
|
@ -41,9 +51,11 @@ dh_virtualenv \
|
||||||
--preinstall="lxml" \
|
--preinstall="lxml" \
|
||||||
--preinstall="mock" \
|
--preinstall="mock" \
|
||||||
--preinstall="wheel" \
|
--preinstall="wheel" \
|
||||||
|
--extra-pip-arg="--no-deps" \
|
||||||
--extra-pip-arg="--no-cache-dir" \
|
--extra-pip-arg="--no-cache-dir" \
|
||||||
--extra-pip-arg="--compile" \
|
--extra-pip-arg="--compile" \
|
||||||
--extras="all,systemd,test"
|
--extras="all,systemd,test" \
|
||||||
|
--requirements="exported_requirements.txt"
|
||||||
|
|
||||||
PACKAGE_BUILD_DIR="debian/matrix-synapse-py3"
|
PACKAGE_BUILD_DIR="debian/matrix-synapse-py3"
|
||||||
VIRTUALENV_DIR="${PACKAGE_BUILD_DIR}${DH_VIRTUALENV_INSTALL_ROOT}/matrix-synapse"
|
VIRTUALENV_DIR="${PACKAGE_BUILD_DIR}${DH_VIRTUALENV_INSTALL_ROOT}/matrix-synapse"
|
||||||
|
|
|
@ -1,3 +1,10 @@
|
||||||
|
matrix-synapse-py3 (1.58.0+nmu1) UNRELEASED; urgency=medium
|
||||||
|
|
||||||
|
* Non-maintainer upload.
|
||||||
|
* Use poetry to manage the bundled virtualenv included with this package.
|
||||||
|
|
||||||
|
-- Synapse Packaging Team <packages@matrix.org> Wed, 30 Mar 2022 12:21:43 +0100
|
||||||
|
|
||||||
matrix-synapse-py3 (1.57.0~rc1) stable; urgency=medium
|
matrix-synapse-py3 (1.57.0~rc1) stable; urgency=medium
|
||||||
|
|
||||||
* New synapse release 1.57.0~rc1.
|
* New synapse release 1.57.0~rc1.
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
exported_requirements.txt
|
Loading…
Reference in New Issue