On Tue, Dec 10, 2019 at 11:11:09AM -0800, Yang Zhao wrote: > On Tue, Dec 10, 2019 at 2:30 AM SZEDER Gábor <szeder.dev@xxxxxxxxx> wrote: > > On Fri, Dec 06, 2019 at 04:33:19PM -0800, Yang Zhao wrote: > > > diff --git a/azure-pipelines.yml b/azure-pipelines.yml > > > index 37ed7e06c6..d5f9413248 100644 > > > --- a/azure-pipelines.yml > > > +++ b/azure-pipelines.yml > > > @@ -331,7 +331,18 @@ jobs: > > > displayName: linux-gcc > > > condition: succeeded() > > > pool: Hosted Ubuntu 1604 > > > + strategy: > > > + matrix: > > > + python27: > > > + python.version: '2.7' > > > + python37: > > > + python.version: '3.7' > > > steps: > > > + - task: UsePythonVersion@0 > > > + inputs: > > > + versionSpec: '$(python.version)' > > > + - bash: | > > > + echo "##vso[task.setvariable variable=python_path]$(which python)" > > > > I don't speak 'azure-pipelines.yml', so question: will this build Git > > and run the whole test suite twice, once with Python 2.7 and once with > > 3.7? I'm asking because 'git-p4' is the one and only Python script we > > have, with no plans for more, so running the whole test suite with a > > different Python version for a second time instead of running only the > > 'git-p4'-specific tests (t98*) seems to be quite wasteful. > > The CI scripts as it is currently does not separate compiling and testing for > non-Windows builds. I don't see a good way to only run a specific set of tests > given a particular environment without re-architecturing the CI pipeline. Building git and running the test suite is encapsulated in the 'ci/run-build-and-tests.sh' script, while installing dependencies is encapsulated in 'ci/install-dependencies.sh', just in case Azure Pipelines Linux images don't contain both Python 2 and 3 (Travis CI images contain 2.7 and 3.5) So I don't think it's necessary to touch 'azure-pipelines.yml' or '.travis.yml' at all. > Furthermore, there's a step in the build that hard-codes the > environment's python > path into the installed version of the script. This complicates being > able to even create > a `git-p4` that runs under different python environments in Azure > Pipelines due to how > `UsePythonVersion@0` pulls python into version-specific directories. The PYTHON_PATH that we build 'git p4' with can be a symbolink link, and then choosing which Python version to use is only a matter of pointing that symbolic link to the python binary of the desired version. In fact our default PYTHON_PATH is '/usr/bin/python', which is a symbolic link pointing to 'python2.7' on Ubuntu 16.04, including the Travis CI's images that we use. > I haven't dug into > why this hardcoding is done in the first place. > > So, the question is if it's worth doing this work now when the desire > seems to be dropping > python-2.7 completely in the (near?) future. > > -- > Yang