Page MenuHomeSolus

Update Python to 3.7.0
Open, WishlistPublic


Among the major new features in Python 3.7 are:

  • PEP 539, new C API for thread-local storage
  • PEP 545, Python documentation translations
  • New documentation translations: Japanese, French, and Korean.
  • PEP 552, Deterministic pyc files
  • PEP 553, Built-in breakpoint()
  • PEP 557, Data Classes
  • PEP 560, Core support for typing module and generic types
  • PEP 562, Customization of access to module attributes PEP 563, Postponed evaluation of annotations PEP 564, Time functions with nanosecond resolution
  • PEP 565, Improved DeprecationWarning handling PEP 567, Context Variables
  • Avoiding the use of ASCII as a default text encoding (PEP 538, legacy C locale coercion and PEP 540, forced UTF-8 runtime mode)
  • The insertion-order preservation nature of dict objects is now an official part of the Python language spec.
  • Notable performance improvements in many areas.

Please see What’s New In Python 3.7 for more information.

Source tarball:
MD5: eb8c2a6b1447d50813c02714af4681f3

yaomtc created this task.Aug 22 2018, 7:07 PM

Note that python 3.7 is not backwards compatible with 3.6

In particular PEP 479 changes will compile and fail at runtime. Other changes I believe will cause it to fail to build/install (which would only apply to those packages using python

Note that python 3.7 is not backwards compatible with 3.6

Would that necessitate a separate package, then, until some indeterminate future date?

Not usually. We will likely be updating python3 once it has been determined that all of our python3 packages are unaffected by the changes.

JoshStrobl triaged this task as Wishlist priority.Oct 16 2018, 11:30 PM
JoshStrobl moved this task from Backlog to Improvement on the Software board.

How is this coming along? It's not that I need 3.7, but a couple of months have passed now, so I was just curious to see if there was any update on this :)

I guess this will become a priority soon as from next release the branch 3.6 won't be supported anymore.

dlukes added a subscriber: dlukes.Apr 14 2019, 7:30 AM

It will be quite funny if Debian has python 3.7 stable before Solus 😛 (Buster should be shipping with 3.7 in the next few months)

Updating python3 is not a small task. Over 100 packages need to be tested.

Security fixes on Python 3.6 will be shipped until december 2021 (as per PEP 494).

@DataDrake That's … a lot. Is there any (easyish) way for me to help?

Updating python3 is not a small task. Over 100 packages need to be tested.

I can help too!

Can't we reduce the set of python packages to test by running their unit tests?

kyrios123 added a comment.EditedMay 21 2019, 11:40 AM

One of the reason for which I don't even try is that many packages depends on each other; like package A depends on package B and package B depends on package A (at least for the unit tests)... So it's not obvious to determine the rebuild order. I guess some unit tests have to be temporarily disabled during such exercices.

Repeat after me kids: "Unit tests are not integration tests!"

I'm not expecting anything earth-shattering, but upgrading to 3.7 will require 100% rebuilds and unit tests won't cover everything.

Btw, when do we start removing python2 support? I mean, I wanted to remove python2 support on some packages but packages like spyder are stopping it. When do we start nuking them since nobody use spyder instead of spyder3?

People do use spyder. We get reminded every time it breaks. It'll be among the last thing to go, along with ypkg2, eopkg, and the solus-sc.