A scalable build tool for large, complex, heterogeneous repos.
Project description
Pants is an Apache2 licensed build tool written in Python and Rust.
The latest documentation can be found at pantsbuild.org.
2.8.x Release Series
2.8.0 (Nov 17, 2021)
The first stable release of the 2.8.x
series, with no changes since the previous release candidate!
2.8.0rc6 (Nov 16, 2021)
New features
- Add
[twine].ca_certs_path
option (Cherry-pick of #13593) (#13642)
User API Changes
-
Ban
*
globs and!
ignores insource: str
field (Cherry-pick of #13629) (#13636) -
Bump twine to 3.6.0 and add tool lockfile (Cherry-pick of #13594) (#13640)
Bug fixes
-
Fix Python dependency inference breaking with
python_source
targets (Cherry-pick of #13627) (#13633) -
Register skip fields for python linters and mypy also on the
python_test_utils
target. (Cherry-pick of #13616) (#13623)
2.8.0rc5 (Nov 10, 2021)
Performance
- Fix caching of binary lookups and avoid re-running
pytest
setup for environment changes (cherrypick of #13559) (#13561)
Documentation
- Fix
tailor
confusion with macros vs. targets (cherrypick of #13574) (#13582)
2.8.0rc4 (Nov 09, 2021)
Bug fixes
-
Don't duplicate Go error logs when dependency failed to compile (Cherry-pick of #13502) (#13538)
-
Fix
--no-print-stacktrace
. (cherrypick of #13539) (#13541)
Documentation
- Fix formatting of overrides field in docs (Cherry-pick of #13549) (#13552)
2.8.0rc3 (Nov 04, 2021)
Performance
-
Go: improve performance of first-party package analysis (Cherry-pick of #13476) (#13486)
-
Fix slow performance from recursive
__repr__
and__hash__
for Go (Cherry-pick of #13492) (#13493)
2.8.0rc2 (Nov 02, 2021)
New Features
-
Add overrides to python_requirements and poetry_requirements (Cherry-pick of #13458) (#13475)
-
Add
--tailor-check
(Cherry-pick of #13432) (#13457) -
Add
[tailor].ignore_paths
and[tailor].ignore_adding_targets
(Cherry-pick of #13422) (#13454) -
Validate that
[tailor].build_file_name
is compatible with[GLOBAL].build_patterns
(Cherry-pick of #13420) (#13446)
Plugin API Changes
- Fix
fmt
,lint
,test
, andcheck
plugins having to usesources
FieldSet
value (Cherry-pick of #13456) (#13466)
Bug fixes
-
Do not cache Docker invocations between Pants runs (Cherry-pick of #13464) (#13467)
-
Upgrade to Pex 2.1.54 (Cherry picks of 50914a5e and 189cd753) (#13459)
2.8.0rc1 (Oct 28, 2021)
Bug fixes
-
Assume version 1 for older lockfiles without
version
key (cherrypick of #13399) (#13406) -
Removes leading whitespace when
tailor
ing BUILD files without header text (#13394) -
Go: don't error for unsupported third-party sources with project introspection (Cherry-pick of #13377) (#13381)
-
Don't error for invalid Go third-party packages unless building them (Cherry-pick of #13405) (#13410)
-
Fix missing field for
tffmt
inlint
. (cherrypick of #13355) (#13356)
Performance
-
Use
--layout=packed
for all monolithic resolves. (cherrypick of #13400) (#13403) -
Don't download Go third-party dependencies multiple times (Cherry-pick of #13352) (#13378)
Documentation
- Make
check
output more useful for Go and Java (cherrypick of #13379) (#13388)
2.8.0rc0 (Oct 24, 2021)
New Features
-
update-build-files
goal formats BUILD files with Black (#13279) -
Add
overrides
field tofiles
andresources
targets (#13304) -
Add
overrides
field toshell_sources
,shunit2_sources
, andprotobuf_sources
(#13298) -
Add
overrides
field topython_sources
andpython_tests
target (#13270) -
Depending on a
python_distribution
withpex_binary
now includes the built dist (#13306) -
Support arbitrary PEP-517 build systems. (#13285)
User API Changes
-
Pants's CLI output uses the full address
dir:dir
instead of the shorthanddir
(#13274) -
Rename
[python-setup]
to[python]
and move into the python backend. (#13345) -
The default
sources
forconftest.py
and*_test.pyi
now belong to new target generatorpython_test_utils
, notpython_tests
(#13299) -
Deprecate including
conftest.py
and.pyi
files inpython_tests
target'ssources
field (#13320) -
Rename
docker_image
fieldsources
tosource
(#13327) -
Merge docker
version
field into theimage_tags
field. (#13308) -
Upgrade default black version from 21.8b0 to 21.9b0 (#13326)
-
Terraform: move
terraform validate
fromlint
tocheck
(#13301) -
Autoflake and Pyupgrade are now activated by experimental backends (#13317)
-
Add google cloud logging to default Python module map (#13305)
Plugin API Changes
- Add support for structured output from
publish
goal. (#13292)
Bug fixes
- Do not choke on
.
in tool names forexperimental_shell_command
s. (#13293)
Documentation
- Fix documentation for
file:
URLs, and add an assist for malformed URLs. (#13272)
2.8.0.dev5 (Oct 17, 2021)
New Features
-
Add
./pants update-build-files
to automate fixing some deprecation warnings (#13273) -
Add
[cli.alias]
config section for command line alias support. (#13228) -
Add
run
support for newexperimental_run_shell_command
target. (#13229) -
Add
azure
to default Python module mapping (#13275) -
Support linux arm64 binary tools. (#13249)
-
Add minimal Scala backend (#13130)
User API Changes
-
Fix
dir:
anddir::
to include generated targets (#13263) -
Merge Docker
image_name
into therepository
field. (#13225) -
python_sources
andpython_tests
targets no longer use dependency inference, onlypython_source
andpython_test
targets (#13231)
Plugin API Changes
- Verify each observed URL and Digest pair (#13266)
Bug fixes
-
Fix pyupgrade alias name conflict (#13282)
-
Fix generate_all_lockfiles. (#13280)
-
Don't invalidate dependency inference when unrelated file names change (#13248)
-
Fix
./pants help targets
to not include deprecated target names (#13236)
2.8.0.dev4 (Oct 11, 2021)
New Features
-
Add support for pyupgrade (#13063)
-
Support optionally restarting interactive processes when input files change (#13178)
-
Package dependencies for shell command. (#13168)
-
Add
help tools
(#13135) -
Docker build args config option (#13147)
-
Add
[docker].env_vars
option. (#13146) -
Support for directly
run
ning a Docker image (#13120) -
Docker image version tag (#13097)
-
Docker
publish
support (#13085) -
New
publish
goal (#13057)
User API Changes
-
Add
[mypy].extra_type_stubs
(#13180) -
Deprecate
requirements_relpath
andpyproject_toml_relpath
in favor ofsource
forpython_requirements
andpoetry_requirements
(#13204) -
Deprecate
module_mapping
andtype_stubs_module_mapping
fields forpython_requirement
in favor ofmodules
andtype_stub_modules
(#13197) -
Deprecate
python_library
,protobuf_library
, andshell_library
in favor ofpython_sources
,protobuf_sources
, andshell_sources
(#13196) -
Add
scikit-learn
to the default module mapping (#13198) -
Deprecate
python_requirement_library
in favor ofpython_requirement
(#13133) -
An explicit
generate_setup
field onpython_distribution
. (#13111) -
Upgrade to Pex 2.1.51. (#13098)
Plugin API Changes
-
Deprecate
Sources
in favor ofSourcesField
,SingleSourceField
, andMultipleSourcesField
(#13202) -
Rename
ResourcesSources
and split target into generator vs. atom (#13194) -
Rename
FilesSources
and split target into target generator vs. atom target (#13190) -
Add
engine_error()
context manager for testing plugin exceptions (#13108)
Bug fixes
-
[jvm] Ignore symbols exposed by unnamed packages. (#13214)
-
f.ext
is now a file argument, not a goal (#13212) -
pantsd
falls back to socket usage if it cannot open a TTY. (#13155) -
Do not change working directory when extracting archives (#13077)
-
Release the GIL while creating a Session. (#13127)
Performance
- Changing global options doesn't invalidate as much (#13144)
Documentation
-
Improve a couple of log messages. (#13121)
-
[Docs] Filter out self from list of related subsystems. (#13148)
2.8.0.dev3 (Oct 01, 2021)
New Features
-
Make the number of dots in string dep inference an option. (#13059)
-
Docker image name tags (#13048)
-
Add a
--closed
option to the dependencies goal. (#13043) -
Support multiple Docker registries per image. (#13047)
-
Add Docker registry field (#13017)
-
Support for PEP-517/518 builds. (#13012)
-
Add autoflake unused import remover to Python lint tools. (#13010)
-
Support tailoring non-addressable macros. (#12989)
-
Implement Java dep inference mapper and rules (#12978)
-
Include the experimental java backend in the Pants distribution. (#13003)
-
Have
peek
emit expanded sources and dependencies (#12882) -
New experimental_shell_command (#12878)
-
Support tailoring with an alternative BUILD file name (#12979)
-
Add Java dependency analysis types and launcher using javaparser library. (#12890)
User API Changes
-
Remove Gofmt backend and activate it with
pants.experimental.go
(#13014) -
Register terraform lint & validate backends when the terraform backend is registered (#13002)
-
Deprecate --type in the dependencies goal. (#12998)
Plugin API Changes
-
Add
RuleRunner.write_digest()
(#13044) -
Change
BinaryNotFoundError
constructor to be more generic (#13001)
Bug fixes
-
Don't invalidate the scheduler when piping output. (#13028)
-
Ensure that
Tree
contents are uploaded after creation. (#13008) -
Fix case sensitivity of
module_mapping
forpython_requirements
andpoetry_requirements
(#12980) -
Fix spurious "Scheduling: ..." workunits with remote caching (#12973)
-
Fix
./pants dependencies --transitive
when run on a target generator likepython_library
(#12956)
Performance
- Use nailgun for javac and import parser (#12982)
2.8.0.dev2 (Sep 17, 2021)
New Features
-
Build and install
python_distribution
deps for test, run, and repl (#12573) -
Tailor
python_requirements
macro invocations. (#12862) -
Add
script
field topex_binary
for console scripts (#12849) -
Add option to
[python-setup]
to handle a quirk when buildingpython_distribution
on MacOS Big Sur. (#12857)
User API Changes
-
Rename the
typecheck
goal tocheck
(#12858) -
Ban
#
in an address's target name (#12940) -
Upgrade to Pex 2.1.50. (#12888)
-
Add new version of
LockfileMetadata
to support checking for identically specified requirements (#12782)
Plugin API Changes
- Add py.typed files for pantsbuild distributions in order to satisfy PEP-561 (#12842)
Bug fixes
-
Fix "file-level dependencies" on
files
andresources
targets to not pull in sibling files (#12941) -
Add google_cloud_function to plugin dependencies. Fix typo. (#12932)
-
If
[python-setup].invalid_lockfile_behavior = ignore
, don't require Pants metadata in the lockfile (#12900)
Performance
- Don't find
tar
,unzip
, andzip
as frequently (#12947)
2.8.0.dev1 (Sep 10, 2021)
New Features
-
Support --fail-under on merged coverage. (#12778)
-
Add python-docx to the module mapping dictionary (#12775)
-
Add python-pptx to the module mapping dictionary (#12776)
-
Add
opencv-python
to the default Python module mapping (#12777) -
Add
PyMuPDF
to the default Python module mapping (#12774)
User API Changes
-
Deprecate
--list-provides
option. (#12759) -
Upgrade default
isort
to latestisort==5.9.3
(#12756) -
Add
version
to lockfile metadata headers (#12788)
Plugin API Changes
OutputPathField.value_or_default()
no longer has anAddress
argument (#12837)
Bug fixes
-
Properly include file dependencies in docker build context (#12758)
-
DigestSubset should not short-circuit when there are ignores involved. (#12648)
-
Fix backports of std lib modules like
dataclasses
not working with dependency inference (#12818)
Performance
-
Improve cache reuse for
./pants package
when using a constraints file or lockfile (#12807) -
Upgrade to Pex 2.1.48 and leverage packed layout. (#12808)
Documentation
-
Warn if
[python-repos]
is set during lockfile generation (#12800) -
Fix a markdown issue in a help string. (#12766)
2.8.0.dev0 (Sep 03, 2021)
New Features
-
Add support for creating GCP Cloud Functions. (#12735)
-
[experimental] Add proof-of-concept Java junit test rule. (#12177)
-
Support TOML tables for dict options in pants.toml (#12707)
User API Changes
-
Remove undocumented
pants_version()
symbol from BUILD files (#12745) -
Remove deprecated
[python-protobuf.mypy-plugin]
in favor of[mypy-protobuf]
(#12743) -
Stop interpolating
pants_supportdir
inpants.toml
and deprecate the option (#12705) -
Error, don't warn, when
--generate-lockfiles-resolve
is set to a disabled tool lockfile (#12738) -
Remove deprecated
.with_binaries()
. (#12724) -
Update default
[black].version
to 21.8b0 (#12718) -
Update
futures
to0.3.17
. (#12722) -
Upgrade to Pex 2.1.47. (#12715)
-
Remove deprecated
[pytest].pytest_plugins
in favor of[pytest].extra_requirements
(#12704) -
Remove deprecated
[grpc_python_plugin]
in favor of[grpc-python-plugin]
(#12706)
Plugin API Changes
- Add intrinsic to produce a
DigestEntries
from aDigest
which reference file content by hash (#12693)
Bug fixes
-
Fix UI rendering when a workunit has completed children but no running children (#12748)
-
Improve descriptions of the process executions for
PEX_PATH
composition. (#12736) -
Absolutize all of the
execute_pex_args
in the venv script. (#12727) -
Include
.gitignore
in defaultpantsd_invalidation_globs
(#12711)
Performance
- Simplify implementation of materialize directories (#12696)
Documentation
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.8.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 115c865bb33dd1e2a61c75bce4a9f8236a218edc723143621ee888c3e89dc1cb |
|
MD5 | cfe3050e68e67d9ebbd03b7a2bda1494 |
|
BLAKE2b-256 | 4c4b667dec4b34377717ee1ada3a6be5805893f7b29ea9705e4329d8c2ee33a9 |
Hashes for pantsbuild.pants-2.8.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ede3a8d28f06e31edaf45d676511c86dfa098313ee27a66a1f92d4fc7424c5f |
|
MD5 | f79beecc1207c71d6374403798802399 |
|
BLAKE2b-256 | 91b7ec4097c1d2cc74794b1f769587c7d205ae393de1f6528fbc5a7b52d12cce |
Hashes for pantsbuild.pants-2.8.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d18941c5828da33b811f1a39a95bf1e9124d8dbd3e5996f3168abb1b53ff29b6 |
|
MD5 | 38797edd3007e7e25f936bb1355b719a |
|
BLAKE2b-256 | 9dd0b925695a4b918bf1be7a0dde6cccf403cd0847dafa7edf1e96a0fc399bec |
Hashes for pantsbuild.pants-2.8.0-cp38-cp38-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 813772f38272be1ba04e822346283084482dfc4095a488a964a92650c46f1f2b |
|
MD5 | 0817c2faad8052142c312e46722855af |
|
BLAKE2b-256 | e568f80063e677581a378b3c371f9daa44f8d897f8be83df52c6e98a6425c7b4 |
Hashes for pantsbuild.pants-2.8.0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97a09a3b19a9e909db68217206f0233cb0a049b1ce7e9eec30cfd72ab75e4e45 |
|
MD5 | 07b7ab586adaab459749945e6e69ac5c |
|
BLAKE2b-256 | c4526f600b06981900eab6fd5b65f03587002744c0cac30595162f0d1bd3dae7 |
Hashes for pantsbuild.pants-2.8.0-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a75d69c8fcc35d2d34b24d1e228213ba14aa4aa6e68841693e11bca419500c8b |
|
MD5 | 134810eef64f76142f43447915fbf9b8 |
|
BLAKE2b-256 | 2584ed3a3e2c9a526ec77a21ebc894fb546055a07fce2e042836dad13678f9f7 |
Hashes for pantsbuild.pants-2.8.0-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a332485ffd873152f30516e3240db92b7b82c5e1f0b486e81e51278e17a630b5 |
|
MD5 | 919d2fb214a15273f296f6688a8f815b |
|
BLAKE2b-256 | 5a014d42a341379b882689b7225f865da33dcf54ce963cee51088e2b5f400a3a |