Hello!
The first beta for Python 3.7 is out. It will hopefully get into Fedora
soon as python37.
After it comes out of beta, we'll upgrade python3 to it.
The What's New list is at: https://docs.python.org/3.7/whatsnew/3.7.html
One thing that's interesting for packagers is PEP 552: Deterministic
pycs: https://www.python.org/dev/peps/pep-0552/
Let me summarize in my own words.
A new opt-in mode for byte-compilation makes .pyc (bytecode cache) files
depend only on the contents of the corresponding source file.
If we use this, it will slow down imports, because the whole source file
would need to be read and hashed in order to verify if a .pyc file is
valid. (Currently, metadata like the modification time and file size is
used.)
To speed things up, there's an option, UNCHECKED_HASH, which skips cache
validation entirely. Using this would mean that if you modify a .py
source file installed by RPM, the changes wouldn't take effect (the .py
contents would only be shown in tracebacks).
Modifying installed files in production is extremely bad practice, of
course, but it's quite useful for debugging on throw-away systems. If we
adopt UNCHECKED_HASH, anyone doing it will have to remember to remove
the corresponding .pyc file.
Honestly, I'm not sure we want to use this in Fedora. Is anyone here
into reproducible builds, to make a better argument for this?
--
Petr Viktorin
Howdy! My name is Carl. I'm a Linux Engineer at Rackspace. Part of my job is running the IUS project [0]. I also maintain numerous packages in Fedora and EPEL, both for work and personal reasons.
I'd like to join the Python SIG. I'm primarily interested in EPEL python34/python36 packages. I'd also like to help with python2-to-python3 porting efforts in Fedora. I already got my "Parselmouth I" badge, and would like to unlock the other levels.
Packaging is what I'm most passionate about, but I do a small amount of Python development as well. Usually this is focused around whatever other task I need to accomplish. Earlier this year I published my first module on PyPI. It's called repomd [1], and I use it to have an object-oriented interface for getting package info out of yum repositories. If that sounds interesting to you, pull requests are welcome.
[0]: https://ius.io
[1]: https://pypi.org/project/repomd/