Package: cherrypy3
Version: 18.9.0-1
X-Debbugs-CC: Jeroen Ploemen <j...@debian.org>

Hi,
I'm clear that the Ubuntu issues around universe/main dependencies [1]
are not important to Debian, but that kind of checks at least made me
spot the impact of the recently added dependency to python3-objgraph
from cherryp3.

  cherrypy3 (18.9.0-1) unstable; urgency=medium
...
    * Control: add recommended dep on python3-objgraph, optional
import in
      cherrypy/lib/gctools.py.

I only can see it used for testing (and in that context it is
correctly pulled in by d/t/control already).
AFAICS upstream itself only depends on it for tests [2] and for
further comparison also in fedora [3] there is no such dependency.

It pulls quite much as it is not only python3-objgraph but then
through further recommends even all of graphviz and xdot - and then in
turn even more like gtk.
That pulled in every place that cherryp3 is used seems too much
especially for a seemingly mostly test-only dependency.

I compared the behavior on bullseye, bookworm and trixie containers if
this is really as much as it feels. Even bullseye to bookworm grew a
bit, but not that much.

# bullseye
root@d11:~# apt install python3-cherrypy3
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  ca-certificates javascript-common libjs-jquery libjs-sphinxdoc
libjs-underscore libmpdec3 libpython3-stdlib libpython3.9-minimal
libpython3.9-stdlib libreadline8 libsqlite3-0 media-types openssl
python3
  python3-cffi-backend python3-cryptography python3-minimal
python3-openssl python3-pkg-resources python3-repoze.lru
python3-routes python3-simplejson python3-six python3-webob python3.9
python3.9-minimal
  readline-common
Suggested packages:
  apache2 | lighttpd | httpd python3-doc python3-tk python3-venv
python-cryptography-doc python3-cryptography-vectors
python-openssl-doc python3-openssl-dbg python3-setuptools
python3-paste python-webob-doc
  python3.9-venv python3.9-doc binutils binfmt-support readline-doc
The following NEW packages will be installed:
  ca-certificates javascript-common libjs-jquery libjs-sphinxdoc
libjs-underscore libmpdec3 libpython3-stdlib libpython3.9-minimal
libpython3.9-stdlib libreadline8 libsqlite3-0 media-types openssl
python3
  python3-cffi-backend python3-cherrypy3 python3-cryptography
python3-minimal python3-openssl python3-pkg-resources
python3-repoze.lru python3-routes python3-simplejson python3-six
python3-webob python3.9
  python3.9-minimal readline-common
0 upgraded, 28 newly installed, 0 to remove and 0 not upgraded.
Need to get 8800 kB of archives.
After this operation, 30.7 MB of additional disk space will be used.

# bookworm
root@d12:~# apt install python3-cherrypy3
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  ca-certificates javascript-common libjs-jquery libjs-sphinxdoc
libjs-underscore libnsl2 libpython3-stdlib libpython3.11-minimal
libpython3.11-stdlib libreadline8 libsqlite3-0 media-types openssl
python3
  python3-autocommand python3-cffi-backend python3-cheroot
python3-cryptography python3-inflect python3-jaraco.classes
python3-jaraco.collections python3-jaraco.context
python3-jaraco.functools
  python3-jaraco.text python3-minimal python3-more-itertools
python3-openssl python3-pkg-resources python3-portend
python3-repoze.lru python3-routes python3-simplejson python3-six
python3-tempora python3-tz
  python3-webob python3-zc.lockfile python3.11 python3.11-minimal
readline-common
Suggested packages:
  apache2 | lighttpd | httpd python3-doc python3-tk python3-venv
python-cryptography-doc python3-cryptography-vectors
python-openssl-doc python3-openssl-dbg python3-setuptools
python3-paste python-webob-doc
  python3.11-venv python3.11-doc binutils binfmt-support readline-doc
The following NEW packages will be installed:
  ca-certificates javascript-common libjs-jquery libjs-sphinxdoc
libjs-underscore libnsl2 libpython3-stdlib libpython3.11-minimal
libpython3.11-stdlib libreadline8 libsqlite3-0 media-types openssl
python3
  python3-autocommand python3-cffi-backend python3-cheroot
python3-cherrypy3 python3-cryptography python3-inflect
python3-jaraco.classes python3-jaraco.collections
python3-jaraco.context python3-jaraco.functools
  python3-jaraco.text python3-minimal python3-more-itertools
python3-openssl python3-pkg-resources python3-portend
python3-repoze.lru python3-routes python3-simplejson python3-six
python3-tempora python3-tz
  python3-webob python3-zc.lockfile python3.11 python3.11-minimal
