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

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.0a1-cp39-cp39-macosx_11_0_arm64.whl (8.6 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pantsbuild.pants-2.14.0a1-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.0a1-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.0a1-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.0a1-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.0a1-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.0a1-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.0a1-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0a1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 714fe47a302110e84eb33cc660951cff84480545b706b10a26bb11b68f073a9a
MD5 019d3208e87b8eb30be6a74e6dc2702a
BLAKE2b-256 e432947a22c280911a5c410d09d0ca9ea7d9eb793a72bd3bcdcb41dc1ff58554

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0a1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f7e18f0408d090d1687d9730669c06c60eda123d077d1f32587767c4a1e011ae
MD5 3afb1009544d198252bafe62f35aac0a
BLAKE2b-256 d8cad3409154a0255410d4857cc4644ead71bc50b8957f7dc0829fa640eabdfc

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0a1-cp39-cp39-macosx_10_16_x86_64.whl
Algorithm Hash digest
SHA256 90bbd02d6f50f5df0bca584d140fcf2e333b5b829f14e5c439d018669b9588ab
MD5 e1f769d341a5ae15a7f39c337714f3a6
BLAKE2b-256 0dce3ede6f3e1864a648f63ae808417210c52557741401836ab4e9a9e90340b3

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0a1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 4f6d5ab415bfc304a664cc1a3019f81b4e501e7363fb50234e6f0937e47cb130
MD5 b5122fdf454c9e25ca7baa0cca45d85c
BLAKE2b-256 fca101badb0d936040bdd9b176bb8e20102ee781e3073eae113e35f0764a6633

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0a1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c9d3f619e52e040106648ca99054ed77611b3eb13115ca44dbfcde9cc0b2258c
MD5 0117e6de4afc9accadc712916475c1c8
BLAKE2b-256 140270e60db0482c00df80dd7f8b6578a0eddf809bb24946053f0686aee536a1

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0a1-cp38-cp38-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 63b96b03124f4cedd0bdfe392521c3c289d282c8732aee6c1f7d2b5e8686104c
MD5 32c59cb44ae2d7ddde83255c8f02dfe2
BLAKE2b-256 ddc06645b6fd670a5c953c40e70fc87a5138db0bd7d3ed22a36160268d2d3ed7

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0a1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 30c170fc78936147dbb318da7c016704dbcd4d3b02c86789828f8c4707794a60
MD5 c3d6045c0ac49d166d94b807420b1b40
BLAKE2b-256 a65f07d317d8ba2052f36233021108568af34b9888fab665975425eff6885123

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0a1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 78133c86090fc6c6521ee6660401407a68b9b635f77f25b0bede7064b3cdb070
MD5 8c6f8119809b7b63792b85c37d335a1d
BLAKE2b-256 a92050e0eab58754eff07a14c93770f428b0afc9d533388edbaf4f5313cd1aab

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0a1-cp37-cp37m-macosx_10_16_x86_64.whl
Algorithm Hash digest
SHA256 8a390c1d400dda570f5a5a8f7cdcefa8650e23d8352e20bdc3db9db25bd79cf0
MD5 c17358ccc23af79d8beeb639f0a17140
BLAKE2b-256 857737eb2551a319246257dfec4140566af45c0dce2831bc4b9fb48d03f03a55

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.14.0a1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 093832e67411b2b8e8bd558cabe91563675da18aedb4503f5f88bae68cdbf6e9
MD5 45cea897230791f58d870e0705c35d3a
BLAKE2b-256 90b9c515fede1a9a71f8fa66e294c50b69aba4e954b3a7e6e26a2a90032d4e8d

See more details on using hashes here.

Provenance

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