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.12.x Release Series

2.12.1 (Aug 31, 2022)

The second stable release of 2.12, with only updates to the docs website.

Documentation

  • Create page of Pants team members and proudest contribs (Cherry-pick of #16676) (#16678)

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

2.12.1rc4 (Aug 24, 2022)

User API Changes

  • Bump default version of setuptools to 63.4 (#16619)

Bug fixes

  • Add grpcio to default Python module mapping (#16605)

  • Fix IndexError when codegen is missing expected python_requirement targets (#16590)

Documentation

  • Fix broken link to community page (Cherry-pick of #16468) (#16556)

2.12.1rc3 (Aug 14, 2022)

Bug fixes

  • Include Helm chart dependency inference rules (cherrypick of #16368) (#16490)

  • Fix docker invalidation bug. (cherrypick #16419) (#16479)

  • Explicitly add directory entries to resources JARs (Cherry-pick of #16264) (#16295)

Documentation

  • Fix source roots docs (Cherry-pick of #16363) (#16364)

  • Link to dev.to post on resource hub (cherrypick #16331) (#16348)

2.12.1rc2 (Jul 20, 2022)

Bug fixes

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

  • [internal] Refactors output_field to default to something that disambiguates on parametrized fields (cherry-pick of #16232) (#16248)

2.12.1rc1 (Jul 19, 2022)

Plugin API Changes

  • Generically compute dynamic defaults for Fields (Cherry-pick of #16206) (#16220)

Bug fixes

  • Fix scala plugins args order causing cache issues (Cherry-pick of #16228) (#16233)

  • Fix explicit dependencies of parametrized targets not working for some target types (Cherry-pick of #16197) (#16213)

  • Fill address parameters in all cases, rather than only when a consumer is parametrized. (Cherry-pick of #16198) (#16211)

  • Use filelists to make archive creation tasks more reliable (Cherry-pick of #16183) (#16185)

Documentation

  • Document the "fromfile" feature. (cherrypick of #16205) (#16207)

2.12.1rc0 (Jul 14, 2022)

User API Changes

  • Fix poetry locks missing hashes. (Cherry-pick of #16112) (#16114)

Bug fixes

  • Fix defaulting of parameters in explicitly specified deps on parametrized targets for AsyncFieldMixin (Cherry-pick of #16176) (#16179)

  • Improve memoization of interpreter constraints, Python parsing, and request classes (Cherry-pick of #16141) (#16153)

  • Fix pantsd TTY handling. (Cherry-pick of #16038) (#16047)

Documentation

  • Updates installation docs to refer to the 1-step setup script (Cherry-picks of #16149) (#16157)

  • Add 2.12 changelog to docsite (cherrypick #16136) (#16138)

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

  • Fix CI provider table rendering. (cherrypick of #16051) (#16061)

  • Document Docker registries configuration options for skip_push and extra_image_tags. (Cherry-pick of #16015) (#16021)

  • Bump 2.12 install version (#16002)

2.12.0 (Jun 28, 2022)

The first stable release of the 2.12.x series, with only documentation changes since the previous rc!

Documentation

  • Update certificate environment variable advice for #14808. (Cherry-pick of #15943) (#15973)

  • Update the docs for fmt and test report changes (Cherry-pick of #15968) (#15970)

2.12.0rc3 (Jun 23, 2022)

New Features

  • Add option for max wait before terminating interactive process (Cherry-pick of #15767) (#15908)

User API Changes

  • Change the default remote_cache_warnings warnings behavior to backoff. (Cherry-pick of #15745) (#15746)

Plugin API Changes

  • Introduce a plugin API to provide all thread local state, and deprecate stdio-specific methods (Cherry-pick of #15890) (#15907)

Bug fixes

  • Upgrade to nails 0.13.0 to pick up support for JDK >=13. (Cherry-pick of #15899) (#15906)

  • Allow JVM memory controls to bound the process pool size to less than the process parallelism (Cherry-pick of #15903) (#15905)

  • Fix [python-infer].inits and [python-infer].conftests to consider resolve field (Cherry-pick of #15787) (#15793)

  • Record metrics for remote cache store errors (Cherry-pick of #15744) (#15747)

  • Fix help for --process-total-child-memory-usage and --process-per-child-memory-usage (Cherry-pick of #15733) (#15737)

Documentation

  • Fix broken links to tailor documentation (#15843)

  • Adds current contents of readme.com docs to repo and adds notes on how to sync. (Cherry-picks #15810) (#15820)

  • Handle anchors in doc_url() correctly (cherrypick of #15812) (#15823)

2.12.0rc2 (May 31, 2022)

New Features

  • Add Memory controls to JVM processes (Cherry-pick of #15224) (#15682)

User API Changes

  • Upgrade Pex to 2.1.90. (Cherry-pick of #15656) (#15658)

Bug fixes

  • Don't install Pex-style lockfile when no requirements used (Cherry-pick of #15706) (#15707)

  • python_requirements() can handle -r reqs.txt (Cherry-pick of #15672) (#15677)

  • Prevent collisions between attempts to materialize an immutable input digest. (Cherry-pick of #15652) (#15680)

  • Choose correct dialect according to scala-version (Cherry-pick of #15649) (#15681)

2.12.0rc1 (May 23, 2022)

New Features

  • Allow turning off export of Python tools like black (Cherry-pick of #15509) (#15511)

  • Support relative address syntax for JVM compiler plugin artifacts (Cherry-pick of #15462) (#15468)

User API Changes

  • Upgrade Pex to 2.1.88. (Cherry-pick of #15484) (#15485)

Bug fixes

  • Fix incorrect digest for JVM multiple jvm_artifact(.., jar=..) entries (Cherry-pick of #15571) (#15611)

  • Record Scala package object as provided name (Cherry-pick of #15582) (#15608)

  • Don't give a subsequent formatter an empty snapshot after skipping (Cherry-pick of #15483) (#15602)

  • Fix lockfile generation for Docker and Terraform to not require Python backend (Cherry-pick of #15453) (#15604)

  • Fix Scala inference not inferring a symbol name after a function call (Cherry-pick of #15565) (#15603)

  • Fix non-deterministic order of jvm_artifact(.., excludes=..) (Cherry-pick of #15542) (#15575)

  • Fix JVM resource classification and artifact grouping (Cherry-pick of #15567) (#15573)

  • Fix tag filtering with --changed-dependees (Cherry-pick of #15546) (#15564)

  • Improve name= used for python_requirements target generators with tailor (Cherry-pick of #15507) (#15519)

  • jvm: don't generate default tool lockfiles (Cherry pick of #15488) (#15498)

  • jvm: fix incorrect check for root-only ClasspathEntryRequest implementations (Cherry pick of #15494) (#15496)

  • kotlin: the plugin_id field on kotlinc_plugin target is optional (Cherry-pick of #15459) (#15466)

  • kotlin: remove stray scala references (Cherry-pick of #15461) (#15465)

Performance

  • lint only finds targets and files if the relevant linters were specified (Cherry-pick of #15579) (#15601)

2.12.0rc0 (May 13, 2022)

User API Changes

  • Upgrade default Protoc version to 3.20.1 (native Apple Silicon support) (Cherry-pick of #15424) (#15441)

  • Require that a target's interpreter_constraints are a subset of their dependencies' (Cherry-pick of #15373) (#15407)

Plugin API Changes

  • Move get_git deprecation to start in 2.14.0.dev0 (Cherry-pick of #15423) (#15437)

Bug fixes

  • Fix tags to work with filesystem arguments, overrides field, and python_tests (Cherry-pick of #15394) (#15412)

  • Support the {chroot} env placeholder for all interactive processes that are not executed in the workspace. (Cherry-pick of #15401) (#15405)

  • Fix [] in file names with target generators (Cherry-pick of #15383) (#15403)

  • Fix tailor detection of existing python_requirements targets (Cherry-pick of #15363) (#15372)

  • Add the "named args explanation" to other relevant parametrize error messages. (Cherry-pick of #15362) (#15370)

  • Use abspath to sandbox in PATH for docker tool shims. (Cherry-pick of #15341) (#15356)

  • Fix non-determinism of package_data in generated setup.py files (Cherry-pick of #15292) (#15299)

  • Fix a bug in the python venv export logic. (#15294) (#15297)

Performance

  • Eagerly skip tools with default lockfiles in export-lockfiles goal (Cherry-pick of #15304) (#15308)

Documentation

  • Improve error message for dependencies on incompatible Python resolves (Cherry-pick of #15416) (#15439)

  • Improve help and error message for [python-infer].unowned_dependency_behavior (Cherry-pick of #15334) (#15391)

  • Disallow ! patterns in build_ignore. (Cherry-pick of #15366) (#15368)

  • Improve error message for resolves x interpreter constraints issues (Cherry-pick of #15314) (#15364)

  • Fix error output of parametrize() (Cherry-pick of #15339) (#15348)

2.12.0a0 (Apr 29, 2022)

New Features

  • Support poetry wildcard requirements. (#15213)

  • Implement tailor goal for Helm charts (#15192)

  • Write virtualenvs for Python tools as part of export (#15098)

User API Changes

  • Upgrade Pex to 2.1.84. (#15288)

Plugin API Changes

  • Allow for arbitrary suffixes when extracting (#15257)

  • Add lz4 support to archive extraction (#15245)

Bug fixes

  • Simplify BSP metadata merging, and handle the empty list. (#15283)

  • BSP resolve filtering observes computed default values of resolve fields (#15282)

  • Memoize equality for CoarsenedTarget(s) to avoid exponential runtime in check. (#15277)

  • Fix ambiguity of Scala package objects with class or object definitions (#15265)

  • Fix issue with Docker publish when using [docker] tools. (#15255)

  • Do not lowercase Docker image tags. (#15254)

  • Fix the placement of the pex verbosity args. (#15243)

  • Fix use of @ in path names. (#15226)

  • Fix lockfile generation for duplicate jvm_artifact targets with jar fields. (#15219)

  • golang: add more cache keys based on tool IDs (#15205)

Performance

  • MyPy and Pylint partition inputs via CoarsenedTarget (#15141)

Documentation

  • Fix ProtobufSourcesOverridesField help message (#15272)

  • Update help for python resolves with recent improvements (#15228)

  • Improve cache-related error message to be less confusing (#15202)

  • Show experimental-bsp goal in help (#15208)

  • Mention resolve when partitioning Mypy and Pylint (#15172)

  • Don't log set up of binary shims (#15203)

2.12.0.dev3 (Apr 16, 2022)

New Features

  • Address specs for parametrized target templates expand to their created targets (#15126)

  • Implement publish goal for Helm charts (#15042)

  • add experimental kotlin backend to distribution (#15109)

  • Support pip-style VCS requirements. (#15097)

User API Changes

  • Upgrade Pex to 2.1.79. (#15125)

  • Ban terraform_module referring to subdirectories (#15106)

Plugin API Changes

  • Throw a DuplicateRuleError when there are conflicting rules in a module. (#15073)

  • Expose GitWorktree as an @rule (#15030)

Bug fixes

  • Fix Requires-Python for pantsbuild.pants wheel. (#15149)

  • Allow dashes in inferred asset strings (#15123)

  • Fix when the same python_requirement defines both type stub and implementation (#15121)

  • Fix missing field check in go protobuf rules (#15105)

Documentation

  • Last round of softwrapping help strings (#15142)

  • Softwrapping a few more files (#15138)

  • Softwrap python backend help strings (#15137)

2.12.0.dev2 (Apr 11, 2022)

New Features

  • Support for env var interpolation in config files. (#15087)

  • Support for finer control over which Docker images to push. (#15000)

  • Add a helpful hint to lint if a formatter fails (#15048)

  • Add support for Helm 3rd party dependencies (#14964)

User API Changes

  • Default [python].lockfile_generator to Pex (#15074)

  • Upgrade Pex to 2.1.78. (#15078)

  • terraform: remove terraform_modules generator target type (#15035)

  • Upgrade to Pex 2.1.77. (#15015)

  • Change JVM defaults to use Temurin JDK distribution (#15009)

Plugin API Changes

  • Remove deprecated register_options support. (#15090)

  • Remove deprecated target generator API affordances. (#15091)

  • Add @rule_helper decorator, which participates in awaitable collection (#15025)

Bug fixes

  • Enable codegen on relocated files (#15100)

  • Preserve tombstones for workunits which complete while they still have children (#15088)

  • Clean the export dir under dist/ before populating it. (#15068)

  • Do not use a repository-PEX if a PEX has platforms specified (#15031)

  • Fix default layout and use of PEX-repositories for legacy lockfiles (#15014)

  • Pin pytest 7.0.1 (#14997)

Documentation

  • files/dirs swapped in Snapshot's repr (#15101)

  • Tweak deprecation messages. (#15027)

  • Add some codegen and terraform backends to docs generator (#15036)

  • Text in angle brackets needs to be escaped for the docsite. (#15046)

  • Fix presented provider backend for rules/subsystems. (#14999)

2.12.0.dev1 (Apr 05, 2022)

New Features

  • Support restricting specific requirements to just wheels or just sdists. (#14985)

  • Add support for Helm unittest (#14849)

  • Add support for parsing address parameters to CLI specs parsing (#14949)

User API Changes

  • Merge list values across config files. (#14850)

  • Write test reports to a standard location under the distdir. (#14929)

  • Upgrade Pex to 2.1.76. (#14992)

  • Upgrade coursier to v2.1.0-M5-18-gfebf9838c (#14978)

Plugin API Changes

  • "Unify" fmt and lint rules for formatters (#14903)

  • Refactor prior_formatter_result and its usage (#14987)

  • Deprecate not implementing TargetGenerator in GenerateTargetsRequest implementors. (#14959)

Bug fixes

  • add go protobuf backend to init/BUILD (#14979)

  • Fix Pylint config check strings (#14946)

  • Fix missing check output by allowing disabled workunits to re-enable themselves (#14934)

  • Fix unrecognized field error and update-build-files to handle target generator moved fields (#14847)

Performance

  • Make PEX lockfile subsetting incremental (#14944)

Documentation

  • Don't warn if no relevant targets in glob or --changed. (#14904)

2.12.0.dev0 (Mar 25, 2022)

New Features

  • Add Protobuf formatting using buf format (#14907)

  • add registration for the Go Protobuf backend (#14874)

User API Changes

  • Remove --use-deprecated-python-macros in favor of always using target generators (#14842)

  • Add django-dotenv, django-safedelete and factory-boy to default Python module mapping (#14848)

  • Add cattrs to Python's DEFAULT_MODULE_MAPPING (#14845)

  • hcl parser 3.0.5 (#14878)

Plugin API Changes

  • FmtResult now operates on Snapshots (#14865)

Bug fixes

  • add cache key for all Go SDK invocations (#14897)

  • Unify glob-matching implementations to fix malformed snapshot created by subsetting (#14889)

  • Adds ClasspathEntryRequest classification for codegen target generators (#14893)

  • Adds jvm_jdk field to protobufs when the Scala backend is enabled (#14891)

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.12.1-cp39-cp39-macosx_11_0_arm64.whl (7.9 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pantsbuild.pants-2.12.1-cp39-cp39-macosx_10_16_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.9 macOS 10.16+ x86-64

pantsbuild.pants-2.12.1-cp39-cp39-macosx_10_15_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

pantsbuild.pants-2.12.1-cp38-cp38-macosx_11_0_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.8 macOS 11.0+ x86-64

pantsbuild.pants-2.12.1-cp38-cp38-macosx_10_15_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

pantsbuild.pants-2.12.1-cp37-cp37m-macosx_10_16_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.7m macOS 10.16+ x86-64

pantsbuild.pants-2.12.1-cp37-cp37m-macosx_10_15_x86_64.whl (8.2 MB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

File details

Details for the file pantsbuild.pants-2.12.1-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.12.1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e0c51bb2ddb46dfa196633862d7406055d74c1e9130a09672352baf12ae42be2
MD5 9a81be036aa40ff6d5a1ad5a9b0afa93
BLAKE2b-256 ac53228622f70a4fa26674dd18fb43c31240b6f02f6562cd5d6e7cd477a79a65

See more details on using hashes here.

Provenance

File details

Details for the file pantsbuild.pants-2.12.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.12.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4b80988523f562b10d658ddc719206bfd7ed714297e92cf6dce41a2c8fbdcfe2
MD5 4489d794b87a735d6fef795024ef4218
BLAKE2b-256 bf5d232965b7ce95067691ffb2d55023b72af88d3a67417b3904a7cc77d397fe

See more details on using hashes here.

Provenance

File details

Details for the file pantsbuild.pants-2.12.1-cp39-cp39-macosx_10_16_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.12.1-cp39-cp39-macosx_10_16_x86_64.whl
Algorithm Hash digest
SHA256 e4525912fb88055de0cc134ba0ef5c226967a67d409bde88ac5675a1b7a37a78
MD5 42b25144b1032f23a4f2921549ee3a19
BLAKE2b-256 f3a901b82cfd1a9e2644964bd1c8e536bc47b8bd7b154fd1adaf1c404efbb594

See more details on using hashes here.

Provenance

File details

Details for the file pantsbuild.pants-2.12.1-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.12.1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 df9fdca9d4d15394c73ce5cd9f14ee189b5f22874db78010ed974dc3fb663883
MD5 8d1e4fe191ba8a2454ba0208d5d415a7
BLAKE2b-256 eebd9e3fbf7ae6d26f62cda44a50465bd27e39e3d1acf53e8838f2dce324f435

See more details on using hashes here.

Provenance

File details

Details for the file pantsbuild.pants-2.12.1-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.12.1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dac312a37dce54a1e494af4a4f1d2aff17d81e40c8cffcfd48c1185663011569
MD5 c17c833bc01f7890820200adee9c6bb5
BLAKE2b-256 da93a2d5f488d8c18a08ff4437cf2c4a7ec58506fdec2a04a7666546b0d82bf1

See more details on using hashes here.

Provenance

File details

Details for the file pantsbuild.pants-2.12.1-cp38-cp38-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.12.1-cp38-cp38-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 92cb9753238e850edfb2e1b4f3e12222b65436d6d52d271dddfecfab9801a1ec
MD5 c98f3567a8fa50f15cb089541e96304d
BLAKE2b-256 4e17212402218449e728211b91b2e5f83fb6a3d2b98a307efc4e70ff37ee9952

See more details on using hashes here.

Provenance

File details

Details for the file pantsbuild.pants-2.12.1-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.12.1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 7dd0245b5e353608e42f9485897af172a290ec1b161b6c9502962757545b2ee3
MD5 95c624c2ae44795dd44134a8c06a5792
BLAKE2b-256 721a08132ef395173ca233fcedd25be895f43a09c455391a89b602864a26029d

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.12.1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ba2036ed3ef3ff243235f33660f3ec5075575e8a7d2826b3688eaddfbef8a985
MD5 fe542abb6b1b5603cfe2318b18f90628
BLAKE2b-256 82742ba1e097e9ef2c5c7b7653eb165e929f73848ba81c2df59cc7cca850572f

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.12.1-cp37-cp37m-macosx_10_16_x86_64.whl
Algorithm Hash digest
SHA256 d69b368822598fa32bd551cd707945655d73a1e4d310c09f8752581994cdac43
MD5 67582eaf1000f0d070b7ea1dbd83630c
BLAKE2b-256 1e47415cc702defe84d5ef994a6543735107b873be8351201d929b6c960bb188

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.12.1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 7614baacd4521249c4ebe68377d1e4b59fce50dc95bb0a671d831b76e2f1f3ef
MD5 412be944a6cd51e53f61051e58c54bde
BLAKE2b-256 c85f2d9f6c20894f29aab720a3d2f305a776d1b01da4a02530f0487093f2c9d5

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