Seeing this on a linux machine: ```Collecting pant...
# general
p
Seeing this on a linux machine:
Copy code
Collecting pantsbuild.pants==1.28.0.dev1 (from -r /dev/fd/63 (line 36))
  ERROR: Could not find a version that satisfies the requirement pantsbuild.pants==1.28.0.dev1 (from -r /dev/fd/63 (line 36)) (from versions: 0.0.17, 0.0.18, 0.0.20, 0.0.21, 0.0.22, 0.0.23, 0.0.24, 0.0.25, 0.0.26, 0.0.27, 0.0.28, 0.0.29, 0.0.30, 0.0.31, 0.0.32, 0.0.33, 0.0.34, 0.0.35, 0.0.36, 0.0.37, 0.0.38, 0.0.39, 0.0.40, 0.0.41, 0.0.42, 0.0.43, 0.0.44, 0.0.45, 0.0.46, 0.0.47, 0.0.48, 0.0.49, 0.0.50, 0.0.51, 0.0.52, 0.0.53, 0.0.54, 0.0.55, 0.0.56, 0.0.57, 0.0.58, 0.0.59, 0.0.60, 0.0.61, 0.0.62, 0.0.63, 0.0.64, 0.0.65, 0.0.66, 0.0.67, 0.0.68, 0.0.69, 0.0.70, 0.0.71, 0.0.72, 0.0.73, 0.0.74, 0.0.75, 0.0.76, 0.0.77, 0.0.79, 0.0.80, 0.0.81, 0.0.82, 1.0.0rc1, 1.0.0rc2, 1.0.0rc3, 1.0.0, 1.0.1rc0, 1.0.1, 1.1.0rc0, 1.1.0rc1, 1.1.0rc2, 1.1.0rc3, 1.1.0rc4, 1.1.0rc5, 1.1.0rc6, 1.1.0rc7, 1.1.0rc8, 1.1.0rc9, 1.1.0, 1.2.0.dev0, 1.2.0.dev1, 1.2.0.dev2, 1.2.0.dev3, 1.2.0.dev4, 1.2.0.dev5, 1.2.0.dev6, 1.2.0.dev8, 1.2.0.dev9, 1.2.0.dev10, 1.2.0.dev11, 1.2.0.dev12, 1.2.0rc0, 1.2.0rc1, 1.2.0rc2, 1.2.0rc3, 1.2.0rc4, 1.2.0, 1.2.1rc0, 1.2.1, 1.3.0.dev0, 1.3.0.dev1, 1.3.0.dev2, 1.3.0.dev3, 1.3.0.dev4, 1.3.0.dev5, 1.3.0.dev6, 1.3.0.dev7, 1.3.0.dev8, 1.3.0.dev9, 1.3.0.dev10, 1.3.0.dev11, 1.3.0.dev12, 1.3.0.dev13, 1.3.0.dev14, 1.3.0.dev15, 1.3.0.dev16, 1.3.0.dev17, 1.3.0.dev18, 1.3.0.dev19, 1.3.0rc0, 1.3.0rc1, 1.3.0rc2, 1.3.0rc3, 1.3.0rc4, 1.3.0, 1.3.1rc0, 1.3.1rc1, 1.3.1rc2, 1.4.0.dev0, 1.4.0.dev1, 1.4.0.dev3, 1.4.0.dev4, 1.4.0.dev5, 1.4.0.dev6, 1.4.0.dev7, 1.4.0.dev8, 1.4.0.dev9, 1.4.0.dev10, 1.4.0.dev11, 1.4.0.dev13, 1.4.0.dev14, 1.4.0.dev15, 1.4.0.dev16, 1.4.0.dev17, 1.4.0.dev18, 1.4.0.dev19, 1.4.0.dev20, 1.4.0.dev22, 1.4.0.dev23, 1.4.0.dev24, 1.4.0.dev25, 1.4.0.dev26, 1.4.0.dev27, 1.4.0rc0, 1.4.0rc1, 1.4.0rc2, 1.4.0rc3, 1.4.0rc4, 1.4.0rc5, 1.4.0, 1.5.0.dev0, 1.5.0.dev1, 1.5.0.dev2, 1.5.0.dev3, 1.5.0.dev4, 1.5.0.dev5, 1.5.0rc0, 1.5.0rc1, 1.5.0, 1.5.1rc0, 1.5.1rc1, 1.5.1rc2, 1.6.0.dev0, 1.6.0.dev1, 1.6.0.dev2, 1.6.0rc0, 1.6.0rc1, 1.6.0rc2, 1.6.0rc3, 1.6.0, 1.7.0.dev0, 1.7.0.dev1, 1.7.0.dev2, 1.7.0rc0, 1.7.0rc1, 1.7.0, 1.8.0.dev0, 1.8.0.dev1, 1.8.0.dev2, 1.15.0.dev4, 1.15.0rc0, 1.15.0rc1, 1.15.0rc2, 1.15.0rc3, 1.15.0, 1.16.0.dev0, 1.16.0.dev1, 1.16.0.dev2, 1.16.0.dev3, 1.16.0.dev4, 1.16.0rc0, 1.16.0rc2, 1.16.0rc5, 1.16.0rc6, 1.16.0, 1.17.0.dev0, 1.17.0.dev1, 1.17.0rc0, 1.17.0rc1, 1.17.0rc2, 1.17.0, 1.18.0.dev0, 1.18.0.dev1, 1.18.0.dev2, 1.18.0rc0, 1.18.0rc1, 1.18.0, 1.19.0.dev0, 1.19.0rc0, 1.19.0rc1, 1.19.0, 1.20.0.dev0, 1.20.0.dev1, 1.20.0.dev2, 1.20.0rc0, 1.20.0rc1, 1.20.0rc2, 1.20.0, 1.21.0.dev0, 1.21.0.dev1, 1.21.0rc0, 1.21.0, 1.22.0.dev0, 1.22.0.dev1, 1.22.0.dev2, 1.22.0rc0, 1.22.0rc1, 1.22.0rc2, 1.22.0, 1.23.0.dev0, 1.23.0.dev1, 1.23.0.dev2, 1.23.0rc0, 1.23.0, 1.24.0.dev1, 1.24.0.dev2, 1.24.0.dev3, 1.24.0rc0, 1.24.0rc1, 1.24.0rc2, 1.24.0, 1.24.1rc0, 1.25.0.dev0, 1.25.0.dev1, 1.25.0.dev2, 1.25.0.dev3, 1.25.0rc0, 1.25.0rc1, 1.25.0, 1.26.0.dev0, 1.26.0.dev1, 1.26.0.dev2, 1.26.0rc0, 1.26.0rc1, 1.26.0rc2, 1.26.0, 1.27.0.dev0, 1.27.0.dev1, 1.27.0.dev2, 1.27.0.dev3, 1.27.0rc0, 1.28.0.dev0)
ERROR: No matching distribution found for pantsbuild.pants==1.28.0.dev1 (from -r /dev/fd/63 (line 36))
Any idea what I am doing wrong?
h
What linux server? 1.28.0.dev1 is manylinux2014, whereas we (falsely) claimed manylinux1 before
p
Linux ip-10-1-201-194 4.15.0-1065-aws #69-Ubuntu SMP Thu Mar 26 02:17:29 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
h
Are you able to find the Ubuntu version number, please?
p
it is an ubuntu 1804 machine on AWS Ec2
h
Oh. Huh, I would think Ubuntu 18.04 would be compatible with manylinux2014..something seems off
p
Screen Shot 2020-05-04 at 6.05.45 PM.png
๐Ÿ‘ 1
h
In Pants CI, weโ€™re using Ubuntu 16.04 to run Pants, so there might be something else going on than the Ubuntu version. cc @enough-analyst-54434. Iโ€™m not sure if you say we changed to manylinux2014? We did this because we now build with Centos7 instead of Centos6. Any ideas what this could be?
p
we should also run on newer versions of ubuntu of possible, i.e. 18.04 and the just release 20.04
h
Yes, but Pants needs to support 16.04 and 18.04. (Weโ€™re fine not supporting 14.04 because itโ€™s been EOL for some time.)
e
To see what python / Pex thinks about your machine:
Copy code
$ find ~/.pex/ -name INTERP-INFO | head -1 | xargs jq .supported_tags[0]
[
  "cp37",
  "cp37m",
  "manylinux2014_x86_64"
]
๐Ÿ’ฏ 1
So it thinks my machine is manylinux 2014 compliant.
@polite-garden-50641 I get similar using the stock ubuntu:18.04 image after installing python3.8{,-venv}:
Copy code
(test-3.8) root@db8e10a75e2d:/# pip install pantsbuild.pants==1.28.0.dev1
Collecting pantsbuild.pants==1.28.0.dev1
  Cache entry deserialization failed, entry ignored
  Could not find a version that satisfies the requirement pantsbuild.pants==1.28.0.dev1 (from versions: 0.0.17, 0.0.18, 0.0.20, 0.0.21, 0.0.22, 0.0.23, 0.0.24, 0.0.25, 0.0.26, 0.0.27, 0.0.28, 0.0.29, 0.0.30, 0.0.31, 0.0.32, 0.0.33, 0.0.34, 0.0.35, 0.0.36, 0.0.37, 0.0.38, 0.0.39, 0.0.40, 0.0.41, 0.0.42, 0.0.43, 0.0.44, 0.0.45, 0.0.46, 0.0.47, 0.0.48, 0.0.49, 0.0.50, 0.0.51, 0.0.52, 0.0.53, 0.0.54, 0.0.55, 0.0.56, 0.0.57, 0.0.58, 0.0.59, 0.0.60, 0.0.61, 0.0.62, 0.0.63, 0.0.64, 0.0.65, 0.0.66, 0.0.67, 0.0.68, 0.0.69, 0.0.70, 0.0.71, 0.0.72, 0.0.73, 0.0.74, 0.0.75, 0.0.76, 0.0.77, 0.0.79, 0.0.80, 0.0.81, 0.0.82, 1.0.0rc1, 1.0.0rc2, 1.0.0rc3, 1.0.0, 1.0.1rc0, 1.0.1, 1.1.0rc0, 1.1.0rc1, 1.1.0rc2, 1.1.0rc3, 1.1.0rc4, 1.1.0rc5, 1.1.0rc6, 1.1.0rc7, 1.1.0rc8, 1.1.0rc9, 1.1.0, 1.2.0.dev0, 1.2.0.dev1, 1.2.0.dev2, 1.2.0.dev3, 1.2.0.dev4, 1.2.0.dev5, 1.2.0.dev6, 1.2.0.dev8, 1.2.0.dev9, 1.2.0.dev10, 1.2.0.dev11, 1.2.0.dev12, 1.2.0rc0, 1.2.0rc1, 1.2.0rc2, 1.2.0rc3, 1.2.0rc4, 1.2.0, 1.2.1rc0, 1.2.1, 1.3.0.dev0, 1.3.0.dev1, 1.3.0.dev2, 1.3.0.dev3, 1.3.0.dev4, 1.3.0.dev5, 1.3.0.dev6, 1.3.0.dev7, 1.3.0.dev8, 1.3.0.dev9, 1.3.0.dev10, 1.3.0.dev11, 1.3.0.dev12, 1.3.0.dev13, 1.3.0.dev14, 1.3.0.dev15, 1.3.0.dev16, 1.3.0.dev17, 1.3.0.dev18, 1.3.0.dev19, 1.3.0rc0, 1.3.0rc1, 1.3.0rc2, 1.3.0rc3, 1.3.0rc4, 1.3.0, 1.3.1rc0, 1.3.1rc1, 1.3.1rc2, 1.4.0.dev0, 1.4.0.dev1, 1.4.0.dev3, 1.4.0.dev4, 1.4.0.dev5, 1.4.0.dev6, 1.4.0.dev7, 1.4.0.dev8, 1.4.0.dev9, 1.4.0.dev10, 1.4.0.dev11, 1.4.0.dev13, 1.4.0.dev14, 1.4.0.dev15, 1.4.0.dev16, 1.4.0.dev17, 1.4.0.dev18, 1.4.0.dev19, 1.4.0.dev20, 1.4.0.dev22, 1.4.0.dev23, 1.4.0.dev24, 1.4.0.dev25, 1.4.0.dev26, 1.4.0.dev27, 1.4.0rc0, 1.4.0rc1, 1.4.0rc2, 1.4.0rc3, 1.4.0rc4, 1.4.0rc5, 1.4.0, 1.5.0.dev0, 1.5.0.dev1, 1.5.0.dev2, 1.5.0.dev3, 1.5.0.dev4, 1.5.0.dev5, 1.5.0rc0, 1.5.0rc1, 1.5.0, 1.5.1rc0, 1.5.1rc1, 1.5.1rc2, 1.6.0.dev0, 1.6.0.dev1, 1.6.0.dev2, 1.6.0rc0, 1.6.0rc1, 1.6.0rc2, 1.6.0rc3, 1.6.0, 1.7.0.dev0, 1.7.0.dev1, 1.7.0.dev2, 1.7.0rc0, 1.7.0rc1, 1.7.0, 1.8.0.dev0, 1.8.0.dev1, 1.8.0.dev2, 1.15.0.dev4, 1.15.0rc0, 1.15.0rc1, 1.15.0rc2, 1.15.0rc3, 1.15.0, 1.16.0.dev0, 1.16.0.dev1, 1.16.0.dev2, 1.16.0.dev3, 1.16.0.dev4, 1.16.0rc0, 1.16.0rc2, 1.16.0rc5, 1.16.0rc6, 1.16.0, 1.17.0.dev0, 1.17.0.dev1, 1.17.0rc0, 1.17.0rc1, 1.17.0rc2, 1.17.0, 1.18.0.dev0, 1.18.0.dev1, 1.18.0.dev2, 1.18.0rc0, 1.18.0rc1, 1.18.0, 1.19.0.dev0, 1.19.0rc0, 1.19.0rc1, 1.19.0, 1.20.0.dev0, 1.20.0.dev1, 1.20.0.dev2, 1.20.0rc0, 1.20.0rc1, 1.20.0rc2, 1.20.0, 1.21.0.dev0, 1.21.0.dev1, 1.21.0rc0, 1.21.0, 1.22.0.dev0, 1.22.0.dev1, 1.22.0.dev2, 1.22.0rc0, 1.22.0rc1, 1.22.0rc2, 1.22.0, 1.23.0.dev0, 1.23.0.dev1, 1.23.0.dev2, 1.23.0rc0, 1.23.0, 1.24.0.dev1, 1.24.0.dev2, 1.24.0.dev3, 1.24.0rc0, 1.24.0rc1, 1.24.0rc2, 1.24.0, 1.24.1rc0, 1.25.0.dev0, 1.25.0.dev1, 1.25.0.dev2, 1.25.0.dev3, 1.25.0rc0, 1.25.0rc1, 1.25.0, 1.26.0.dev0, 1.26.0.dev1, 1.26.0.dev2, 1.26.0rc0, 1.26.0rc1, 1.26.0rc2, 1.26.0, 1.27.0.dev0, 1.27.0.dev1, 1.27.0.dev2, 1.27.0.dev3, 1.27.0rc0, 1.28.0.dev0)
No matching distribution found for pantsbuild.pants==1.28.0.dev1
(test-3.8) root@db8e10a75e2d:/# pip --version
pip 9.0.1 from /test-3.8/lib/python3.8/site-packages (python 3.8)
If I pip install -U pip and retry - it resolves the pantsbuild.pants wheel and then fails further down the line just because the image is missing stuff needed by pywatchman.
Pex gets here out of the box though since it embeds a modern pip.
And - fwiw, the jq check abouve on ubuntu:18.04 confirms Python thinks it is manylinux2014 compliant.
h
Oh, so do you think this is might be related to the recent pywatchman changes, perhaps, rather than changing to manylinux2014?
e
I doubt it. I think the problem is the pip version is old. My repro-ish above was probably buried, but the stock ubuntu:18.04 image python3.8 carries pip ~9 and modern pip is ~20.
๐Ÿ‘ 2
p
how do I upgrade the pip version pants uses?
e
The pants script allows passing VENV_VERSION: https://github.com/pantsbuild/setup/blob/gh-pages/pants#L21 Newer virtualenv bundles newer pip, so this would nominally do it. I tried just now though and virtualenv latest (20.020) has a different tarball structure than what the pants scrpt expects ๐Ÿ˜• So ... the answer is you'll need to hand hack your pants script and later replace it with a repaired pantsbuild/setup version of the script that either gets virtualenv differently or simply always runs pip -U pip as a 1st step in creating the pants venv.
Oh wait, the script already auto-upgrades pip.
๐Ÿ‘ 1
Can you be more explicit about the error you posted above - maybe show the full command line and add other context? Is this what you get when running
./pants ...
for the 1st time on ubuntu 18.04?
p
so what fails is not pants itself... sorry for the confusion. we fail to install pants as part of a VE install:
pip install --no-cache-dir -r <(./pants --no-enable-pantsd dependencies  --type=3rdparty --transitive 3rdparty/python::) >&2
e
What does pip --version say?
As per above - if its old - my repro found ~9 for stock ubuntu:18.04, you must run
pip install -U pip
๐Ÿ‘ 1
p
Got it. that fixes the issue. thanks!
๐ŸŽ‰ 1