From f24ffa565703b402ccac84b507ba1fdf14490707 Mon Sep 17 00:00:00 2001 From: Philipp Wagner Date: Mon, 10 Feb 2020 13:58:31 +0000 Subject: [PATCH] Update setuptools and pip to parse more metadata The Ubuntu xenial-provided versions of setuptools and pip don't parse all metadata present in Python packages, especially not the "minimum required Python version" bit. More and more packages are using this information to limit Python 3.5-support to older versions of their packages. In this case, the problem was caused by the "zipp" package, which is a very remote dependency of fusesoc. Fixes #597 --- azure-pipelines.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 257e0501..bfe65d8a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -31,6 +31,12 @@ jobs: # Installing six is a workaround for pip dependency resolution: six is already # installed as system package with a version below the required one. # Explicitly installing six through pip gets us a supported version. + # + # Updating pip and setuptools is required to have these tools properly parse + # Python-version metadata, which some packages uses to specify that an older + # version of a package must be used for a certain Python version. If that + # information is not read, pip installs the latest version, which then fails + # to run. - bash: | sudo apt-get install -y \ python3 \ @@ -47,7 +53,8 @@ jobs: curl \ libelf-dev \ clang-format \ - && sudo pip3 install -U six fusesoc + && sudo pip3 install -U setuptools pip six \ + && sudo pip3 install -U fusesoc displayName: Install dependencies - bash: |