> So, 2.6 or 2.7?

I'm totally in favor of using the latest and greatest that's available.

As additional background: Python 2.7 is the last major release in the
Python 2 line [1].  So the next time we have this discussion about
upgrading our Python requirement, we won't be choosing between version
2.8 and version 3.x.

Supposing there is a strong negative reaction to requiring 2.7, I
wonder if it would be feasible to automatically install 2.7 into our
virtualenv and use only that Python throughout our build process.
Then we could upgrade that version whenever we wanted to; users who
didn't have a sufficiently new Python would simply download and
install it as part of their build.

Anyway, I hope that's not necessary, but I think even doing that would
be better than sticking with an old Python in perpetuity.

-Justin

[1] http://wiki.python.org/moin/Python2orPython3

On Sun, Sep 9, 2012 at 3:54 PM, Gregory Szorc <g...@mozilla.com> wrote:
> The subject of which version of Python to require to build the tree came up
> in bug 784841.
>
> We currently require Python >= 2.5 but <3 to build the tree. The main reason
> for the 2.5 requirement is the Linux build slaves still run Python 2.5.
> Those of us who code Python for the tree have long wanted to require at
> least 2.6 because 2.5 is missing many desired features. And, since 2.6+ is
> ubiquitous these days, people (sometimes unknowingly) target it (because
> it's what's installed locally) and then have to go through trouble (or tree
> breakage) to backport compatibility to 2.5. Personally, I feel that
> targeting 2.5 is extremely painful (especially once you've used 2.6+) that I
> sometimes get discouraged from landing new features to the build system or
> test suites because I don't want to deal with 2.5 compatibility.
>
> I'm pretty sure that no reasonably sized faction will have complaints about
> bumping up the minimum version to 2.6. So, the question becomes whether we
> should jump all the way to 2.7.
>
> I believe we should.
>
> Taking the long view, we will eventually need to switch to Python 3. Our
> migration to Python 3 will likely involve porting all the code to
> simultaneously run on both 2.x and 3.x. Python 2.7 has more backported
> features from Python 3 than Python 2.6, so ensuring dual compatibility while
> employing useful and convenient newer features [1] should be easier with
> 2.7.
>
> Shorter term, 2.7 is the superior Python release. There are literally dozens
> of bug fixes and minor newer features. Individually, these don't seem like
> much. Cumulatively, they represent a lot of saved time and pain.
>
> Objections to requiring 2.7 will likely be about it not being installed
> everywhere out of the box. Let's examine that.
>
> MozillaBuild has shipped with Python 2.7 since November 2011. So, Windows is
> taken care of.
>
> OS X 10.7+ ship with Python 2.7. No action necessary. OS X 10.6 ships with
> 2.6. However, 2.7 is easy to install through Homebrew, MacPorts, or an
> official installer available through python.org. I believe the same is true
> for 10.5. I don't consider this to be a hurdle on OS X, especially since we
> already require similar steps for other required packages there.
>
> Linux distros are all over the map. Many include 2.7 as part of the standard
> distribution. If they don't, they often include a "python27" package. Or, at
> least it is a popular enough package that someone on the internets provides
> an RPM, .deb, etc. We would just need to point people at those in the build
> instructions on MDN.
>
> In the worst case, you will need to compile Python from source. This is
> literally |./configure && make && make install|. Not difficult if you ask
> me.
>
> Now, for those who need them (and that number goes down with time as 2.7
> becomes more prevalent than 2.6), these will be extra steps. And, every
> extra step makes getting started for first-time developers a little harder.
> In the grand scheme of all the steps required to build the tree today, I
> don't think it's such a big deal. Besides, work is currently being done to
> enable one-line system bootstrap to help people initially configure their
> systems [2]. Once landed, concerns about setting up systems to build the
> tree should be rendered irrelevant for supported platforms.
>
> Some may say "why not go all the way and require Python 3?" Well, "require"
> is a strong word. In my opinion we need to "support" it first. This is
> because we almost certainly want to avoid a flag day conversion because it
> would be a huge headache for releng and everyone else. This means a period
> where we simultaneously support 2.x and 3.x. Once we have dual support, then
> we can talk about requiring 3.x.
>
> So, 2.6 or 2.7?
>
> [1] http://docs.python.org/release/2.7.3/whatsnew/2.7.html
> [2] https://bugzilla.mozilla.org/show_bug.cgi?id=774112
> _______________________________________________
> dev-platform mailing list
> dev-platform@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-platform
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to