From 5e1730211ed7e65e0d562130454fbaca5048186c Mon Sep 17 00:00:00 2001 From: Frode Nordahl Date: Thu, 8 Sep 2022 14:19:07 +0200 Subject: [PATCH] wheelhouse: cleanup With juju/charm-tools#620 and juju-solutions/layer-basic#205 in place, along with the Launchpad build- and Charmhub distribution- infrastructure being widely available, it is time to stop attempting to build wheelhouses that can install on any series and architectures. The perferred method moving forward is to build a binary version of the charm per series and architecture pair and let the Python package manager do its job, releiving the charm author from the manual build dependency resolution chore. Remove various build dependency workarounds from here as they do not apply to all charms. Replace all pins with a less than next major version pin as the referenced issues have been resolved. For any charm author that want to continue to use the old approach they are free to add build dependencies to their wheelhouses. For older stable branches we recommend people to use the lock file feature [0][1]. 0: juju/charm-tools#585 1: juju/charm-tools#598 Signed-off-by: Frode Nordahl --- wheelhouse.txt | 44 ++++++++++++++++---------------------------- 1 file changed, 16 insertions(+), 28 deletions(-) diff --git a/wheelhouse.txt b/wheelhouse.txt index 2437af5..426833e 100644 --- a/wheelhouse.txt +++ b/wheelhouse.txt @@ -1,32 +1,20 @@ -# pip is pinned to <19.0 to avoid https://github.com/pypa/pip/issues/6164 -# even with installing setuptools before upgrading pip ends up with pip seeing -# the older setuptools at the system level if include_system_packages is true -pip>=18.1,<19.0;python_version < '3.8' -# https://github.com/juju-solutions/layer-basic/issues/201 -pip<22.1;python_version >= '3.8' -# pin Jinja2, PyYAML and MarkupSafe to the last versions supporting python 3.5 -# for trusty -Jinja2==2.10;python_version >= '3.0' and python_version <= '3.4' # py3 trusty -Jinja2==2.11;python_version == '2.7' or python_version == '3.5' # py27, py35 -Jinja2;python_version >= '3.6' # py36 and on +# common bootstrap +pip<23 +setuptools<65 +setuptools-scm<8 +wheel<0.38 -PyYAML==5.2;python_version >= '3.0' and python_version <= '3.4' # py3 trusty -PyYAML<5.4;python_version == '2.7' or python_version >= '3.5' # all else +# common build dependencies for install-from-source-on-target approach +# +# these are unfortunately required because `pip download` does not support +# automatic discovery of build dependencies (ref pypa/pip#7863). +# +# building the charms with binary wheels (ref juju/charm-tools#620) would +# relieve us from having to track theese manually. +cython<0.30 +flit_core<4 -MarkupSafe<2.0.0;python_version < '3.6' -MarkupSafe<2.1.0;python_version == '3.6' # Just for python 3.6 -MarkupSafe;python_version >= '3.7' # newer pythons - -setuptools<42;python_version < '3.8' -# https://github.com/juju-solutions/layer-basic/issues/201 -setuptools<62.2.0;python_version >= '3.8' -setuptools-scm<=1.17.0;python_version < '3.8' -# https://github.com/pypa/setuptools_scm/issues/722 -setuptools-scm<7;python_version >= '3.8' -flit_core;python_version >= '3.8' +# common dependencies for all reactive charms charmhelpers>=0.4.0,<2.0.0 charms.reactive>=0.1.0,<2.0.0 -wheel<0.34;python_version < '3.8' -wheel;python_version >= '3.8' -# pin netaddr to avoid pulling importlib-resources -netaddr<=0.7.19 +