

Heroku now supporting Python version switching, and Python 3 - whalesalad
https://devcenter.heroku.com/articles/python-support#runtimes

======
deepakprakash
Its really nice to see them bringing in even more flexibility in platforms and
environments.

I just hope they had taken a little bit more care in ensuring backward
compatibility - both my apps (which I have been running for 7+ months) lost
code deployment ability (errors on deploy). The fact that it happened exactly
at a time we discovered a major issue in our code base and were stuck without
being able to push hot fixes was a major bummer.

Shot off an email to their support 2 hours back - haven't heard back yet.

Fortunately, we sniffed the issue to the new buildpack and found a work around
by pointing our apps to use an older buildpack
(<https://devcenter.heroku.com/articles/buildpacks>). While it caused us real
heartburn for quite some time, kudos to them for building an infrastructure
that is extremely configurable (which enabled the workaround).

Update: Heroku support got back with the same work around. They are debugging
the issue with the new buildpack.

~~~
okhan
We have a similar problem - the upgrade means our slugs have to be recompiled,
and heroku's slug compiler times out after 15 minutes. That sounds like a long
time, but the development version of gevent can take a good 5-10 minutes to
build.

We got an email back from heroku suggesting we push with half the dependencies
first, then the other half. Not an ideal solution, as it would take our
production app offline.

------
oellegaard
Cool that its possible to change it, but I don't see any reason to introduce a
"runtime.txt" file - seems very random. Would be better with a json file to
put in arbitrary settings for the project (I think this is how its done with
node.js on heroku, correct me if I'm wrong).

~~~
kenneth_reitz
This was very carefully considered. A blog post explaining all of the design
decision will be published in the near future.

Essentially, I wanted to use setup.cfg's new 'requires-python' directive.
However, distutils2 has been stalled and its future is in question. Distlib
was also considered, but it's also quite controversial.

There are some other exciting Python packaging projects being developed
actively that seek to solve these problems. We plan to support these standards
when the time is right. In the meantime, a simple runtime.txt file suits
everyone's needs perfectly.

~~~
emperorcezar
Could you list out or elaborate on the other packaging projects being
developed? I'm very interested in getting involved with Python packaging.

Thanks.

~~~
kenneth_reitz
Nothing public at the moment, but you can learn more from Donald Stufft (the
guy behind crate.io) <https://twitter.com/dstufft>

------
Sami_Lehtinen
Q: I just wonder when Google App Engine catches up with Python 3. A: Not
anytime soon.
[https://code.google.com/p/googleappengine/issues/detail?id=9...](https://code.google.com/p/googleappengine/issues/detail?id=909)

------
rydgel
I love you Heroku.

~~~
kenneth_reitz
We love you too :)

------
goronbjorn
> By default, we run 64bit CPython 2.7.3

That's cool.

------
arunoda
Here is the samething for NodeJS -
<http://news.ycombinator.com/item?id=4957133>

~~~
iends
Still no websockets :(

~~~
arunoda
Yeah! That's because of their HTTP Proxy. Need official support from Heroku.

------
delano
What's the history behind the runtime.txt file?

~~~
raverbashing
Thank you Heroku for not shoveling this in an xml file

------
Spiritus
Did bin/post_compile get broken as well? Seems like it isn't running anymore
for me.

~~~
Spiritus
Got fixed.

------
hayksaakian
Hurrah, progress.

------
camus
neat ! does django and flask support python 3 too ?

~~~
jorde
Neither of them support Python 3 but upcoming [1] Django 1.3 will have an
experimental support. Luckily you can also other than web stuff on Heroku.

[1] <https://www.djangoproject.com/weblog/2012/mar/13/py3k/>

~~~
KenCochrane
I think you mean Django 1.5, Django 1.3 came out a couple of years ago.

~~~
jorde
I did, thinking of Python 3 messed up my brain.

