[arch-dev-public] Plan for python upgrade

Aaron Griffin aaronmgriffin at gmail.com
Sun Oct 5 17:34:39 EDT 2008

On Sat, Oct 4, 2008 at 12:54 AM, Eric Belanger
<belanger at astro.umontreal.ca> wrote:
> On Sat, 4 Oct 2008, Allan McRae wrote:
>> Allan McRae wrote:
>>> Hi everybody,
>>> Python-2.6 is out and Python-3.0 is scheduled for release in a couple of
>>> weeks.  People have been asking how I am going to handle the update so I
>>> thought I'd post a summary here.
>>> <snip>
>> According to the number of emails in my inbox (which has reached well into
>> double figures), my plan for the python 2.6 and 3.0 upgrade is rather
>> controversial.  So, I thought that I would add some more justification here
>> and point out that if people want to comment on the strategy they can do so
>> by replying to public mailing lists because it is getting repetitive I will
>> no longer be replying individually to people.
>> Here are the possible upgrade strategies.
>> Plan 1:
>>  python = python3.0
>>  python2 = python2.6
>> Plan 2:
>>  python = python2.6
>>  python3 = python3.0
>>  These are the advantages/disadvantages of these plans as far as I can
>> see. Many programs point at "/usr/bin/python" or "/usr/bin/env python".  For
>> Plan 1, the /usr/bin/python binary is python3.0 so that involves rebuilding
>> packages and changing them to point at "python2".  For some, this is as
>> simple as rebuilding.  Others require a simple sed statement.  Also, with
>> Plan 1, anything with a python depends/optdepends will need rebuilt.  So,
>> Plan 1 involves *a lot* more rebuilding that Plan 2 (around 125 packages vs
>> 47 packages in [extra]).
>> Plan 2 will also require adjusting programs built against python3 to point
>> at /usr/bin/python3 in their scripts and changing the dependency to python3
>> so this is a now versus later issue.  Also, with Plan 2, at some later stage
>> we will want the /usr/bin/python binary to be python-3.x and probably to
>> keep a legacy python-2.x package.  That tells me, that Plan 2 requires
>> moving to Plan 1 at a later time.
>> So in summary:
>> Plan 1 - Big rebuild now.  People complain "Allan broke it"...
>> Plan 2 - Medium rebuild now, drawn out transition, followed by medium/big
>> rebuild later. People complain "Allan broke it" long term...
>> I am going to go for Plan 1 unless someone convinces me the Plan 2 is a
>> better plan _long_ term.  I prefer short term pain for long term benefit
>> rather than long term pain for short term benefit.
>> Cheers,
>> Allan
> IMO, Plan 1 is the way to go as this is how we managed the qt3/qt upgrade.
> Does anyone has an idea on how many packages in the repo currently works
> with or need python3.0? If that number is zero or very small, we could
> update python to 2.6 and wait until that number increases before proceeding
> with Plan 1.  That will reduce the number of rebuilds because we will be
> replacing rebuilds by package update that eventually would need to be done
> anyway.

I agree with plan 1, but perhaps we should do it as eric suggests.
Upgrade "python" to 2.6, do the rebuilds, and push things out of
testing. THEN we can do the python/python2 split up in testing.

More information about the arch-dev-public mailing list