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

2.10.0rc1 (Feb 14, 2022)

New Features

  • Improve export goal to handle multiple Python resolves (Cherry-pick of #14436) (#14454)

User API Changes

  • python_requirement uses resolve: str field, not compatible_resolves: list[str] (Cherry-pick of #14420) (#14435)

  • Migrate the Docker context tags version from <stage>.tag to tags.<stage>. (Cherry-pick of #14376) (#14403)

Bug fixes

  • Fix handling of Go version for third-party packages (Cherry-pick of #14457) (#14459)

  • Fix issue picking up base image tag from Dockerfile with a digest present. (Cherry-pick of #14447) (#14456)

  • Make sure [python].enable_resolves = false disables checking for valid resolves (Cherry-pick of #14418) (#14439)

  • Fix pants_requirements target generator to use resolves (Cherry-pick of #14417) (#14423)

  • Fix tailor when --use-deprecated-python-macros=false (Cherry-pick of #14404) (#14424)

2.10.0rc0 (Feb 07, 2022)

New Features

  • Add --fmt-only, --check-only, and --lint-only (#14356)

  • Add support for building PyOxidizer apps (#14183)

  • Adds run support for deploy_jar targets (#14352)

  • New [docker].executable_search_paths option. (#14360)

  • Support Go 1.18 fuzz test targets (#14357)

  • Validate Python user lockfiles & improve tool lockfile error message (#14353)

  • Allow using Yapf with update-build-files rather than Black (#14378)

  • Graduate Thrift Python support to be stable with pants.backend.codegen.thrift.apache.python (#14389)

User API Changes

  • Graduate Docker backend from experimental status. (#14310)

  • Graduate the Dockerfile linter Hadolint from experimental status. (#14311)

  • Merge validate goal with lint goal (#14102)

  • Rename Python resolve options and fields to not say "experimental" (#14326)

  • Add Thrift, Protobuf, Java, and Scala folders to default for [source].root_patterns (#14363)

  • Rename the download-pex-bin scope to pex-cli. (#14344)

  • Upgrade default Black version to 22.1.0 (#14324)

  • Upgrade default Pytest version to 7 (#14380)

Plugin API Changes

  • Rename LintRequest to LintTargetsRequest (#14312)

  • New (optional) API for MyPy-friendly options registration (#14331)

  • Remove PexFromTargetsRequest.additional_requirements (#14350)

  • ReplImplementation now passes root targets, not transitive closure (#14323)

  • LintRequest, FmtRequest, and CheckRequest must set name: ClassVar[str] (#14304)

Bug fixes

  • Warn when [python-protobuf].runtime_dependencies needs to use new target generator syntax (#14391)

  • Fix native cycle detection error message. (#14381)

  • Fix import parsing regression (#14349)

  • Include link dest in symlink error. (#14384)

Performance

  • Lazy load help info (#14305)

Documentation

  • Standardize how we reference formatters, linters, and checkers in goal summary (#14355)

  • Don't enumerate deprecated scopes in help. (#14345)

  • Don't render skipped tools in final summary with fmt, lint, check, and test (#14303)

2.10.0.dev3 (Jan 28, 2022)

New Features

  • Support multiple disjoint Python resolves via [python].experimental_resolves (#14299)

  • Optionally render the --dynamic-ui with Prodash (#14221)

  • Add context_root field to docker_image and default_context_root option to [docker] scope. (#14165)

User API Changes

  • Deprecate generate-user-lockfile and [python].experimental_lockfile in favor of [python].experimental_resolves (#14288)

  • Bump versions & regenerate lockfiles for several Python tools, including Twine, PyUpgrade, and MyPy Protobuf (#14277)

  • Upgrade Pex to 2.1.65. (#14256)

Plugin API Changes

  • Remove PexFromTargetsRequest(direct_deps_only: bool) (#14291)

  • Rename GenerateToolLockfileSentinel.options_scope to resolve_name (#14231)

  • Rename PythonModule to PythonModuleOwnersRequest (#14276)

Bug fixes

  • Fix plugin resolution running twice. (#14294)

  • Fix Pylint to consider transitive third-party dependencies (#14289)

  • Fix bad default module mapping for PyMongo (#14284)

  • go: filter out vendor directories in tailor (#14259)

  • Fix packaged file names for pex_binaries target generator (#14269)

  • Cap number of UI bars to terminal height (#14228)

  • Fix executability of materialized files for non-owners. (#14298)

Performance

  • Dynamically choose per-process concurrency for supported processes (#14184)

Documentation

  • Add some missing backends to generated docs (#14290)

2.10.0.dev2 (Jan 22, 2022)

New Features

  • JVM lockfile invalidation headers and verification (#14185)

  • Add new api-types help goal (#14081)

  • Add line numbers to --unowned-dependency-behavior errors (#14169)

  • Add Flake8 first-party plugin support (#14027)

  • add runtime dependencies field for Apache Thrift for Python (#14158)

  • Add #pants: no-infer-dep pragma for ignoring imports (#14059 and #14225)

  • Add local .pants.rc support (#14142)

  • thrift: add scrooge java backend (#14043)

  • add Avro codegen support for Java (#13990)

User API Changes

  • add timeout for remote cache lookups (#14224)

  • Replace coursier-resolve goal with generate-lockfiles (#14211)

  • Replace jvm-generate-lockfiles goal with generate-lockfiles (#14176)

  • Deprecate sourcefile-validation in favor of regex-lint (#14173)

  • Deprecate python_requirements and poetry_requirements using old macro in favor of target generation (#14075)

  • Add try/except parsing to import_parser to avoid failing strict checks for optional imports (#14216)

  • Don't error on string imports with [python-infer].unowned_dependency_behavior (#14179)

Plugin API Changes

  • Remove per-language indirection for formatter plugins. (#14166)

Bug fixes

  • Fix complex __import__ statements failing to parse with Python 2.7 - 3.7 (#14232)

  • LockfileMetadata - Replace flaky _header_dict() mechanism with more robust header_attrs mechanism (#14229)

  • More accurate reported runtime when pantsd is in use. (#14177)

  • Fix Pylint to run on transitive dependencies to avoid underreporting issues (#13918)

  • [Docker] Fix bug when a putative target address did not exist. (#14125)

  • Fix immutable inputs DCL bug. (#14016)

Performance

  • Batching of lint and fmt invokes (#14186)

Documentation

  • [Doc] Include backend source for goals, subsystems and targets in generated docsite. (#14126)

2.10.0.dev1 (Jan 07, 2022)

New Features

  • JVM Resources support (#13908)

  • Expose Docker build context hash for image tag interpolation. (#13959)

  • Add Thrift IDL codegen using Apache Thrift for Python and Java and Scrooge for Scala (#13987)

  • Add new image_labels field to docker_image. (#13973)

User API Changes

  • Deprecate [validate].detail_level in favor of [sourcefile-validation].detail_level (#14103)

  • Upgrade Hadolint (dockerfile linter) to from 2.6.0 to 2.8.0 (#14110)

  • Change third party module mapping to consider resolves (#14034)

Plugin API Changes

  • Fix @rule effect validation for not cacheable types. (#14069)

  • Allow plugins to use range requirements by applying constraints to plugin resolution (#14058)

Bug fixes

  • Reduce output from scalafmt, and lower reflective access option threshold for Google Java Format. (#14109)

  • Hook up Scalafmt and Google Java Format to ./pants lint (#14108)

  • Fix validate goal crashing if not configured (#14104)

  • Fix dropped output race during UI teardown (#14093)

  • Fix incorrectly setting name on python_requirements macro (#14065)

  • [jvm] Use appropriate coordinate serialization for Coursier CLI inputs. (#14038)

  • Fix .pyi type stubs to show up in python_distribution (#14033)

  • Fix file sources codegen for the Docker build context. (#14024)

  • [jvm] Parse maven coordinates using regular expression (#14010)

  • [jvm] Fix use of multiple scalac plugins when one plugin has multiple classpath entries (#14012)

Documentation

  • Include provider info in help output for subsystems and target types. (#13993)

  • Fix help strings which were accidentally tuples, and add a validation. (#14057)

2.10.0.dev0 (Dec 27, 2021)

New Features

  • Add duration and cache source to test output. (#13889)

  • Add pex_binaries target generator (#13910)

  • Support Docker build target stage (#13956)

  • Add ssh field to docker_image. (#13957)

  • Docker FROM target dep inference (#13921)

  • Docker context troubleshooter (#13896)

  • java: add protobuf code generation support using protoc (#13989)

  • Support test --debug with scalatest and junit. (#13966)

User API Changes

  • Update shellcheck default version to v0.8.0 (#13983)

  • Upgrade to Pex 2.1.61 and use --venv copies. (#13979)

  • Remove deprecated [python-setup] in favor of [python] (#14004)

  • Remove deprecated typecheck goal as alias for check (#13929)

  • Remove deprecated pants_requirement in favor of pants_requirements (#13927)

  • Remove deprecated --process-execution-local-cleanup and --process-execution-local-cache in favor of --process-cleanup and --local-cache (#13928)

Plugin API Changes

  • Add OptionalSingleSourceField (#13982)

  • Remove deprecated RuleRunner methods create_file(s) and add_to_build_file. (#13954)

  • Revert "Turn off validation for unset SourcesField if required=False" (#13856) (#13944)

Bug fixes

  • [jvm] Fix parsing of Coursier report coordinates when packaging is reported. (#13996)

  • Restore the pants namespace package. (#13972)

  • Fix --log-levels-by-target not working for logs from Python code (#13939)

  • Fix tailor not setting the name field (#13913)

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.10.0rc1-cp39-cp39-macosx_11_0_arm64.whl (8.0 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

pantsbuild.pants-2.10.0rc1-cp39-cp39-macosx_10_15_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

pantsbuild.pants-2.10.0rc1-cp38-cp38-macosx_10_15_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

pantsbuild.pants-2.10.0rc1-cp37-cp37m-macosx_10_15_x86_64.whl (8.3 MB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

File details

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

File metadata

  • Download URL: pantsbuild.pants-2.10.0rc1-cp39-cp39-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 45.7 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for pantsbuild.pants-2.10.0rc1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 d73ed1878abdeb8112dbb28d0144f94361dfe1cfc503c3b7d60a94283a829f2e
MD5 c52519406a326bbc44b5be5570071bfd
BLAKE2b-256 56113ec92fc7ae049cbfcd03438acbfa41b6d6376e126c89d2ee215dd50387e7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pantsbuild.pants-2.10.0rc1-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for pantsbuild.pants-2.10.0rc1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 01a0d46311b80b928f036faaf4f5967ad68cf093fd57d1f65492921cb734a208
MD5 227ffc7d719520ff4ad1177e66920b10
BLAKE2b-256 86d95b06a64b080d7ef53f08351a970c304bb9afeb1d9450fc75f1296822feef

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pantsbuild.pants-2.10.0rc1-cp39-cp39-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 8.3 MB
  • Tags: CPython 3.9, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for pantsbuild.pants-2.10.0rc1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 82349e5a039ca45d025a1ccf1d246af3c58812a455b607e14ab7db86dadd2952
MD5 5391216f69ec789014fcf995ea328bd0
BLAKE2b-256 443f46d694ce17f7a5f219222065d7eead0de957da65eef1a5511aeed1d27742

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pantsbuild.pants-2.10.0rc1-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 45.7 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for pantsbuild.pants-2.10.0rc1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 fd65b9a30a2cef22f45ed54738ddb937294d2f6ece3f8c9593b4efcc9ef9e5de
MD5 37fd33cd0c8a8ce4c13ce4d9a2ca4dd0
BLAKE2b-256 eac635c63d8f00b98d3076628055a0a47787f1a8ca95a99677c56c504d74d852

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pantsbuild.pants-2.10.0rc1-cp38-cp38-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 8.3 MB
  • Tags: CPython 3.8, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for pantsbuild.pants-2.10.0rc1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2f2543a352fd45a8654da6bb34b0a936a34f463b1b846fa4a5c6b77982887819
MD5 8f884faef43776f6d145b952ef36d7ad
BLAKE2b-256 773243262997e9a8e31c53aa9d1501a3c0a936d9a849064d97aba42c30ec1fa1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pantsbuild.pants-2.10.0rc1-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 45.7 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for pantsbuild.pants-2.10.0rc1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 9384f17538ac36de7ea5f34782034646ece3687fd546e11ed11dc8aa88aa2d42
MD5 455b12a8dbadc5da6176ac058264a60f
BLAKE2b-256 7371c6f84a477d2b25610fbf039f0002a5dbe393538763d9c257793cd1e37d35

See more details on using hashes here.

File details

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

File metadata

  • Download URL: pantsbuild.pants-2.10.0rc1-cp37-cp37m-macosx_10_15_x86_64.whl
  • Upload date:
  • Size: 8.3 MB
  • Tags: CPython 3.7m, macOS 10.15+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.0 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for pantsbuild.pants-2.10.0rc1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 fd9fd29941a2d2e017c4e8f65d34daac15b4a1d5a3ab6cb057adccedb8c52196
MD5 26dcd9d6df6e39e4b16e4079c0f5ab0d
BLAKE2b-256 8062a7153a3f6077ff3f7efeac61b09865168023211948043be83029c794f530

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