On 24.03.2018 03:35, Simon McVittie wrote:
> Package: python3-distutils
> Version: 3.6.5~rc1-2
> Severity: wishlist
> X-Debbugs-Cc: debian-pyt...@lists.debian.org
> 
> I'm confused about the current status of distutils, and what should be
> done by packages that depend on it to be as future-proof as possible. I
> don't think I'm the only one confused by this, so it would be very
> helpful if a maintainer could clarify what the intention is so that
> other maintainers can do the right things.
> 
> When structural changes like this are needed, I think it would
> be useful for them to be represented by a bug (perhaps of the form
> "libpython3.6-stdlib: should not contain distutils" or something similar)
> that gives the reasons for the structural change and describes the
> action that should be taken by maintainers of dependent packages. This
> bug could be referenced in the changelog and would be an obvious central
> coordination point for whatever changes are needed, including follow-ups
> if unforeseen fallout means the plan has to change. The release team
> would probably also appreciate it being treated as a transition so that
> they can plan around it.
> 
> Since that didn't happen in this case, I'm opening this bug in the hope
> that it can fulfil a similar role.
> 
> So far, the sequence of events goes something like this:
> 
> * 13 December 2017: distutils moves from -stdlib into its own package
> * 20 March 2018: -stdlib stops depending on distutils, packages start
>   to fail to build from source
> * 22-23 March 2018: A small subset of distutils (__init__.py and version.py)
>   moves back to -stdlib

and once the current dh-python package moves to testing, dh-python will gain a
dependency on python3-distutils.

> I assume there is a reason (size on disk? dependencies? update
> frequency?) why most of distutils shouldn't be in -stdlib, but in the
> absence of a reference in the changelog, I can only guess at why that is.

distutils is a build tool, and we should not need it in a runtime environment.
It looks like .version is used too much in a runtime context, but that should be
the only subpackage used in a runtime context.  sysconfig should be preferred
over distutils.sysconfig in python3.

> When a small subset of distutils moved back, I assume that the
> intention was to un-break the relatively common(?) case of users of
> distutils.version that do not need the rest of the module, such as
> the gdbus-codegen tool in libglib2.0-dev-bin. However, it isn't clear
> whether the Python maintainers consider this to be a workaround to keep
> those packages working in the short term (in which case they need to
> pick up a new dependency on python3-distutils for the longer term), or
> whether distutils.version is going to remain part of the API of -stdlib
> in the long term (in which case packages like libglib2.0-dev-bin should
> not depend on the full -distutils package because that would negate the
> benefit of splitting it out).
> 
> I'm aware that structural changes that break dependencies are sometimes
> necessary in pursuit of a goal (I've done them myself, most recently
> moving glib-compile-resources to libglib2.0-dev-bin for #885019), but
> when making them, having a plan visible to everyone is beneficial.
> Please could you clarify the situation?
> 
> Related bug reports include:
> 
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=893755
> https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=893847
> 
> Thanks,
>     smcv
> 

Reply via email to