[Python-Dev] Python-3000 upgrade path

Guido van Rossum guido at python.org
Tue Mar 6 23:17:50 CET 2007


On 3/5/07, Facundo Batista <facundo at taniquetil.com.ar> wrote:
> Thomas Wouters wrote:
>
> > developers and people who develop their own software. I would like to hear
> > from people who have concrete doubts about this upgrade path. I don't mean
>
> Disclaimer: I'm not involved in Py3k, and not even tried it once. And
> don't know the details of the tool to "transform" Py2 to Py3.
>
> Having said that, the *only* fear I have, is how safe it will be. And
> here comes the explanation.
>
> I'm now in an enviroment where we rely on Python, and I advocates on it
> everyday. We use 2.3, and 2.4, some servers we're about to deploy have
> 2.5, and we'll use the lastest Py2.x everytime we deploy a new machine.
>
> But, as we have always running behind our ToDo, we don't have time to
> say "Ok, this server runs 2.3, how can I start using 2.5?". Too many
> servers, too many applications, too many
> undocumented-and-nobody-knows-about-it applications. And they all are
> applications running 7x24.

I know the feeling. Google still uses Python 2.2 for most apps. We're
supporting 2.4 as well, and hope to have the last apps migrated to 2.4
in a year or so. *Then* we'll start supporting a higher version --
probably 2.6 by then.

> And Py3k is around the corner, and I even heard some guys saying "If I'd
> spent time taking care that this app runs ok after changing a bit of
> it, I'll wait to Python 3000".

In your kind of env it's clearly too early to think about 3.0. You
shouldn't expect to be switching until a year after 3.0 is released,
probably.

> So, the enviroment is explained, now I go with "how safe it will be".
> I'd love to know that there'll be a tool that tells me, after running it
> over my application, Your app is "ready for migration"'. I do *not* care
> if it takes a lot of work to make the proper changes, but I need to feel
> confident that after running the last changed version during a week in,
> say, Py2.7, and no warnings appear, and the "verification tool" say
> green light, I can start running it in Py3k. And look at it a week more.
> And say "life is great", :)

You need comperhensive unit tests too. Then: *If* you get the green
light from 2.6's py3k warning mode, *and* the conversion tool produces
syntactically correct code without issuing warnings, *and* your unit
tests all pass, *then* I expect you'll be in about the same situation
as for any version upgrade in such an environment (e.g. 2.4 -> 2.5).
I.e. you need to do a big integration test and once that passes you
should be set for a stress-free transition. I think that's the best we
can hope for. I plan to do it this way at Google too.

> Anyway, I know how hard is it, and I regret not having the time I'd love
> to have to help you. All I can do is thank you.
>
> Thank you very much!

You're welcome!

> > One thing in particular I wonder about is the warning about mixing tabs and
> > spaces. Should it be in category 2) (on by default) or 3) (still off by
> > default, but part of -Wpy3k)?
>
> For me, I'd love to 2.6 start warning "you're mixing tab and spaces,
> shame yourself!".

(The English say "shame on you" :-) While I'd like to do this too I
don't know how many folks there are out there who have no way to
suppress the warning (because they're end users of a script someone
else wrote for them). I think it may be more of a development warning,
so I think category is appropriate.

-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)


More information about the Python-Dev mailing list