Skip to main content

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.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-mapping with 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 FilespecMatcher case-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 CreateDigest implementation. (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 --skip options (Cherry-pick of #16622) (#16702)

  • Fix example BSP groups file. (Cherry-pick of #16649) (#16653)

  • Fix ./pants help docs 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_files to allow configuring plugins like Bandit (#16470)

  • Support 3rd party Helm artifacts in Helm deployments (#16478)

User API Changes

  • Mark [python].requirement_constraints as deprecated (but not planned for removal) (#16606)

  • Add [python-repos].find_links as preferred alias for [python-repos].repos (#16582)

  • Fix that running on a BUILD file expands to all of its targets (#16546)

  • Deprecate [python].only_binary and [python].no_binary in favor of more powerful [python].resolves_to_only_binary and [python].resolves_to_no_binary (#16513)

Plugin API Changes

  • Rename FmtRequest to FmtTargetsRequest (plus some fix refactoring) (#16535)

Bug fixes

  • Auto-detect Helm chart source roots (#16531)

  • Have run run __main__.py for non-zipapp PEXs (#16568)

  • Record RemoteStoreBlobBytesUploaded for 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 pytest and setuptools (#16591)

  • Improve performance of Owners rule (#16563)

Documentation

  • More succint phrasing and better formatting for cli help. (#16549)

  • Document [python].resolves_to_constraints_file and [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

  • GenerateToolLockfileSentinel encouraged to use language-specific subclasses (#16449)

  • Allow backend packages to also register remote auth plugins (#16444)

Bug fixes

  • Fix --process-cleanup deprecation. (#16447)

  • Fix CacheContentBehavior::Defer with 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].config to 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-cleanup with --keep-sandboxes={always,never,on_failure} (#16415)

  • Add a few popular python packages to default modules mapping (#16330)

  • Deprecate [python].tailor_ignore_solitary_init_files in 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 help message to experimental backends (#16403)

  • Set immutable_input_digests on a docker RunRequest. (#16385)

  • go: pass -p option to go tool asm on 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_globals instead of inspect.getmodule in collect_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 paths output (#16302)

  • Consume inits part of package object within the inner scope (#16282)

  • Explicitly add directory entries to resources JARs (#16264)

Performance

  • Implement a validate mode 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 help if 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 help if 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_sources to pex_binary target (#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 ../ in source and sources fields (#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 --import option with Autoflake (#16192)

  • Dont use PEX as an API to fix ModuleNotFoundError for --debug-adapter (#16263)

  • Apply parameter filling for parametrized dependencies to excludes, and fix accommodation for file-addressed atom targets (#16249)

  • [internal] Refactors output_field to 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 overrides field 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 InteractiveProcess consuming inputs while run_in_workspace=True (#16093)

  • Optimize get_expanded_specs for StreamingWorkunit plugins (#16106)

Performance

  • Port @rule Gets to rust (#16160)

Documentation

  • Add Vicara Solutions to the users page. (#16221)

  • Document the "fromfile" feature. (#16205)

  • Document --filter options 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 run any PythonSourceField (#15849)

  • Add --debug-adapter flag to run (#15829)

User API Changes

  • Correct deprecation warning for addressing pex_binary targets by filename to 2.15 (#16056)

  • Default scala-infer force_add_siblings_as_dependencies to False. (#16031)

  • Upgrade Pex to 2.1.94. (#16029)

  • Remove python-infer inits option. (#16036)

  • Remove golang expected_version option. (#16033)

  • Remove the filter goal. (#16032)

  • Default --use-deprecated-pex-binary-run-semantics to False. (#16034)

  • Default python tailor_pex_binary_targets to False. (#16035)

  • Deprecate not setting tailor_pex_binary_targets explictly (#15962)

  • tailor and update-build-files require 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

  • fmt plugins 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 @rules to synchronous engine methods (#15979)

Documentation

  • Fix CI provider table rendering. (#16051)

  • Update docs with 2.12 changes: default Pex lockfile generator, pants.toml env var interpolation, pip VCS requirements, and Python interpreter constraints (#16000)

  • Fix alpha release email template typo. (#16027)

  • Document Docker registries configuration options for skip_push and extra_image_tags. (#16015)

  • Update Python documentation with 2.11 changes (#15857)

  • Update the docs for fmt and 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-semantics and default to false (#15939)

  • Remove deprecated [golang].expected_version in 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-behavior global 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 nails 0.13.0 to pick up support for JDK >=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_with calls to a remote Store (#15901)

  • Improve mypy runs by adding the "incremental" mypy cache (#16276)

Documentation

  • Add test debugging doc (#15948)

  • Update certificate environment variable advice for #14808. (#15943)

  • Clarify deprecation messages for tailor and update-build-files requiring CLI arguments (#15932)

  • Fix GCF Handler documentation. (#16284)

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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

pantsbuild.pants-2.14.0rc0-cp39-cp39-macosx_11_0_arm64.whl (8.6 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pantsbuild.pants-2.14.0rc0-cp39-cp39-macosx_10_16_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.9 macOS 10.16+ x86-64

pantsbuild.pants-2.14.0rc0-cp39-cp39-macosx_10_15_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

pantsbuild.pants-2.14.0rc0-cp38-cp38-macosx_11_0_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.8 macOS 11.0+ x86-64

pantsbuild.pants-2.14.0rc0-cp38-cp38-macosx_10_15_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

pantsbuild.pants-2.14.0rc0-cp37-cp37m-macosx_10_16_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.7m macOS 10.16+ x86-64

pantsbuild.pants-2.14.0rc0-cp37-cp37m-macosx_10_15_x86_64.whl (9.0 MB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

File details

Details for the file pantsbuild.pants-2.14.0rc0-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0rc0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1ecc402ea6668bd0e5c4c80ede3471bcdd6407a9903a6dc99141af134fa8d5c5
MD5 dd598efc56f0b6e136f5c02db15f4b92
BLAKE2b-256 1a2286434bf2562debfb14a12be627ff656478989685abd780f8e080c66be4b9

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.14.0rc0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0rc0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 efd60fea2b9fb9e90eebc2a29503eb7f0f09675014958cf4136395f56143485e
MD5 e7d8664f81290842c32888ce5350a6dd
BLAKE2b-256 70645799884133dce0fe8afa159b4c6de24a49fb60c3265a7a66db3fef7beaee

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.14.0rc0-cp39-cp39-macosx_10_16_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0rc0-cp39-cp39-macosx_10_16_x86_64.whl
Algorithm Hash digest
SHA256 6dcc4dc389dfe3320e508871ee83d4bfeea3b0038c1e40479950b9374b3f6c0e
MD5 aabc7f9e70470f88ef97e4d9acdce25c
BLAKE2b-256 18c485cf983d04fd40893c916a77a95c24959c4e85585b5e868a233fe07e55bf

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.14.0rc0-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0rc0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 f28d9667b493143d9df13aa53633cb8c384406feea713c74192b9d996512f6bd
MD5 3f770c5f969551238f2cb5b4857a0aa4
BLAKE2b-256 55de45d91ae1bc1ee348a3d4dec16987c42d8259977a6321110be71a4b1819be

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.14.0rc0-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0rc0-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c9f0d56563dcc9bd7f585c01bc2a12484e9bf9b70ed04f45dd779c0f756f7133
MD5 e0bf89db96164bc6e0c4516b402dfbf9
BLAKE2b-256 044d9b073c8d07056395c12a90adc6fd759a0b59b80ff27be799982799311ecd

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.14.0rc0-cp38-cp38-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0rc0-cp38-cp38-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 340f8777cf107ddcb2bcb5329d0ab093dcdad78d0588bf6f8f3b7aa7687d3da6
MD5 9bd553205c2aaf058c5816d19f98762a
BLAKE2b-256 9ddf3d35ae15a091e6bcaf1a950565cac778dcfc4307b4a55015cc5dd3401717

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.14.0rc0-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0rc0-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c39184f80735bd48226ef613f6b8f58764cba4f40adaf209f8cd2d68ee8bf27b
MD5 5a41d82b4ccab9ef3e54e7f8eb85d5eb
BLAKE2b-256 3e94e7da34235afc5966a96b500b182f46d97c951107591a59fb24dd910429ca

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.14.0rc0-cp37-cp37m-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0rc0-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1473f19f02456b5b7248d7ca7f2045936b85670c32e83d03dcced137f7f0103e
MD5 1bd550003ac6e71cc012d7a26ab19cef
BLAKE2b-256 35680cdf9e252c83b88219925e97ccfe86f90a0cec71b840219d8497c9a1222e

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.14.0rc0-cp37-cp37m-macosx_10_16_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0rc0-cp37-cp37m-macosx_10_16_x86_64.whl
Algorithm Hash digest
SHA256 0e4af4db57f64c79c550ffea7459ceeebf69d882f51b0b1805ab6ee286dcdc0d
MD5 7f694059d7b571dedd3b9814960f00ef
BLAKE2b-256 e42f98a1e00a529a9ed8dc7fc399e3fded82eb8c41b3a03c6678d31ebe2f054c

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.14.0rc0-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0rc0-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3c183d37197a0d2e5abe77f3fdb63d302dbd10d78fc5d3b803989bc57ce9156c
MD5 4e74108192c97533fb39119b5621dbad
BLAKE2b-256 e068067bb8bc542e10bd3ac8032f9e9f86f789e81434e3f2699a65d66db805d0

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page