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.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)

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)

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

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)

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

If you're not sure about the file name format, learn more about wheel file names.

pantsbuild.pants-2.12.0rc1-cp39-cp39-macosx_11_0_arm64.whl (7.9 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

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

Uploaded CPython 3.9macOS 10.15+ x86-64

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

Uploaded CPython 3.8macOS 10.15+ x86-64

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

Uploaded CPython 3.7mmacOS 10.15+ x86-64

File details

Details for the file pantsbuild.pants-2.12.0rc1-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.12.0rc1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7e57eefeff6151895565ec59a19557946087151f52ee1f5d629dcfa7c396cd25
MD5 fac35c83f24b5b316f483d28b2b5151c
BLAKE2b-256 7863c3636c287cf95a9085369dd19b3598289851cd7a12252c9038c76badf0c8

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.12.0rc1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.12.0rc1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4fec15ccfa0cb90933243704218d59a9c7581e9d7d09fbb689c4328abab35033
MD5 3e668321cec8699f1b7403cc6421b936
BLAKE2b-256 8f9e1675963dd96f1d4a8f5e78a90823b7ddea99610b45a0b48209c7b2c3cd90

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.12.0rc1-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.12.0rc1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6d6ceec059fb68a5af0b4ecf64b922ef9e86ca875a8e952f089cfe7e8c109a46
MD5 5f22c0da2ad74adde4b7706e4a4c228f
BLAKE2b-256 ad6bf0eba5edeb500fbc1a3a36dcd6376381197fe0a482fba17dd9ac5bd6307f

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.12.0rc1-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.12.0rc1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b83e52b68287dfc908c7e60793615fa4a51d66b01d146c1494a2a24a44d5506f
MD5 85ab3bf1ac194ebe54a6e71761b77a40
BLAKE2b-256 3cdac4e27bb395080645f1b5e620da22ec8b6331ae4a49bd038d1750e404e619

See more details on using hashes here.

File details

Details for the file pantsbuild.pants-2.12.0rc1-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.12.0rc1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d3fb0325625378da408b7d21b1b12097bb3b5fb55d550366f2614586be56385c
MD5 7b4238d536e6c14467c6f63f2411b1f0
BLAKE2b-256 768c81d72fb8990740f1e5ec621c7cb5010346d1fa45cf71427e47aeaf6278ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.12.0rc1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2c77480e254396a92f27abef71fd53621902ccdd4bb28daf152b72cedf8923b3
MD5 c12bdb15aa92439d9cd5595901044b48
BLAKE2b-256 0d97eaa3f01153be9dc5941c7370e809e5d01f1e01276b1bf6af4006d746b851

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.12.0rc1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 982cb0bf9acca1bceb0434fe7e7b375368879f46ecc04595bc0d41c9d5c7d08a
MD5 9557da7ed43e06d5b5659deea4721c97
BLAKE2b-256 46bd0906abb738fb33927e5f218b3649f8cede970f29efc2f9765f612363e0ac

See more details on using hashes here.

Supported by

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