2.7.13 has multiple bugfixes and, notably, SNI support for certificates. This is something that may become necessary as older certificates expire or are upgraded to incorporate SNI.
This is challenging because it lands on the intersection between OS/system (/usr/bin/python) and user (I want Python version X).
Infra has been producing Python 2.7.13 CIPD bundles for a few months now. These bundles are believed to be deployable, but have an important caveat: they don't include non-standard Python packages. Scripts which take for granted the presence of certain Python packages (e.g., "Foundation" on Mac) will fail in this sort of case:
if sys.platform == 'darwin':
import objc
objc.mac_stuff()
Infra's solution to this is to use the "vpython" tool to build VirtualEnvs on top of the bare Python bundles. Therefore, usage of the CIPD Python bundles across all systems requires adoption of "vpython" for tools with system-specific dependencies.
That said, nothing is stopping an individual build or builder from installing the appropriate Python CIPD package and linking it into PATH for the duration of that build.
In the meantime, this effort will involve:
1) Refining the CIPD Python bundles.
2) Integrating Python bundle CIPD loading and PATH integration into "cipd_bootstrap_v2.py" for BuildBot builds.
3) Integrating Python bundle CIPD loading and PATH integration into Kitchen for SwarmBucket builds.
4) Deprecating "python.bat" usage on bots in favor of using whatever "python" is in PATH.
4a) Recipe Engine?
4b) gclient?
4c) Recipe scripts?
5) Augmenting Python executions with "vpython" to fill in missing system packages.
Comment 1 by d...@chromium.org
, Jul 11 2017