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

pantsbuild / pants / 34604
0%
main: 93%

Build:
Build:
LAST BUILD BRANCH: free-threaded-python
DEFAULT BRANCH: main
Ran 02 Aug 2020 06:38AM UTC
Jobs 1
Files 440
Run time 21s
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
34604

push

travis-ci-com

web-flow
Simplify the setup-py rules. (#10529)

The old code repeated some logic now centralized in python_sources.py and
elsewhere, notably the ancestor __init__.py discovery. We now just use that logic
instead of recapitulating it.

This required some changes to the helper function that discovers packages
and package data (for the purpose of writing those into the setup.py metadata).
That code is now simpler, and in particular no longer needs to know anything
about targets. This leads to a very slight behavior change: previously we would
infer the existence of a "python package" from the existence of resources, even when
no .py files were available. This is incorrect: to load a resources using pkgutil or
pkg_resources, they must be loaded relative to some actual Python package
(which by definition requires the presence of a .py file, __init__.py or other).
Now we handle this correctly - a nice case where the simpler code is also more correct.

This change also removes the check that injected missing __init__.py files must be
empty. This check was insufficient, e.g., an __init__.py containing a namespace
package invocation should also be fine to inject. And for setup.py this often must
be the case - if you have multiple dists in the same source tree, they must be in
a namespace package or the dists won't import correctly. Instead we just blindly
inject any ancestor __init__.py, and rely on the user that their __init__.py
hygiene is good. In particular, if an __init__.py has deps, injection won't do
anything special with those, so they will have to actually depend on the __init__.py,
either explicitly or via inference. In the setup-py case, however, ancestor
__init__.py files are almost certainly just to create namespace packages, as
any code in them would be embedded in multiple dists, which is a bad idea.

Since that empty file check is removed, the remaining code was too trivial to
exist on its own, so it was removed, and its one-... (continued)

33 of 33 new or added lines in 7 files covered. (100.0%)

0 of 29184 relevant lines covered (0.0%)

0.0 hits per line

Jobs
ID Job ID Ran Files Coverage
4 34604.4 (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) 02 Aug 2020 06:38AM UTC 0
0.0
Travis Job 34604.4
Source Files on build 34604
Detailed source file information is not available for this build.
  • Back to Repo
  • Build #34604
  • 41ec94b7 on github
  • Prev Build on master (#34597)
  • Next Build on master (#34606)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc