The ergonomic and hermetic software build system for Python, Java, Scala, Go, and Shell. Pants lets you fearlessly scale up your codebase.
Project description
Pants is an Apache2 licensed build tool written in Python and Rust.
The latest documentation can be found at pantsbuild.org.
2.14.x Release Series
2.14.0rc1 (Sep 16, 2022)
New Features
- Add retries to NetDownload intrinsic. (Cherry-pick of #16798) (#16879)
Bug fixes
-
Upgrade
javaparser, and use a permissive language level to support parsing more code (Cherry-pick of #16896) (#16904) -
Preserve stdio when a local process times out. (Cherry-pick of #16841) (#16880)
-
go: analyze imports paths by module to enable multiple
go_modtargets (Cherry pick of #16386) (#16799)
Documentation
-
Don't mention a specific version in the manual install instructions (cherrypick of #16888) (#16889)
-
Add IBM, Coinbase, and Astranis case studies (Cherry-pick of #16805) (#16814)
-
Fix broken shortlinks that invoked "docs:" instead of "doc:" (Cherry-pick of #16804) (#16811)
2.14.0rc0 (Sep 09, 2022)
New Features
- Force colors from mypy always, strip in pants when
--no-colors(Cherry-pick of #16586) (#16808)
2.14.0a0 (Sep 04, 2022)
New Features
-
Add suport for string interpolation in Helm deployments (Cherry-pick of #16611) (#16723)
-
Support Docker custom tags via plugin hook (Cherry-pick of #16662) (#16719)
-
Support Pex's
--path-mappingwith lockfiles for better local requirement support (Cherry-pick of #16584) (#16625)
Bug fixes
-
Add support for inferring dependencies used in type context bounds (Cherry-pick of #16709) (#16725)
-
Resolve properly provided symbol names for types defined at top level package (Cherry-pick of #16690) (#16718)
-
Make experimental_shell_command deterministic (Cherry-pick of #16675) (#16700)
-
Wire BUILD file formatters in
lint(Cherry-pick of #16666) (#16694) -
Include type bound constraints in consumed symbols during Scala inference (Cherry-pick of #16692) (#16698)
-
Make
FilespecMatchercase-sensitive (Cherry-pick of #16673) (#16677) -
Ensure the sandbox distdir exists when creating dists via PEP517 (Cherrypick of #16647) (#16659)
Performance
-
Implement a batched local lookup for missing fingerprints. (Cherry-pick of #16627) (#16701)
-
Optimize
CreateDigestimplementation. (Cherry-pick of #16617) (#16648)
Documentation
-
List commercial Pants services that optionally supplement community's extensive free tier (Cherry-pick of #16706) (#16742)
-
Welcome community members to consider joining team (Cherry-pick of #16681) (#16745)
-
Clarify wording for
--skipoptions (Cherry-pick of #16622) (#16702) -
Fix example BSP groups file. (Cherry-pick of #16649) (#16653)
-
Fix
./pants helpdocs on command line specs (Cherry-pick of #16616) (#16624) -
Create page of Pants team members and proudest contribs (Cherry-pick of #16676) (#16730)
2.14.0a0 (Aug 23, 2022)
New Features
-
Add Plugin hook for adding custom additional Docker image tags. (#16077)
-
Add new fmt plugins for build file formatting (#16560)
-
Add buildifier as a BUILD file formatter (#16573)
-
go: add support for test coverage (#16550)
-
Disable 80 col hard wrapping in mypy output (#16488)
-
Allow for automatic use of
pytest-xdist(#16499) -
Add
[pyoxidizer].lockfile(#16537) -
Add
[flake8].extra_filesto allow configuring plugins like Bandit (#16470) -
Support 3rd party Helm artifacts in Helm deployments (#16478)
User API Changes
-
Mark
[python].requirement_constraintsas deprecated (but not planned for removal) (#16606) -
Add
[python-repos].find_linksas preferred alias for[python-repos].repos(#16582) -
Fix that running on a BUILD file expands to all of its targets (#16546)
-
Deprecate
[python].only_binaryand[python].no_binaryin favor of more powerful[python].resolves_to_only_binaryand[python].resolves_to_no_binary(#16513)
Plugin API Changes
- Rename
FmtRequesttoFmtTargetsRequest(plus somefixrefactoring) (#16535)
Bug fixes
-
Auto-detect Helm chart source roots (#16531)
-
Have
runrun__main__.pyfor non-zipapp PEXs (#16568) -
Record
RemoteStoreBlobBytesUploadedfor all upload strategies, rather than only for large blobs. (#16545) -
Prevent running N^2 publish processes during deploy goal (#16516)
-
Track Python indexes, find-links, and manylinux in lockfile headers (#16525)
Performance
-
Fix performance for generating lockfiles for
pytestandsetuptools(#16591) -
Improve performance of
Ownersrule (#16563)
Documentation
-
More succint phrasing and better formatting for cli help. (#16549)
-
Document
[python].resolves_to_constraints_fileand[python].resolves_to_no_binary(#16548) -
Fix broken link to community page (#16468)
2.14.0.dev6 (Aug 13, 2022)
New Features
-
Support adding to dict-valued options in config files. (#16481)
-
Add
[mypy].extra_type_stubs_lockfile(#16461) -
Proposal for a Helm Deployment goal implementation (#15882)
-
Add support for using environment variables in JVM tests (#16455)
-
Add
[python].resolves_to_constraints_file(#16420)
Plugin API Changes
-
GenerateToolLockfileSentinelencouraged to use language-specific subclasses (#16449) -
Allow backend packages to also register remote auth plugins (#16444)
Bug fixes
-
Fix
--process-cleanupdeprecation. (#16447) -
Fix
CacheContentBehavior::Deferwith a remote cache (#16439)
Documentation
-
Update docs on how to run Pants in CI. (#16503)
-
Fix partition description for MyPy when multiple resolves (#16486)
-
Add IBM to user list. (#16457)
2.14.0.dev5 (Aug 07, 2022)
New Features
-
Add
[pytest].configto set custom config file paths (#16423) -
java/protobuf: add support for grpc-java codegen (#16350)
User API Changes
-
Upgrade Pex to 2.1.103. (#16313)
-
Deprecate
[python].lockfile_generator(#16418) -
Replace
--[no-]process-cleanupwith--keep-sandboxes={always,never,on_failure}(#16415) -
Add a few popular python packages to default modules mapping (#16330)
-
Deprecate
[python].tailor_ignore_solitary_init_filesin favor of more useful[python].tailor_ignore_empty_init_files(#16305) -
Upgrade Pex to 2.1.102. (#16313)
-
Enable
[python-infer].unowned_dependency_behavior="warning"by default. (#16281) -
Upgrade Pex to 2.1.101. (#16297)
Plugin API Changes
-
Add entry point support for remote auth plugin (#16212)
-
Provide foundations for a deploy goal (#16335)
Bug fixes
-
Fix docker invalidation bug. (#16419)
-
Add missing
helpmessage to experimental backends (#16403) -
Set immutable_input_digests on a docker RunRequest. (#16385)
-
go: pass -p option to
go tool asmon Go v1.19+ (#16381) -
jvm: fix fetching artifacts with non-jar packaging (#16358)
-
[internal] Add missing timeout field to target generators (#16314)
-
Include Helm chart dependency inference rules (#16368)
-
[internal] Use
f_globalsinstead ofinspect.getmoduleincollect_rules(#16357) -
Silence mkdir, cp, and mv commands with MyPy caching (#16340)
-
fix kotlin tailor for junit tests (#16333)
-
Leverage a multiprocess-safe strategy for MyPy's cache (#16290)
-
Eagerly error for symlink loops (#16319)
-
Add a newline at the end of
pathsoutput (#16302) -
Consume inits part of package object within the inner scope (#16282)
-
Explicitly add directory entries to resources JARs (#16264)
Performance
- Implement a
validatemode to reduce network usage for remote caches (#16398)
Documentation
-
Document how to use Pylint reports (#16399)
-
Fix source roots docs. (#16363)
-
Show advanced options with
helpif there are no basic options (#16352) -
Improve a docker backend warning. (#16355)
-
Link to dev.to post on resource hub. (#16331)
-
Only show the deprecated option section with
helpif there are deprecated options (#16339) -
add tailor docs for kotlin backend (#16332)
-
Fix the experimental_run_shell_command example. (#16286)
-
Fix typo in backend name (#16312)
-
docs: add initial Kotlin docs (#16304)
-
Document test sharding and update plugin docs with 2.13 changes (#16293)
2.14.0.dev4 (Aug 05, 2022)
There was no 2.14.0.dev4 because of technical issues.
2.14.0.dev3 (Jul 22, 2022)
New Features
-
add Go ASDF support (#16246)
-
Add
[python].default_run_goal_use_sandbox(#16239) -
Add
include_sourcestopex_binarytarget (#16215) -
allow JVM sources to have files dependencies (#16203)
-
Optionally strip metadata and timestamps from JVM jars (#16134)
-
Support timeouts in Helm unittest targets (#16181)
-
Allow for dependency inference plugins to provide excludes (#16155)
-
Add support for strict and color flags in Helm unittest (#15947)
User API Changes
-
Ban
../insourceandsourcesfields (#16227) -
Warn users if they set remote cache and or/execution via config while the values are provided by the auth plugin. (#16165)
-
Upgrade Pex to 2.1.99. (#16184)
-
Upgrade python reqs, upgrade default setuptools to 63.1.0 (#16168)
-
Add test timeouts to JUnit and Scalatest targets. (#16126)
Plugin API Changes
-
Generically compute dynamic defaults for
Fields (#16206) -
Add support for auth plugin setting its name (#16171)
-
Fold dep injection into inference, and use FieldSet (#16107)
Bug fixes
-
Allow using
--importoption with Autoflake (#16192) -
Dont use PEX as an API to fix
ModuleNotFoundErrorfor--debug-adapter(#16263) -
Apply parameter filling for
parametrized dependencies to excludes, and fix accommodation for file-addressed atom targets (#16249) -
[internal] Refactors
output_fieldto default to something that disambiguates on parametrized fields (#16232) -
fix scala plugins args order causing cache issues (#16228)
-
Fix explicit dependencies of
parametrized targets not working for some target types (#16197) -
Add
overridesfield to Scala targets (#16204) -
Fill address parameters in all cases, rather than only when a consumer is
parametrized. (#16198) -
Use filelists to make archive creation tasks more reliable (#16183)
-
Allow macros to raise builtin Errors (#16174)
-
Fix defaulting of parameters in explicitly specified deps on
parametrized targets for AsyncFieldMixin (#16176) -
java: add proper inference of Scrooge Java Thrift dependencies (#16130)
-
Fix "dependency" pluralization (#16150)
-
Improve memoization of interpreter constraints, Python parsing, and request classes (#16141)
-
Add support for
InteractiveProcessconsuming inputs whilerun_in_workspace=True(#16093) -
Optimize
get_expanded_specsforStreamingWorkunitplugins (#16106)
Performance
- Port
@ruleGets to rust (#16160)
Documentation
-
Add Vicara Solutions to the users page. (#16221)
-
Document the "fromfile" feature. (#16205)
-
Document
--filteroptions working with any goal (#16090) -
Updates installation docs to refer to the 1-step setup script (#16149)
-
Add 2.12 changelog to docsite (#16136)
2.14.0.dev2 (Jul 11, 2022)
User API Changes
-
Revert "Upgrade Pex to 2.1.95. (#16110)" (#16125)
-
Add a lock for the Poetry tool. (#16117)
-
Upgrade Pex to 2.1.95. (#16110)
-
Fix poetry locks missing hashes. (#16112)
-
java/avro: inject runtime library dependency (#15904)
Bug fixes
-
Fix issue with
__defaults__not propagating over gaps in the tree of BUILD files. (#16089) -
Write to caches during backtracking (#16078)
-
Record ongoing backtrack attempts (#16075)
Documentation
-
New doc explaining vcs_version. (#16092)
-
Fix typo in warning for
[python].resolve_all_constraints(#16068)
2.14.0.dev1 (Jul 05, 2022)
New Features
-
Add support for extra env variables in go tests (#16013)
-
Add ability to
runanyPythonSourceField(#15849) -
Add
--debug-adapterflag torun(#15829)
User API Changes
-
Correct deprecation warning for addressing
pex_binarytargets by filename to 2.15 (#16056) -
Default
scala-inferforce_add_siblings_as_dependenciesto False. (#16031) -
Upgrade Pex to 2.1.94. (#16029)
-
Remove
python-inferinitsoption. (#16036) -
Remove
golangexpected_versionoption. (#16033) -
Remove the
filtergoal. (#16032) -
Default
--use-deprecated-pex-binary-run-semanticstoFalse. (#16034) -
Default
pythontailor_pex_binary_targetstoFalse. (#16035) -
Deprecate not setting
tailor_pex_binary_targetsexplictly (#15962) -
tailorandupdate-build-filesrequire specifying CLI arguments (#15941) -
Upgrade default version of black to 22.6.0 (#15960)
-
Upgrade default version of pyupgrade to 2.34.0 (#15956)
Plugin API Changes
-
fmtplugins can add new files (#15846) -
Pants internally uses dedicated Sources and Dependencies fields (#16037)
Bug fixes
-
Fix pantsd TTY handling. (#16038)
-
revert REAPI batch API PRs (#16016)
-
Backtrack through calls from
@rulesto synchronous engine methods (#15979)
Documentation
-
Fix CI provider table rendering. (#16051)
-
Update docs with 2.12 changes: default Pex lockfile generator,
pants.tomlenv var interpolation, pip VCS requirements, and Python interpreter constraints (#16000) -
Fix alpha release email template typo. (#16027)
-
Document Docker registries configuration options for
skip_pushandextra_image_tags. (#16015) -
Update Python documentation with 2.11 changes (#15857)
-
Update the docs for
fmtand test report changes (#15968) -
Use Markdown h3 for ToC support (#15964)
-
Direct people to a quick form before they join Slack. (#15957)
2.14.0.dev0 (Jun 25, 2022)
New Features
-
Add repository config option to Docker registries. (#15884)
-
Add
__defaults__BUILD file symbol (#15836)
User API Changes
-
Deprecate
--use-deprecated-directory-cli-args-semanticsand default to false (#15939) -
Remove deprecated
[golang].expected_versionin favor of[golang].minimum_expected_version(#15942) -
Upgrade default iPython to 7.34, which drops Python 3.6 (#15934)
-
Remove deprecated
--excluded-target-regexp,--files-not-found-behavior, and--owners-not-found-behaviorglobal options (#15929) -
Deprecate implicit setting of
--remote-cache-{read,write,eager-fetch}with--remote-execution(#15900) -
Upgrade Pex to 2.1.100. (#16285)
Plugin API Changes
-
Plugin fields should propagate to subclassed target types. (#15876)
-
Introduce a plugin API to provide all thread local state, and deprecate stdio-specific methods (#15890)
Bug fixes
-
Assorted remote metrics fixes. (#15914)
-
Fix bad "" description in invalid addresses error messages (#15859)
-
Allow JVM memory controls to bound the process pool size to less than the process parallelism (#15903)
-
Upgrade to
nails0.13.0to pick up support forJDK >=13. (#15899) -
Increment the missing-digest backtracking level once per attempt (#15889)
-
Scala: should visit ctor args of base type (#15880)
-
Scala: mark an object that extends another type as recursive (#15865)
-
Fix reporting of time spent downloading files (#15873)
Performance
-
Dedupe
load_bytes_withcalls to a remote Store (#15901) -
Improve mypy runs by adding the "incremental" mypy cache (#16276)
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pantsbuild.pants-2.14.0rc1-cp39-cp39-manylinux2014_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.14.0rc1-cp39-cp39-manylinux2014_x86_64.whl
- Upload date:
- Size: 49.8 MB
- Tags: CPython 3.9
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a319738f4fe8b646ee9de8f841147a26183024d7db99f146435476ad4ca6cf69
|
|
| MD5 |
41cb0d72865a11e6abae99bc6b30f87c
|
|
| BLAKE2b-256 |
22512929f3e0aa817441fbd42e21192764d03030fabcd646cf6b1a536c73c757
|
File details
Details for the file pantsbuild.pants-2.14.0rc1-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: pantsbuild.pants-2.14.0rc1-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 8.6 MB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
29f45c1875fe97cf9bd01343b1d0702957515a7e0fa0e263d51915f3d2c8993d
|
|
| MD5 |
a6ecf8d19cd26d6d738f716d8f232897
|
|
| BLAKE2b-256 |
742f8bbdce1a9917f34c9618e866e604991c4c1bd8c5702ab3e19ee5d347d9f8
|
File details
Details for the file pantsbuild.pants-2.14.0rc1-cp39-cp39-macosx_10_16_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.14.0rc1-cp39-cp39-macosx_10_16_x86_64.whl
- Upload date:
- Size: 9.0 MB
- Tags: CPython 3.9, macOS 10.16+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dbc8ecfff90280635d584981fdc92088174b4d6996a3cbfd1bb152dd3cdaa978
|
|
| MD5 |
3725d58bc01b89a7adbc417fc1ec8164
|
|
| BLAKE2b-256 |
9cc1e23ef3f40152bd22bdd402531893896c6e347bab89658a01da8a4b064d0b
|
File details
Details for the file pantsbuild.pants-2.14.0rc1-cp39-cp39-macosx_10_15_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.14.0rc1-cp39-cp39-macosx_10_15_x86_64.whl
- Upload date:
- Size: 9.0 MB
- Tags: CPython 3.9, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5451e62794fb768c162bf5b1876615b583a22ab18019b792eba8d90b14046f77
|
|
| MD5 |
a4a577b92945c31d5b78b9a0619b15bd
|
|
| BLAKE2b-256 |
59a9486189170619e382e391e5a9928e240448c4003c0f09abd0370324026189
|
File details
Details for the file pantsbuild.pants-2.14.0rc1-cp38-cp38-manylinux2014_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.14.0rc1-cp38-cp38-manylinux2014_x86_64.whl
- Upload date:
- Size: 49.8 MB
- Tags: CPython 3.8
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40d2a84ac67d815884bd038f24ec00b94401f0e35968b90dd38b16dcf3f9400a
|
|
| MD5 |
eb7b298b5ceb3199df208343fa871553
|
|
| BLAKE2b-256 |
c1e637714792bb74982a2a4d51b80f7846e586c535b29867b2eb31b872063820
|
File details
Details for the file pantsbuild.pants-2.14.0rc1-cp38-cp38-macosx_11_0_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.14.0rc1-cp38-cp38-macosx_11_0_x86_64.whl
- Upload date:
- Size: 9.0 MB
- Tags: CPython 3.8, macOS 11.0+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
467b5bfbda8b78438a2954cac393dca7bed423cf814fc868ebb59eb5d5ec5cea
|
|
| MD5 |
92e171a9dea4f4a36414ba7583cf176d
|
|
| BLAKE2b-256 |
a53abe7a0cdc2e103ce47094c0cc0bd6c80e1885d357ea4b76127da15b70691d
|
File details
Details for the file pantsbuild.pants-2.14.0rc1-cp38-cp38-macosx_10_15_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.14.0rc1-cp38-cp38-macosx_10_15_x86_64.whl
- Upload date:
- Size: 9.0 MB
- Tags: CPython 3.8, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
254b020c46a25d4b2ef629e0b59698fa2e493472b4cdae993dc396edf758e86c
|
|
| MD5 |
755f335fceec6af3fa86734355284b11
|
|
| BLAKE2b-256 |
8969566c30eb176b09000e5ff77ec3dd0e442c0434115af0f0687e881e2f3a25
|
File details
Details for the file pantsbuild.pants-2.14.0rc1-cp37-cp37m-manylinux2014_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.14.0rc1-cp37-cp37m-manylinux2014_x86_64.whl
- Upload date:
- Size: 49.8 MB
- Tags: CPython 3.7m
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a05dd0a52da610706e080e38cdd547346454fa418d626fb4bdd4223ab78b9910
|
|
| MD5 |
a69e15a07c2b27f2951bfafbb3a8711f
|
|
| BLAKE2b-256 |
9b5e52af6b9cee2500861f66456e3a83d44d5b17830698cd2766060b2a66d612
|
File details
Details for the file pantsbuild.pants-2.14.0rc1-cp37-cp37m-macosx_10_16_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.14.0rc1-cp37-cp37m-macosx_10_16_x86_64.whl
- Upload date:
- Size: 9.0 MB
- Tags: CPython 3.7m, macOS 10.16+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eee37e1b0811ad495413d1cefe52e3d0d0d98fcaf31c4c9d1673a97903cae303
|
|
| MD5 |
ae68ca00630f989c0e23e0abcde8c79e
|
|
| BLAKE2b-256 |
7f175fc7afd4ebd768be82fb7915e5362d0abf920d73a0573e9112698bd5a89a
|
File details
Details for the file pantsbuild.pants-2.14.0rc1-cp37-cp37m-macosx_10_15_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.14.0rc1-cp37-cp37m-macosx_10_15_x86_64.whl
- Upload date:
- Size: 9.0 MB
- Tags: CPython 3.7m, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4c88b171843c9a81b90837fe1acb09b83888d281f479cab0b02b9f5683f7bf7
|
|
| MD5 |
251d3f56c16d2cb3b492f8259fc0166e
|
|
| BLAKE2b-256 |
2abe45f3fdf56e22f37231fbc29aaf0467bbce45ccbbacc122a5aec9249ff3e4
|