readline-common
0 upgraded, 41 newly installed, 0 to remove and 0 not upgraded.
Need to get 10.5 MB of archives.
After this operation, 36.8 MB of additional disk space will be used.

# trixie / sid
root@d13:~# apt install python3-cherrypy3
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  adwaita-icon-theme at-spi2-common at-spi2-core ca-certificates
dconf-gsettings-backend dconf-service fontconfig fontconfig-config
fonts-dejavu-core fonts-dejavu-mono fonts-liberation
  fonts-liberation-sans-narrow fonts-liberation2 gir1.2-atk-1.0
gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-glib-2.0 gir1.2-gtk-3.0
gir1.2-harfbuzz-0.0 gir1.2-pango-1.0 graphviz
gsettings-desktop-schemas
  gtk-update-icon-cache hicolor-icon-theme javascript-common
libabsl20220623 libann0 libaom3 libatk-bridge2.0-0 libatk1.0-0
libatspi2.0-0 libavahi-client3 libavahi-common-data libavahi-common3
libavif16 libblas3
  libbrotli1 libcairo-gobject2 libcairo2 libcdt5 libcgraph6
libcloudproviders0 libcolord2 libcups2 libdatrie1 libdav1d7 libdconf1
libde265-0 libdeflate0 libepoxy0 libfontconfig1 libfreetype6
libfribidi0
  libgav1-1 libgd3 libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin
libgdk-pixbuf2.0-common libgfortran5 libgirepository-1.0-1
libglib2.0-0 libglib2.0-data libgraphite2-3 libgtk-3-0 libgtk-3-bin
libgtk-3-common
  libgts-0.7-5 libgts-bin libgvc6 libgvpr2 libharfbuzz0b
libheif-plugin-aomenc libheif-plugin-dav1d libheif-plugin-libde265
libheif-plugin-x265 libheif1 libice6 libicu72 libjbig0 libjpeg62-turbo
libjs-jquery
  libjs-sphinxdoc libjs-underscore liblab-gamut1 liblapack3 liblcms2-2
liblerc4 libltdl7 libnsl2 libnuma1 libpango-1.0-0 libpangocairo-1.0-0
libpangoft2-1.0-0 libpangoxft-1.0-0 libpathplan4 libpixman-1-0
  libpng16-16 libpython3-stdlib libpython3.11-minimal
libpython3.11-stdlib libpython3.12-minimal libpython3.12-stdlib
librav1e0 libreadline8 librsvg2-2 librsvg2-common libsharpyuv0 libsm6
libsqlite3-0
  libsvtav1enc1d1 libthai-data libthai0 libtiff6 libwayland-client0
libwayland-cursor0 libwayland-egl1 libwebp7 libx265-199 libxaw7
libxcb-render0 libxcb-shm0 libxcomposite1 libxcursor1 libxdamage1
libxfixes3
  libxft2 libxi6 libxinerama1 libxkbcommon0 libxml2 libxmu6 libxpm4
libxrandr2 libxrender1 libxt6 libxtst6 libyuv0 media-types openssl
python3 python3-autocommand python3-cairo python3-cffi-backend
  python3-cheroot python3-cryptography python3-gi python3-gi-cairo
python3-graphviz python3-inflect python3-jaraco.collections
python3-jaraco.context python3-jaraco.functools python3-jaraco.text
python3-minimal
  python3-more-itertools python3-numpy python3-objgraph
python3-openssl python3-pkg-resources python3-portend python3-pydantic
python3-repoze.lru python3-routes python3-simplejson python3-six
python3-tempora
  python3-typing-extensions python3-tz python3-webob
python3-zc.lockfile python3.11 python3.11-minimal python3.12
python3.12-minimal readline-common shared-mime-info x11-common
xdg-user-dirs xdot xkb-data
Suggested packages:
  gsfonts graphviz-doc apache2 | lighttpd | httpd colord cups-common
libgd-tools low-memory-monitor gvfs libheif-plugin-ffmpegdec
libheif-plugin-jpegdec libheif-plugin-jpegenc libheif-plugin-j2kdec
  libheif-plugin-j2kenc libheif-plugin-rav1e libheif-plugin-svtenc
liblcms2-utils librsvg2-bin python3-doc python3-tk python3-venv
python-cryptography-doc python3-cryptography-vectors gcc gfortran
python3-dev
  python3-pytest python-objgraph-doc python-openssl-doc
python3-openssl-dbg python3-setuptools python3-paste python-webob-doc
python3.11-venv python3.11-doc binutils binfmt-support python3.12-venv
python3.12-doc
  readline-doc
The following NEW packages will be installed:
  adwaita-icon-theme at-spi2-common at-spi2-core ca-certificates
