[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Fw: Python packaging, dependencies, upstream facilities



[Robert Collins, 2010-09-20]
> Path to a solution: use an API marker analgous to the ABI markers C
> libraries have. Incompatible changes to a package bump the package
> *name*. e.g.
> python-zope.publication2.3 to python-zope.publication2.4
> Compatible changes don't:
> python-zope.publication2.3-2.3.0ubuntu0 to
> python-zope.publication2.3-2.3.1ubuntu0

Gustavo does something like this with CherryPy (python-cherrypy and
python-cherrypy3 conflict with each other due to the same namespace,
though). I maintain python-jinja and python-jinja2 but my upstream
*did* change module name after breaking API (I will remove python-jinja
after releasing Squeeze).

I'm not sure we should try to solve this. IMHO we should try to convince
upstreams that breaking API/ABI so often is a bad thing instead.

Please note that:
* 3rd party Python module authors break API or ABI a lot, and I mean
  A LOT (sic!). Even if we'll just Provide: python-foo-API, that will
  produce a lot of new virtual packages and a lot of confusion,
* something as simple as changing --install-lib causes many Python
  modules to break (hardcoded paths, things like
  `os.path.join(os.path.dirname(__file__), '..', '..', 'share', 'foo')`,
  etc.) so playing with sys.path will require patching even more files,
* adding new source package (which is the easiest way to support one
  more upstream version at the same time) requires going thru NEW which
  would make ftp-masters very unhappy (dozens of NEW packages every month),
* maintaining 2 versions of the same module means twice as many work for
  both Debian maintainer and security team
* ...

I see only one sane way to fix the problem - changing Python interpreter
to recognize API from filenames, like foo.1.py foo.2.py foo.2.3.py
(with `import foo <= 2` as valid syntax) and let upstream authors decide
when to bump it, just like C guys do, but that's a topic for
python-devel mailing list...
-- 
Piotr Ożarowski                         Debian GNU/Linux Developer
www.ozarowski.pl          www.griffith.cc           www.debian.org
GPG Fingerprint: 1D2F A898 58DA AF62 1786 2DF7 AEF6 F1A2 A745 7645


Reply to: