This is done via a new argument in
build-launch whose value
3. The default is still
2, but that could
change in a few point releases.
A build of the default version will be retagged as
For Python 3, we chose the Python 3.8 provided by Deadsnakes
There are two other versions currently present in the image:
- /usr/bin/python3: standard version from Ubuntu 16.04, too old for Mercurial
- /opt/gitlab/embedded/bin/python3: (PATH default) a Python 3.7 that would have been suitable if we had the required headers to compile Mercurial for it.
Deadsnakes is a convenient source. Thanks to it, we didn't need to rewrite so much of our base install script (trimming, notably).
We decided to avoid the Deadsnake Python 3.7 version so that it's not possible to call inadvertently the one installed by GitLab (does not have Mercurial nor our libs).
That left us with 3.6 and 3.8.
Python 3.6 is too close to the minimal version supported by Mercurial (actually 3.6.2), it would have created doubts all along the way.
So the winner is Python 3.8, and it's also available for our source installation targets.