[arch-dev-public] [arch-dev] Packaging inconsistencies of python modules

Ray Rashif schiv at archlinux.org
Tue Apr 5 12:13:15 EDT 2011


At first I didn't want to bring this up openly, as a precaution, but I
suppose it's alright.

On 5 April 2011 21:37, Dan McGee <dpmcgee at gmail.com> wrote:
> As Stéphane said, we have a problem here in those periods where a
> package becomes python 3 compatible, is split, but all packages
> depending on it are not rebuilt. Even this would not satisfy all our
> issues as many packages optdepend on these modules, and/or are just
> installed for someone's script X on their system that we aren't
> tracking deps for in the first place. These two reasons make the
> rename/rebuild idea not fully work, in my opinion.

Yes, true. We're doing this now:

python-foo -> python2-foo:
  conflicts=('python-foo<$newver')

python-foo *new*:
  provides=('python3-foo')

python3-foo -> python-foo:
  provides=('python3-foo')
  conflicts=('python3-foo')
  replaces=('python3-foo')

If things depend on the old 'python-foo', we rebuild them. If things
like make/opt depends are missed, people file bug reports, and we
ammend as appropriate.

Two key points:

(1) The breakage comes only when doing an upgrade, and the new
'python-foo' gets into the system not because of any renaming or
replacement, but because $currentver < $newver.

(2) Thus, the uninformed user (which is basically all of us at such a
point in time) gets an unwanted "update"; a python2 module gets
replaced by a python3 one.

However, this is "solved" by (re)installing the renamed package.
Optionally, by this convention, all such updates could warrant an
announcement each. Alternatively, prepare a group of such updates, and
post an announcement to inform users to upgrade the system with their
important packages specified in the list:

pacman -Syu python2-importantfoo python2-importantbar

Granted, that is very troublesome. Someone (or many) will not be
prepared. But it's the only way. If we now begin to introduce
python3-* stuff to work around the problem, it all really becomes a
mess.

We can, of course, initiate another move to have 'python3' instead of
'python' (I don't think this one would be difficult since we already
do provision there).

Or, well, following NumPy, leave 'python' as-is and make it a
convention for modules to use a 'python3-' prefix, even though it
wouldn't look consistent with the python package. I have no doubt
people will start asking why we don't just rename 'python' to
'python3', then.


--
GPG/PGP ID: 8AADBB10


More information about the arch-dev-public mailing list