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.0rc2 (Feb 26, 2022)

New Features

  • New --docker-build-verbose option to print build output to the console. (Cherry pick of #14557) (#14597)

  • Support include_requirements & complete_platforms for python_awslambda. (Cherry-picks of #14532 & #14469) (#14533)

  • Support complete_platforms for Python GCFs. (#14530) (#14531)

  • Plumb Pex's --complete-platform for pex_binary. (#14526) (#14528)

User API Changes

  • Add output_path field to pyoxidizer_binary and change its default destination (Cherry-pick of #14607) (#14611)

  • Upgrade Pex to 2.1.67. (Cherry-pick of #14544) (#14546)

Bug fixes

  • Fix pyoxidizer_binary to support python_distribution targets that depend on others (cherry-pick of #14620) (#14626)

  • Coursier caches are now determined by -repos configuration (#14603) (#14606)

  • Fix PyOxidizer to write to ~/.cache/pants by using a named cache (Cherry-pick of #14582) (#14590)

  • adds --no-default to Coursier args so that we only use user-configured maven repos (#14581) (#14584)

  • Fix PyOxidizer depending on python_distribution with sdist=True (Cherry-pick of #14394) (#14568)

  • Avoid duplicated deprecation warnings by memoization. (Cherry-pick of #14511) (#14553)

  • Fix coverage base global report creation bug (cherypick of #14547) (#14549)

Performance

  • Add support for rendering a summary of objects held by the graph (cherrypick of #14638) (#14644)

  • Shortcircuit source subsetting if there are no distributions. (cherrypick of #14564) (#14566)

  • Calculate local distribution contents once per distribution (cherrypick of #14551) (#14555)

Documentation

  • Rewrite help for dependencies field to mention generated targets (Cherry-pick of #14621) (#14627)

  • Don't leak local paths into generated docs. (cherrypick #14591) (#14592)

  • Add disclaimer about [python].enable_resolves and lockfile generation (Cherry-pick of #14475) (#14479)

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

Uploaded CPython 3.9 macOS 11.0+ ARM64

pantsbuild.pants-2.10.0rc2-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.0rc2-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.0rc2-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.0rc2-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

  • Download URL: pantsbuild.pants-2.10.0rc2-cp39-cp39-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 45.8 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.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.7

File hashes

Hashes for pantsbuild.pants-2.10.0rc2-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f22f387bdf22b95f1fd18e9f8c126dbb149de813787ada17ebaf0dbf4fdba9e8
MD5 c44967667fc27e4e6c86d2a6c8571c17
BLAKE2b-256 3482522e74aa87093d916ead2d44b659badadf54bbc671676819b54e4bc6d719

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pantsbuild.pants-2.10.0rc2-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.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10

File hashes

Hashes for pantsbuild.pants-2.10.0rc2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 348cacb4f931d69f446589d255a3cc2ba452650eb3205fa44c2d3087b0111dd6
MD5 229cda4e34ffffbf8ed943ca1aba574e
BLAKE2b-256 34d7e489e8a7c436260cbc5e9168b8e3dc3882ffdba5375795808e8a73db9687

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pantsbuild.pants-2.10.0rc2-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.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.7

File hashes

Hashes for pantsbuild.pants-2.10.0rc2-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 0b1bded2c7ff552badcf4af0407cc49a0b4cdadb3845dcf929b0c34641e72a18
MD5 c720ecebd165a1fbfc58f04d691951f1
BLAKE2b-256 1bc216bab68d2f259286e8a6d7d84de56f5d0761c399cca1cf9eb2bc9dc47508

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pantsbuild.pants-2.10.0rc2-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 45.8 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.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.7

File hashes

Hashes for pantsbuild.pants-2.10.0rc2-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bc79659d279b524cd0908c05ddb343d866c04a0eef28c4e594fd56d00e7b5004
MD5 7d6a74175cc9d88a636d5a30790dd63d
BLAKE2b-256 0d4fa6144815b1403b5cbb4ebe8c2c77d92301015a30b15fc90c66d119aedf4f

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pantsbuild.pants-2.10.0rc2-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.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.7

File hashes

Hashes for pantsbuild.pants-2.10.0rc2-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 50fb5b979f83c94fe5a214c532ecddc08c72c1fc3b21de4c769664f8200b9609
MD5 5a1d074905e4440d106f33aae5d63e5d
BLAKE2b-256 366180b022bdba4b01665e27436faf324c3f7a7788f7336971077ad25b4b0ffb

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pantsbuild.pants-2.10.0rc2-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 45.8 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.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.7

File hashes

Hashes for pantsbuild.pants-2.10.0rc2-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e5aca9bef959f303a54f4fac963c4a7a2c1e8f86a79416cefb4b51eee5b1b80c
MD5 6c3ab5f196c4916f5dee920854a6b73c
BLAKE2b-256 d977b6b0ab0f3a3e728a89a6e3ae8799fb77aeab55c031316a441b203172f253

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: pantsbuild.pants-2.10.0rc2-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.63.0 importlib-metadata/4.11.2 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.7.7

File hashes

Hashes for pantsbuild.pants-2.10.0rc2-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e43b4312b0d44877782f3f1e6180fc9c84a14057358d5c5c080965bba4fcce2d
MD5 96e09dab352d7278b2543367a14afc36
BLAKE2b-256 2bce5cd69d94c4e5a615cfeb103350baf1077b2bfd93b976415a4bc13455b3ac

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