Live data from Hacker News

Python 3.7.2 and 3.6.8 are now available

pythoninsider.blogspot.com

11–20 of 40 posts

Re: Python 3.7.2 and 3.6.8 are now available

#11

Earlier quoted context omitted.

Per the 3.6 release schedule[1], 3.6 was the stable branch until the final release of 3.7.0. After that, it was to receive two more bug fix releases and then switch over to security fixes. 3.7.0 final was released a few months ago, so this is the last bugfix release for 3.6.x. 3.7.0 is now considered "stable". However, 3.6.8 will still receive security fixes for anyone that is depending on it. This is generally done…

How does that justify 4 different 3.x branches continually updated in the last year, from 3.4 to 3.7? That still doesn't explain why it makes sense for python devs to be split among what, 4 different 3.x branches in the last year? I can understand keeping one stable LTS branch and one "up to date" branch, but the current system seems like a waste of resources and extra complexity, though I assume there's a good reaso…

> I can understand keeping one stable LTS branch and one "up to date" branch

If you did that then lots of distro packagers would just stay on the LTS until the next one comes along, and so you'd increase the number of users that are on older versions. With the selected approach, there is more work involved to backport a fix to the 4-5 supported versions, but this gives the benefit that OS distros can bump their Python versions more frequently, and so end users get updated Python3 features more often.

Re: Python 3.7.2 and 3.6.8 are now available

#12
post #9

Earlier quoted context omitted.

Per the 3.6 release schedule[1], 3.6 was the stable branch until the final release of 3.7.0. After that, it was to receive two more bug fix releases and then switch over to security fixes. 3.7.0 final was released a few months ago, so this is the last bugfix release for 3.6.x. 3.7.0 is now considered "stable". However, 3.6.8 will still receive security fixes for anyone that is depending on it. This is generally done…

On the note of stability, it's interesting to see which Linux distributions ship with which versions. Debian Stretch for instance ships with 3.5.3-1 while Ubuntu 18.04 LTS runs 3.6.5-3. I know some who would argue that Debian is generally the more stable server and Ubuntu more bleeding edge.

Debian Stretch was released June 2017 and Ubuntu 18.04, well, in April 2018, so its not too surprising that they ship with different Python versions.

I do find it surprising that Linux distributions don’t always choose upstream LTS versions for their releases, it just feels like a big waste of effort to backport fixes across many versions.

Re: Python 3.7.2 and 3.6.8 are now available

#13

Something I've been wondering for years: I understand the rift between 2.x and 3.x.. But what is the rationale for maintaining multiple 3.x branches? And how do I choose the right branch for a fresh project? From experience, it seems like it doesn't really matter.

This doesn't invalidate your question, but an interesting comparison: Historically the same situation of fairly regular minor releases was the norm, even for Python 2.x. It was only when Python 3 was released that Python 2.x was fixed on Python 2.7 for a while (for a generous definition of "a while"), so that was the anomaly.

Re: Python 3.7.2 and 3.6.8 are now available

#15

Earlier quoted context omitted.

Per the 3.6 release schedule[1], 3.6 was the stable branch until the final release of 3.7.0. After that, it was to receive two more bug fix releases and then switch over to security fixes. 3.7.0 final was released a few months ago, so this is the last bugfix release for 3.6.x. 3.7.0 is now considered "stable". However, 3.6.8 will still receive security fixes for anyone that is depending on it. This is generally done…

How does that justify 4 different 3.x branches continually updated in the last year, from 3.4 to 3.7? That still doesn't explain why it makes sense for python devs to be split among what, 4 different 3.x branches in the last year? I can understand keeping one stable LTS branch and one "up to date" branch, but the current system seems like a waste of resources and extra complexity, though I assume there's a good reaso…

I guess you aren't missing anything. They do security releases for 5 years after the release of a minor version:

https://devguide.python.org/devcycle/#security-branches

Arbitrary, but not senseless or anything.

If you drill into the security releases, they are pretty small patches backported from later releases, not a huge burden.

Re: Python 3.7.2 and 3.6.8 are now available

#16
Dicts now retain order now (in other words all dicts are ordered dicts). I support this, but I also guarantee this is going to bite me in the ass at least once sharing notebooks with someone on an older version of python as I expect to use this liberally. Ah well.

Re: Python 3.7.2 and 3.6.8 are now available

#17

Dicts now retain order now (in other words all dicts are ordered dicts). I support this, but I also guarantee this is going to bite me in the ass at least once sharing notebooks with someone on an older version of python as I expect to use this liberally. Ah well.

Just to clarify. This behavior is expected since 3.6:

As of Python 3.6, for the CPython implementation of Python, dictionaries remember the order of items inserted. This is considered an implementation detail in Python 3.6; you need to use OrderedDict if you want insertion ordering that's guaranteed across other implementations of Python.

As of Python 3.7, this is no longer an implementation detail and instead becomes a language feature.

[1] https://stackoverflow.com/questions/39980323/are-dictionarie...

Re: Python 3.7.2 and 3.6.8 are now available

#18

Something I've been wondering for years: I understand the rift between 2.x and 3.x.. But what is the rationale for maintaining multiple 3.x branches? And how do I choose the right branch for a fresh project? From experience, it seems like it doesn't really matter.

Per the 3.6 release schedule[1], 3.6 was the stable branch until the final release of 3.7.0. After that, it was to receive two more bug fix releases and then switch over to security fixes. 3.7.0 final was released a few months ago, so this is the last bugfix release for 3.6.x. 3.7.0 is now considered "stable". However, 3.6.8 will still receive security fixes for anyone that is depending on it. This is generally done…

Why do you say 3.7.0 is more "stable" than 3.7.2?

3.7.2 is a maintenance release of the 3.7 series...I am not aware of anyone who considers 3.7.0 the version you should stay with.

Re: Python 3.7.2 and 3.6.8 are now available

#19

Something I've been wondering for years: I understand the rift between 2.x and 3.x.. But what is the rationale for maintaining multiple 3.x branches? And how do I choose the right branch for a fresh project? From experience, it seems like it doesn't really matter.

> But what is the rationale for maintaining multiple 3.x branches?

Introducing new features bears an elevated risk of breaking thingss. Hence stable systems (and in extension, stable distributions like Debian) tend to use stable, bug and security fix only branches. This used to be more common.

Re: Python 3.7.2 and 3.6.8 are now available

#20
post #17

Dicts now retain order now (in other words all dicts are ordered dicts). I support this, but I also guarantee this is going to bite me in the ass at least once sharing notebooks with someone on an older version of python as I expect to use this liberally. Ah well.

Just to clarify. This behavior is expected since 3.6: As of Python 3.6, for the CPython implementation of Python, dictionaries remember the order of items inserted. This is considered an implementation detail in Python 3.6; you need to use OrderedDict if you want insertion ordering that's guaranteed across other implementations of Python. As of Python 3.7, this is no longer an implementation detail and instead become…

CPython implementation detail vs. Python language feature remains a relatively meaningless distinction.
Post reply on HN