From Larry's release announcement:
================== Python 3.4 includes a range of improvements of the 3.x series, including hundreds of small improvements and bug fixes. Major new features and changes in the 3.4 release series include:
* PEP 428, a "pathlib" module providing object-oriented filesystem paths * PEP 435, a standardized "enum" module * PEP 436, a build enhancement that will help generate introspection information for builtins * PEP 442, improved semantics for object finalization * PEP 443, adding single-dispatch generic functions to the standard library * PEP 445, a new C API for implementing custom memory allocators * PEP 446, changing file descriptors to not be inherited by default in subprocesses * PEP 450, a new "statistics" module * PEP 451, standardizing module metadata for Python's module import system * PEP 453, a bundled installer for the *pip* package manager * PEP 454, a new "tracemalloc" module for tracing Python memory allocations * PEP 456, a new hash algorithm for Python strings and binary data * PEP 3154, a new and improved protocol for pickled objects * PEP 3156, a new "asyncio" module, a new framework for asynchronous I/O
To download Python 3.4.0 visit:
http://www.python.org/download/releases/3.4.0/ ==================
Direct link to the What's New guide: http://docs.python.org/3/whatsnew/3.4.html
Cheers, Nick.
On 03/17/2014 05:53 PM, Nick Coghlan wrote:
Direct link to the What's New guide: http://docs.python.org/3/whatsnew/3.4.html
Rereading that, I remembered there's more to it for Fedora than just "hey, here's a shiny new version of Python 3 to be packaged", and I don't mean the stuff Slavek is working on to let ensurepip use the system pip installation as a base.
Specifically, there may need to be a security-related change to the Python packaging guidelines, covering the appropriate use of isolated mode: http://docs.python.org/3/whatsnew/3.4.html#whatsnew-isolated-mode
There's also a simpler workaround for the issues with the standard streams when running things in the POSIX locale: setting "PYTHONIOENCODING=:surrogateescape" will deal with it for user mode scripts.
Cheers, Nick.
----- Original Message -----
On 03/17/2014 05:53 PM, Nick Coghlan wrote:
Direct link to the What's New guide: http://docs.python.org/3/whatsnew/3.4.html
Thanks, Nick!
Rereading that, I remembered there's more to it for Fedora than just "hey, here's a shiny new version of Python 3 to be packaged", and I don't mean the stuff Slavek is working on to let ensurepip use the system pip installation as a base.
Specifically, there may need to be a security-related change to the Python packaging guidelines, covering the appropriate use of isolated mode: http://docs.python.org/3/whatsnew/3.4.html#whatsnew-isolated-mode
What do you have in mind regarding packaging guidelines?
There's also a simpler workaround for the issues with the standard streams when running things in the POSIX locale: setting "PYTHONIOENCODING=:surrogateescape" will deal with it for user mode scripts.
Cheers, Nick.
Just BTW me and Matej Stuchlik are working on builds of Python 3.4 in Copr [1]. Everything got a bit more complex due to ensurepip: - python3 should have "Requires: python3-setuptools python3-pip" (this has already been discussed previously on this list, just mentioning) - I've created the rewheel library [2] that has a simple purpose of being able to repack a wheel from system-installed wheels - this means that we need system setuptools and pip packaged as wheels (packaging as wheels has not been standardized yet, so I'm just approaching it from the best angle I could come up with, see patches [3] and [4]) - to package system setuptools and pip as wheels, we first need to package them as normal packages, because we need these packages to be able to create wheels :) - which creates a nice dependency/boostraping cycle:
1) build python3 (no requires on setuptools or pip) 2) build python3-setuptools and python3-pip as normal python packages (not wheels) 3) build python3-wheel (we don't need this to be wheel-in-RPM ATM) 4) build python3-setuptools and python-pip (as wheel-in-RPM) 5) build python3 (add Requires: python3-setuptools, python3-pip)
I've got example patches of building setuptools and pip as wheel-in-RPM at [3] and [4] (note that the pip patch also contains some downstream only patches that I've created to achieve what we need; upstream won't probably accept them in this precise format, but the functionality should get upstream in some form).
Right now, we're working on integrating rewheel into ensurepip (a patch for that is at [5] - it's for beta4 IIRC).
We'll keep this list posted on the progress. When we manage to make this whole process work satisfiably, we'll: 1) formally document the whole process described above 2) start discussing options of accepting rewheel in Python upstream 3) start rebuilding more python3-* packages in the Copr repo to make sure that nothing (or nearly nothing) breaks and we can actually go on with the proposed Fedora Change
And then we'd like to concentrate on the Python3-as-a-default switch for a while.
Hope this all makes sense, all comments/suggestions are appreciated.
Slavek.
[1] http://copr.fedoraproject.org/coprs/bkabrda/python-3.4/builds/ [2] https://github.com/bkabrda/rewheel [3] https://github.com/bkabrda/rewheel/blob/master/python-setuptools-spec.patch [4] https://github.com/bkabrda/rewheel/blob/master/python-pip-spec.patch [5] https://github.com/bkabrda/rewheel/blob/master/ensurepip-rewheel.patch
python-devel@lists.fedoraproject.org