• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pantsbuild / pants / 35151
0%
main: 93%

Build:
Build:
LAST BUILD BRANCH: pants_lock
DEFAULT BRANCH: main
Ran 29 Aug 2020 01:50AM UTC
Jobs 1
Files 430
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

pending completion
35151

push

travis-ci-com

web-flow
Fix `test --debug` to be hermetic, but keep `run` and `repl` non-hermetic (#10701)

## Problem

See https://github.com/pantsbuild/pants/pull/10668 for the original implementation, which ended up getting reverted.

As pointed out there and in https://github.com/pantsbuild/pants/issues/10644, there's an argument to keeping `run` and `repl` non-hermetic, i.e. using the env for the parent `./pants` process. Neither of those goals are cached. REPL is designed for experimentation. Run's analog is `binary`; when producing a `binary` and then running it, the `binary` would end up having the env of the host platform, rather than what Pants sets.

However, we do want `test --debug` to be hermetic so that `test` and `test --debug` behave the same.

## Solution

Add the argument `hermetic_env: bool` to the `InteractiveProcess` constructor, which controls whether the env gets stripped or not. We default this to `True` as, generally, hermiticity is a good default.

`run.py` and `repl.py` ensure that `hermetic_env` is always set to False.

### Nuance: env var may be still be overridden

If the `InteractiveProcess` includes an env var that is already set in the parent process's env, then we will override the env var with Pants's value.

Tangibly, the Python implementations for `repl` and `run` will override the `$PATH` to whatever is set via `--pex-executable-search-paths`.

[ci skip-build-wheels]

0 of 28915 relevant lines covered (0.0%)

0.0 hits per line

Jobs
ID Job ID Ran Files Coverage
5 35151.5 (PANTS_CONFIG_FILES="${TRAVIS_BUILD_DIR}/pants.travis-ci.toml" PANTS_DYNAMIC_UI=false LC_ALL="en_US.UTF-8" AWS_BUCKET=ci-public.pantsbuild.org BOOTSTRAPPED_PEX_KEY_PREFIX=daily/${TRAVIS_BUILD_NUMBER}/${TRAVIS_BUILD_ID}/pants.pex NATIVE_ENGINE_SO_KEY_PREFIX=monthly/native_engine_so PYENV_PY27_VERSION=2.7.18 PYENV_PY36_VERSION=3.6.10 PYENV_PY37_VERSION=3.7.7 PYENV_PY38_VERSION=3.8.3 PYENV_ROOT_OSX=${HOME}/.pants_pyenv PYENV_ROOT="${PYENV_ROOT:-${PYENV_ROOT_OSX}}" PATH="${PYENV_ROOT}/shims:${PATH}" AWS_CLI_ROOT="${HOME}/.aws_cli" AWS_ACCESS_KEY_ID__TO_BE_REEXPORTED_ON_DEPLOYS=AKIAV6A6G7RQ2HFZ5KP7 AWS_SECRET_ACCESS_KEY=[secure] RUST_BACKTRACE="all" BOOTSTRAPPED_PEX_KEY_SUFFIX=py36.linux PANTS_REMOTE_CA_CERTS_PATH=/usr/lib/google-cloud-sdk/lib/third_party/grpc/_cython/_credentials/roots.pem CACHE_NAME=python_tests.py36) 29 Aug 2020 01:50AM UTC 0
0.0
Travis Job 35151.5
Source Files on build 35151
Detailed source file information is not available for this build.
  • Back to Repo
  • Build #35151
  • 29ccf189 on github
  • Prev Build on master (#35150)
  • Next Build on master (#35155)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc