Hey y'all, we upgraded from `2.8.1rc1` to `2.9.0.r...
# general
g
Hey y'all, we upgraded from
2.8.1rc1
to
2.9.0.rc0
yesterday. Noticed today that the pex files that end up getting deployed do not have executable permissions. The permissions are: •
2.8.1rc1
->
-rwxr-xr-x
2.9.0.rc0
->
-rwxr--r--
I've tried packaging locally and we end up with the correct permissions, seems the pex files created by our CI (Github, ubuntu-latest) are missing those two executable permissions. Any idea on what might cause this or how to remedy this?
e
Can you confirm the only free variable was the Pants version?
g
Can confirm, we reverted back to
2.8.1rc1
and permissions are looking like they were previously. Only other thing changed was moving
Copy code
[python]
interpreter_search_paths = ...
to
Copy code
[python-bootstrap]
search_path = ...
in pants.toml
e
I have absolutely no clue. The fact this works when you run it locally (on what OSes?) but doesn't in CI is not really comprehensible. The code that marks the PEX zip executable is here and ~8 years old: https://github.com/pantsbuild/pex/commit/736a072808c4df46b08220d9ca367b1623573037#diff-b09aecd75d70302f00f7852b6f[…]2c1fe3635c5790453ceaa06e460cR126
g
locally running in a ubuntu VM, feel like it's pretty close to the github "ubuntu-latest"
e
Yeah. So, you're as well equipped to answer this one as I am at this point. Maybe the python picked to build the PEX is different locally than remotely and that Python version has a bug / quirk wrt os.chmod?
That seems super dubious.
Does the Python picked have wiggle room in your setup? I.E.: Do you have interpreter constraints that permit a range?
g
Copy code
interpreter_constraints = ['CPython==3.8.*']
interpreter_search_paths = ['/usr/bin/python', '/usr/bin/python3', '/usr/bin/python3.5', '<PATH>', '<PYENV>']
will have a deeper look, thanks for checking. will update if we find anything
🤞 1
e
Sounds good. I'm sorry I don't have better ideas here.