A scalable build tool for large, complex, heterogeneous repos.
Project description
Pants is an Apache2 licensed build tool written in Python.
The latest documentation can be found at pantsbuild <https://www.pantsbuild.org/>
_.
2.7.x Stable Releases
2.7.1 (Oct 27, 2021)
The second stable release of the 2.7.x
series, with no changes since the previous release candidate!
2.7.1rc1 (Oct 11, 2021)
User API Changes
- Add
[mypy].extra_type_stubs
(Cherry-pick of #13180) (#13211)
Bug fixes
-
pantsd
falls back to socket usage if it cannot open a TTY. (cherrypick of #13155) (#13157) -
Release the GIL while creating a Session. (cherrypick of #13127) (#13158)
-
Do not change working directory when extracting archives (cherrypick of #12497 and #13077) (#13159)
2.7.1rc0 (Oct 04, 2021)
Bug fixes
-
Upgrade to Pex 2.1.51. (#13098) (Cherry picks of 513647c1 b1d7ab9d) (#13102)
-
Upgrade to Pex 2.1.50 and leverage packed layout. (Cherry picks of 433a4dd 0d36002 7ba06a5) (#13078)
-
Don't invalidate the scheduler when piping output. (cherrypick of #13028) (#13030)
-
Ensure that
Tree
contents are uploaded after creation. (cherrypick of #13008) (#13009)
2.7.0 (Sep 24, 2021)
The first stable release of the 2.7.x
series, with no changes since the previous release candidate!
2.7.0rc5 (Sep 22, 2021)
Bug fixes
-
Fix case sensitivity of
module_mapping
forpython_requirements
andpoetry_requirements
(Cherry-pick of #12980) (#12981) -
Fix spurious "Scheduling: ..." workunits with remote caching (cherrypick of #12973) (#12975)
2.7.0rc4 (Sep 17, 2021)
Plugin API Changes
- Add py.typed files for pantsbuild distributions in order to satisfy PEP-561 (cherry-pick of #12842) (#12861)
Bug fixes
- If
[python-setup].invalid_lockfile_behavior = ignore
, don't require Pants metadata in the lockfile (Cherry-pick of #12900) (#12905)
Performance
- Improve cache reuse for
./pants package
when using a constraints file or lockfile (#12807) (#12836)
2.7.0rc3 (Sep 10, 2021)
User API Changes
- Add
version
to lockfile metadata headers (cherry-pick of #12788) (#12816)
Bug fixes
-
Fix backports of std lib modules like
dataclasses
not working with dependency inference (Cherry-pick of #12818) (#12819) -
Properly include file dependencies in docker build context (cherrypick of #12758) (#12823)
Documentation
- Warn if
[python-repos]
is set during lockfile generation (cherrypick of #12800) (#12828)
2.7.0rc2 (Sep 05, 2021)
Bug fixes
- Fix UI rendering when a workunit has completed children but no running children (cherrypick of #12748) (#12750)
2.7.0rc1 (Sep 01, 2021)
Bug fixes
-
Error, don't warn, when
--generate-lockfiles-resolve
is set to a disabled tool lockfile (cherrypick of #12738) (#12741) -
Add specific and actionable instructions to stale lockfile errors (cherrypick of #12699). (#12717)
-
Improve descriptions of the process executions for PEX_PATH composition. (cherrypick of #12736) (#12737)
-
Absolutize all of the execute_pex_args in the venv script. (cherrypick of #12727) (#12729)
2.7.0rc0 (Aug 31, 2021)
New Features
-
Add
[tool].lockfile
(e.g.[black].lockfile
) for Python tools and activate./pants generate-lockfiles
by default (#12684) -
Add
--generate-lockfiles-resolve
to allow generating for only certain tools (#12676) -
Add
[generate-lockfiles].custom_command
(#12687) -
Add experimental Docker build rules. (#12467)
User API Changes
-
Use Pants's default tool lockfiles by default for Python tools like Black, Pytest, and Flake8 (#12689)
-
Set
[python-setup].invalid_lockfile_behavior
toerror
by default (#12686) -
Bump default for
pytest-cov
([pytest].extra_requirements
) and[coverage-py].version
so both usecoverage 5.5
(#12690) -
Pin
GitPython==3.1.18
by default with Bandit to ensure yanked release isn't used in lockfile generation (#12691) -
Stop pinning
stevedore<3
by default for Bandit (#12681) -
Stop installing
setuptools
by default with Black, Flake8, Isort, and Yapf (#12673) -
Stop using
[python-setup].requirements_constraints
when installing tools like Black and MyPy (#12639) -
Default to
my-dep-stubs
andstubs-my-dep
being third-party type stubs (#12598) -
Type stubs should be registered as normal requirements, not in
[mypy].extra_requirements
(#12597)
Plugin API Changes
-
Support indivisible Sources fields (#12685)
-
Render EngineAware parameters in cycle errors from Graph. (#12668)
-
Split PexRequirements into three unioned types (#12644)
-
Add
__repr__
impl for PySnapshot (#12622) -
Remove the
rationale
field from BashBinaryRequest. (#12624)
Bug fixes
-
The
pex_binary
"venv" mode now sees bin scripts. (#12664) -
Fix UI rendering when multiple tasks have the same label. (#12659)
-
tailor: do not append comma to kwarg with empty tuple (#12653)
-
Fix
FindBinary
whenwhich
is discoverable on$PATH
on macOS (#12581) -
Fix coloring of stderr logs with pantsd (#12585)
Performance
- Decompose requirements pexes (#12675)
Documentation
-
Switch log warning rendering to yellow. (#12596)
-
Align
Enriched*Result
colors, sigils, and log levels. (#12645) -
Fix Toolchain plugin being included in generated reference docs (#12642)
2.7.0.dev4 (Aug 15, 2021)
New Features
-
Add additional Google Cloud libraries to dependency inference's default module mapping (#12553)
-
Validate that
pytest-cov
is installed when[test].use_coverage
is set (#12534)
User API Changes
-
Deprecate
--pants-supportdir
, rename--engine-visualize-to
, and fix help for--loop
. (#12558) -
Change the PythonProtobufMypyPlugin option scope. (#12525)
Plugin API Changes
-
Upgrade packaging from 20.9 to 21.0 (#12561)
-
Allow newer versions of setuptools and wheel. (#12555)
-
Deprecate an options scope with underscores. (#12532)
-
Remove
TestResult.skip()
in favor ofTestFieldSet.opt_out()
(#12516) -
Finally get rid of Optionable entirely. (#12538)
Bug fixes
-
Fix
shfmt
and--test-open-coverage
to handle CPU architecturePlatform
changes (#12546) -
Fix asdf directory lookup. (#12528)
-
Fix shlexing of passthrough args. (#12547)
-
pyenv should fall back to $HOME/.pyenv (#12527)
Performance
-
Stream files into the local store while capturing them (#12563)
-
use REAPI batch API for small blob writes (#12537)
-
add capabilties cache for remote store client (#12522)
2.7.0.dev3 (Aug 06, 2021)
New Features
-
Add
skip_tests
field topython_tests
to facilitate incremental migrations (#12510) -
Adds support for Poetry group dependencies (#12492)
-
Tailor pex_binary targets for entry points. (#12478)
User API Changes
- Add to default module mapping: Django extensions, Google Cloud, Pillow, and python-dotenv (#12506)
Plugin API Changes
- Refactor Pex working directory handling. (#12479)
Bug fixes
-
Make the pantsd crash error message more precise. (#12512)
-
Resolve plugins using the PEX --python option. (#12500)
-
Shield isolated-Sessions / StreamingWorkunitHandlers from Ctrl+C. (#12483)
-
Fix default coverage collection. (#12477)
Performance
- Don't resolve constraints file / lockfile if no 3rd-party requirements used (#12488)
2.7.0.dev2 (Jul 30, 2021)
New Features
-
Provide a peek goal to easily view BUILD metadata from command line (#11347)
-
Add
entry_points
field to python_distribution (#11872) -
Add hadolint to lint Docker files (#12426)
-
Add experimental Docker target type and tailor (#12431)
-
Support
pex_binary
addresses inprovides=setup_py(entry_points)
field (#12414) -
Add option for async completion of StreamingWorkunitHandlers, disable by default in containers (#12392)
-
Dependency inference for
pex_binary
andpython_awslambda
can disambiguate ambiguous modules based on file paths (#12326)
User API Changes
-
Deprecate
[pytest].pytest_plugins
in favor of[pytest].extra_requirements
(#12450) -
Deprecate
setup_py().with_binaries()
in favor ofentry_points
field (#12413) -
Add instruction set architecture awareness to platforms and
--url-platform-mapping
options (#12367) -
Add
[python-setup].interpreter_versions_universe
to ensure Pants works robustly with future Python interpreters (#12379) -
Upgrade to Lambdex 0.1.5. (#12461)
-
Upgrade to Pex 2.1.44. (#12342)
Bug fixes
-
More robust support for Poetry dependency attributes (
markers
, andextras
) (#12323) -
Mark workunits blocked, and skip rendering completed workunits (#12369)
Performance
-
Do not upload Action inputs for remote cache writes. (#12443)
-
Skip preparation of workunit log messages which will never be rendered. (#12396)
Documentation
-
Clarify when we are subsetting the lockfile for 3rdparty dependencies (#12435)
-
Add counters for blob bytes uploaded/downloaded to/from CAS (#12471)
-
Add cache and runtime metadata to Process workunits (#12469)
-
Fix the content type for Pants' wheel long_descriptions. (#12391)
2.7.0.dev1 (Jul 16, 2021)
New Features
-
Allow restricting which versions are valid for
ExternalTools
. (#12332) -
Add yapf Python formatter (#12317)
-
Add ASDF support to interpreter-search-paths (#12028)
Plugin API Changes
- Validate option default values to be of correct type. (#12331)
Bug fixes
-
Do not leak subsystems as goals to the command line interface (#12337)
-
Fix anonymous telemetry logging. (#12340)
-
Fixup incorrect platform help message. (#12320)
Documentation
- Improve wording for
pex_binary
platforms
field help (#12304)
2.7.0.dev0 (Jul 09, 2021)
New Features
-
Add skimage module mapping for dependency inference (#12301)
-
Add experimental terraform plugin with fmt and lint rules (#11973)
-
Add support for MyPy report files (#12271)
-
Support running tailor on subdirs. (#12262)
-
Support building dists from preexisting setup.py. (#12250)
User API Changes
-
Don't tailor a python_library for a solitary init.py. (#12288)
-
Apply a concurrency limit to remote store/cache/execution gRPC requests (#12256)
Bug fixes
-
Fix poetry_requirements: ignore internal projects. (#12280)
-
Fix poetry_requirements handling of python. (#12278)
-
Do not use
[python-setup].resolve_all_constraints
when usingplatforms
(#12268) -
Hotfix for
poetry_requirements
not being recognized as a macro in build files (#12263) -
Include experimental Go backends in pantsbuild.pants (#12290)
Documentation
- Improve error for out-of-line Gets. (#12305)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for pantsbuild.pants-2.7.1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6aaf86a160b2098617d2cf97a11c6c0f9511100a656788a27283c98c2f9a9962 |
|
MD5 | 8478537d71994cac2e32d6c1fb4cfe69 |
|
BLAKE2b-256 | cbb21fb116a1cf4b0eb0cf38e1226907403feed8de8a7a11dcdc81289df81c19 |
Hashes for pantsbuild.pants-2.7.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | efeca4535bd45acd9681dffdf495fe1bc8f757e09dfc0ddeaff7a7a6c7ef1c59 |
|
MD5 | ff250cb2370a178517ee62f63f07d804 |
|
BLAKE2b-256 | ba1ca4439059bd17c1ab467c3a30a537878b4c63f943364d88343ab28272703b |
Hashes for pantsbuild.pants-2.7.1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82717108c55372fa7cb0759c377c3ea0e92d451c779e4b7034ec768a44f6349a |
|
MD5 | c56c6fa82d32fe4f92cbf8e6348dca6b |
|
BLAKE2b-256 | cb46909d1755f425cd569592ea2bb65dbfcc5e60bb483e25f581dff5d11ecf32 |
Hashes for pantsbuild.pants-2.7.1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a2097c12c98ec4cba3cc8fe2e1b12c0fddca9957c0b204ca59167c747ee3b7d3 |
|
MD5 | 5b08a43fba579d374130aa5d52e42503 |
|
BLAKE2b-256 | ea01973a7e026508e4657a13ae593dc5e8bc797e037af87cb789c1dc921040a6 |
Hashes for pantsbuild.pants-2.7.1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | df64c31f9b429c0a57187563c5e59f917d9d3a27fda55d064254aa024a9a7710 |
|
MD5 | ef34df6da7ec8fa57c0feb62306305ad |
|
BLAKE2b-256 | 119e273349e10c7e6791d78b62551e13d67026670a6bf2ba9f45349270302e72 |
Hashes for pantsbuild.pants-2.7.1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 660102128fe1d961b975ee67a1967d2345b61b6d1d45084edaaf7d39843d9f1d |
|
MD5 | 607d054823f4437cba279b7f3154f3bd |
|
BLAKE2b-256 | 27477f0e73a6a9c3eda5d76c3613c0b620d4b8de08ed96eb736e7f551cf071e7 |
Hashes for pantsbuild.pants-2.7.1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 909beedb0ce46c916d28cf1dd651700701de56a0f24fb57a835bb175f073ef3e |
|
MD5 | 9d6832a53e513c454aebf16ee974cdc1 |
|
BLAKE2b-256 | c46f4538a29079caf806b8a3daa25e48c444a253b0f46ead0aee9bb7f438732b |