Ok, click released 3 hours ago and broke Pants (ju...
# development
e
Ok, click released 3 hours ago and broke Pants (just for Pants developers - not the released product). You'll see something like this in your CI run:
Copy code
E           RuntimeError: Click will abort further execution because Python was configured to use ASCII as encoding for the environment. Consult <https://click.palletsprojects.com/unicode-support/> for mitigation steps.
E           
E           This system supports the C.UTF-8 locale which is recommended. You might be able to resolve your issue by exporting the following environment variables:
E           
E               export LC_ALL=C.UTF-8
E               export LANG=C.UTF-8
I'm tracking down which of our plugins pulls this thing in / pinning / rigamarole.
👀 1
Ah, its black not pytest plugins. It depends on "click>=7.1.2". So this may affect other users 😕
1st I'll staunch our bleeding....
OK - this is very unlikely to be hitting others. We just only export
env_inherit={"PATH", "PYENV_ROOT", "HOME"}
in our black IT and that bites us here afaict. After green CI I'll follow up with a switch to expanding that and dropping the pin.
@hundreds-father-404 can you think of any reason to not being including SubprocessEnvironment env vars in the CompleteEnvironment used by RuleRunner by default?
h
Diverging mechanism from
env
and
env_inherit
.
RuleRunner()
is designed to give you total control over the env, and this would break that, right? Instead, I think we want to add
LANG
et al to the
env_inherit
?
e
It would break that, but that design also diverges from how Pants actually works!
(for PEX rules... so probably should be in a PEX rules helper for the python test stack if to be done at all)
👍 1
Basically - if a test breaks you hope its because prod is broken. In this case I investigated and prod is not broken because of SubprocessEnvironment carring these env vars along by default in prod. Its only in tests we're broken because we don't stay faithful to prod. That's always not an awesome way to break tests.
1
Of course all of this moot because CI is still broken 😕 Digging more ...
I will refrain from ranting that this is all to support cupcakes or whatever when your formatting succeeds - that is really really lame.
🚀 1
🙃 2
🈲 1
🀄 1
📣 1
🧁 2
If our spinners or check marks and xs ever break anyone I'll be mortified.
🙏 1