dconf-gsettings-backend dconf-service fontconfig fontconfig-config
fonts-dejavu-core fonts-dejavu-mono fonts-liberation
  fonts-liberation-sans-narrow fonts-liberation2 gir1.2-atk-1.0
gir1.2-freedesktop gir1.2-gdkpixbuf-2.0 gir1.2-glib-2.0 gir1.2-gtk-3.0
gir1.2-harfbuzz-0.0 gir1.2-pango-1.0 graphviz
gsettings-desktop-schemas
  gtk-update-icon-cache hicolor-icon-theme javascript-common
libabsl20220623 libann0 libaom3 libatk-bridge2.0-0 libatk1.0-0
libatspi2.0-0 libavahi-client3 libavahi-common-data libavahi-common3
libavif16 libblas3
  libbrotli1 libcairo-gobject2 libcairo2 libcdt5 libcgraph6
libcloudproviders0 libcolord2 libcups2 libdatrie1 libdav1d7 libdconf1
libde265-0 libdeflate0 libepoxy0 libfontconfig1 libfreetype6
libfribidi0
  libgav1-1 libgd3 libgdk-pixbuf-2.0-0 libgdk-pixbuf2.0-bin
libgdk-pixbuf2.0-common libgfortran5 libgirepository-1.0-1
libglib2.0-0 libglib2.0-data libgraphite2-3 libgtk-3-0 libgtk-3-bin
libgtk-3-common
  libgts-0.7-5 libgts-bin libgvc6 libgvpr2 libharfbuzz0b
libheif-plugin-aomenc libheif-plugin-dav1d libheif-plugin-libde265
libheif-plugin-x265 libheif1 libice6 libicu72 libjbig0 libjpeg62-turbo
libjs-jquery
  libjs-sphinxdoc libjs-underscore liblab-gamut1 liblapack3 liblcms2-2
liblerc4 libltdl7 libnsl2 libnuma1 libpango-1.0-0 libpangocairo-1.0-0
libpangoft2-1.0-0 libpangoxft-1.0-0 libpathplan4 libpixman-1-0
  libpng16-16 libpython3-stdlib libpython3.11-minimal
libpython3.11-stdlib libpython3.12-minimal libpython3.12-stdlib
librav1e0 libreadline8 librsvg2-2 librsvg2-common libsharpyuv0 libsm6
libsqlite3-0
  libsvtav1enc1d1 libthai-data libthai0 libtiff6 libwayland-client0
libwayland-cursor0 libwayland-egl1 libwebp7 libx265-199 libxaw7
libxcb-render0 libxcb-shm0 libxcomposite1 libxcursor1 libxdamage1
libxfixes3
  libxft2 libxi6 libxinerama1 libxkbcommon0 libxml2 libxmu6 libxpm4
libxrandr2 libxrender1 libxt6 libxtst6 libyuv0 media-types openssl
python3 python3-autocommand python3-cairo python3-cffi-backend
  python3-cheroot python3-cherrypy3 python3-cryptography python3-gi
python3-gi-cairo python3-graphviz python3-inflect
python3-jaraco.collections python3-jaraco.context
python3-jaraco.functools
  python3-jaraco.text python3-minimal python3-more-itertools
python3-numpy python3-objgraph python3-openssl python3-pkg-resources
python3-portend python3-pydantic python3-repoze.lru python3-routes
  python3-simplejson python3-six python3-tempora
python3-typing-extensions python3-tz python3-webob python3-zc.lockfile
python3.11 python3.11-minimal python3.12 python3.12-minimal
readline-common
  shared-mime-info x11-common xdg-user-dirs xdot xkb-data
0 upgraded, 181 newly installed, 0 to remove and 0 not upgraded.
Need to get 78.6 MB of archives.
After this operation, 363 MB of additional disk space will be used.


And as I wrote at the beginning, I think this isn't just a Ubuntu
component mismatch problem. I couldn't find a use case of objgraph
with cherrypy3 that is important enough to add all of this as
dependency.

Therefore now I wonder:
- Is there a use case that I overlooked that makes it worth having
this dependency?
- Or if not - would you be ok to also reduce it to a Suggests as I've
done in Ubuntu [4]?

[1]: https://bugs.launchpad.net/ubuntu/+source/cherrypy3/+bug/2047821
[2]: 
https://github.com/cherrypy/cherrypy/blob/30d9a141c67ecb958ce305810203d89d60ef318b/setup.py#L89
[3]: 
https://src.fedoraproject.org/rpms/python-cherrypy/blob/rawhide/f/python-cherrypy.spec
[4]: 
https://git.launchpad.net/~paelzer/ubuntu/+source/cherrypy3/commit/?id=f64dcc0f0c01b29a6b622e330cccce5cf2ee4dce

-- 
Christian Ehrhardt

Reply via email to