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

2.11.0rc2 (Apr 08, 2022)

User API Changes

  • Upgrade Pex to 2.1.78. (Cherry-pick of #15078) (#15079)

  • terraform: remove terraform_modules generator target type (Cherry pick of #15035) (#15063)

Bug fixes

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

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

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

  • Pin pytest 7.0.1 (cherrypick of #14997) (#15013)

Documentation

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

  • Fix presented provider backend for rules/subsystems. (Cherry pick of #14999) (#15024)

2.11.0rc1 (Mar 31, 2022)

New Features

  • Add Protobuf formatting using buf format (Cherry pick of #14907) ([#14917](https://github.com/pantsbuild/pa

  • Add registration for the Go Protobuf backend (Cherry pick of #14874) (#14900)

  • Restore experimental codegen backends disabled for 2.10 release (Cherry-pick of #14407) (#14932)

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

User API Changes

  • Upgrade to Pex 2.1.75 for VCS lock support and deadlock fix (Cherry-pick of #14970) (#14976)

Plugin API Changes

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

Bug fixes

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

  • Fix missing check output by allowing disabled workunits to re-enable themselves (cherrypick of #14854, #14856, #14934) (#14942)

  • Upgrade Pex to 2.1.73. (#14875) (#14880)

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

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

  • add cache key for all Go SDK invocations (Cherry pick of #14897) (#14901)

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

Performance

  • Make PEX lockfile subsetting incremental (cherry-pick of #14944) (#14956)

2.11.0rc0 (Mar 17, 2022)

New Features

  • Generate and compile Go from Protobuf (#14714)

  • Add the ability to infer assets from strings for Python (#14049)

  • Add [python].lockfile_generator to allow using Pex for lockfile generation (#14740)

  • Add protobuf linting using Buf with pants.backend.codegen.protobuf.lint.buf backend (#14540)

  • Add run support to pyoxidizer_binary (#14646)

  • Add new [docker].tools option (#14361)

  • Add build_file_dir() symbol to BUILD files (#14827)

  • Adds excludes field to jvm_artifact targets (#14715)

  • Basic support for Helm charts (#14658)

  • Support package goal for Helm charts (#14797)

  • Python dependency inference supports multiple resolves for first-party targets (#14486)

  • Default the parameters of parametrized dependencies on parametrized targets (#14788)

  • Allow for codegen targets to be used directly by JVM compiler requests (#14751)

User API Changes

  • Update default Python interpreter constraints to not use Python 3.6 (#14803)

  • python_sources and python_tests target generators no longer impact interpreter constraints calculations (#14821)

  • Target generators (like python_sources) now only directly depend on their generated targets (#14766)

  • Deprecate not explicitly setting [python].lockfile_generator (#14817)

  • Change default [python].resolves from 3rdparty/python/default_lockfile.txt to 3rdparty/python/default.lock (Cherry-pick of #14815) (#14818)

  • Swap the order of generated names and parameters in Addresses. (#14814)

  • Rename _python_requirements_file target to _generator_sources_helper (#14727)

  • Add SSL_CERT_DIR and SSL_CERT_FILE to the default for [subprocess-environment].env_vars (#14808)

  • Upgrade Pex to 2.1.72. (#14795)

Plugin API Changes

  • Deprecate Subsystem.register_options in favor of the new attribute-based Option types (#14772)

  • New util rule for isolating binary tools. (#14374)

Bug fixes

  • Fix empty sys.path entries causing an error during invalidation glob calculation. (#14819)

  • Fix exclusive spawn mechanism for relative paths and working directories. (#14812)

  • Fix a coverage config rewriting bug. (#14784)

  • golang: fix regression in analysis code (#14733)

Performance

  • Don't restart Pantsd when requirements.txt and pyproject.toml change if using target generators (#14829)

  • Switch default tool lockfiles to Pex lockfiles for faster installation (#14811)

  • Port Process operations to use of DigestTrie (#14723)

Documentation

  • Improve REPL multiple resolves error to mention [python].default_resolve (#14778)

  • Switch from Aegean Check Mark to Multiplication X (#14764)

  • Improve documentation for python_test_utils (#14739)

2.11.0.dev3 (Mar 04, 2022)

New Features

  • Add [python].resolves_generate_lockfiles to enable multiple resolves but with manual generation of lockfiles (#14675)

  • Add python_resolve field to protobuf_source and thrift_source to support multiple resolves with codegen (#14698)

  • JVM: add war file packaging (#13888)

  • Improve export to include pip in the venv. (#14640)

User API Changes

  • Remove [python-protobuf].runtime_dependencies in favor of Pants discovering the dependency (#14695)

  • Upgrade Pex to 2.1.70. (#14700)

Plugin API Changes

  • Add SkipOption and improve ArgsListOption (#14660)

  • Move BinaryPath and BashBinary from pants.engine.process to pants.core.util_rules.system_binaries (#14629)

Bug fixes

  • Fix rendering of "Scheduling: ..." workunits introduced by workunit filtering. (#14681)

  • Give interactive processes a chance to gracefully shutdown (#14580)

  • Don't show no-op regex-lint output. (#14656)

  • Go: introduce cache key for compile actions (#14661)

  • Go: Properly disable CGo (#14623)

Performance

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

  • Reduce memory usage by interning Tasks and RuleGraph entries. (#14683)

  • Skip capture of TRACE workunits by default (#13483)

2.11.0.dev2 (Feb 25, 2022)

New Features

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

User API Changes

  • Add output_path field to pyoxidizer_binary and change its default destination (#14607)

  • Upgrade terraform-hcl2-parser to version 3.0.3 (#14554)

Plugin API Changes

  • Rename pants.python.binares to pants.core.subsystems.python_bootstrap (#14613)

  • Add PythonToolBase.to_pex_request() to DRY tool installation (#14610)

  • Move PythonBinary from python.binaries to core.util_rules.system_binaries (#14609)

  • Add core/util_rules/system_binaries.py and relocate archive.py types like UnzipBinary to it (#14601)

Bug fixes

  • Show a helpful error message if a 3rdparty jar isn't available. (#14595)

  • Fix pyoxidizer_binary to support python_distribution targets that depend on others (#14620)

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

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

Performance

  • Fix PyOxidizer to write to ~/.cache/pants by using a named cache (#14582)

Documentation

  • Rewrite help for dependencies field to mention generated targets (#14621)

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

2.11.0.dev1 (Feb 22, 2022)

New Features

  • Support for file/files in JVM tests (#14537)

  • Support complete_platforms for python_awslambda. (#14532)

  • Support complete_platforms for Python GCFs. (#14530)

  • Properly support filesystem specs in the paths goal. (#14518)

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

  • Adds the plugin names field to scala sources (#14508)

  • jvm: teach dependency inference about multiple resolves (#14491)

  • scala: add implicit dependency on scala-library (#14450)

  • py_awslambda: pass through include_requirements:bool to pex_binary (#14469)

User API Changes

  • Upgrade Pex to 2.1.67. (#14544)

  • Create per-parametrization aliases for generator targets (#14529)

  • Per-resolve scala plugins (#14497)

Plugin API Changes

  • Replace GoalSubsystem.required_union_implementations with GoalSubsystem.activated() (#14313)

  • Add dynamic help (#14543)

  • Add global counters, and deprecate per-workunit counters. (#14541)

Bug fixes

  • Fix PyOxidizer depending on python_distribution with sdist=True (#14394)

  • Fix coverage base global report creation bug. (#14547)

  • Tests scala local plugins, and makes it work properly on scala_sources targets (#14512)

  • Allow use of parametrize with the jdk= field of JVM targets (#14510)

  • Fix address parse bug in update-build-files --fix-python-macros. (#14485)

Performance

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

  • Calculate local distribution contents once per distribution (#14551)

Documentation

  • Fix the incompatible resolve error message to include the entire checked set of targets. (#14525)

  • Add disclaimer about [python].enable_resolves and lockfile generation (#14475)

2.11.0.dev0 (Feb 11, 2022)

New Features

  • Add support for long_description_path field in python_distribution (#14448)

  • Improve export goal to handle multiple Python resolves (#14436)

  • Add support for multiple compile/testing JDKs (#14421)

  • Add initial support for a parametrize builtin to generate multiple copies of a target (#14408)

  • scala: support multiple scala versions (#14425)

User API Changes

  • Remove support for JSON-encoded JVM lockfiles. (#14458)

  • Remove deprecated <stage>.tag version values. (#14453)

  • Remove deprecated [scala] version option. (#14455)

  • Replace compatible_resolves with resolve for JVM targets (#14441)

  • python_requirement uses resolve: str field, not compatible_resolves: list[str] (#14420)

  • Remove options, goals, and backends deprecated in Pants 2.10 (#14396)

  • Migrate the Docker context tags version from <stage>.tag to tags.<stage>. (#14376)

  • Default to use_deprecated_python_macros = false and deprecate the option (#14399)

Plugin API Changes

  • Adding DictOptions and WorkspacePathOption to the declarative options (#14433)

  • More declarative target generators for plugins (#14377)

Bug fixes

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

  • Fix issue picking up base image tag from Dockerfile with a digest present. (#14447)

  • Make sure [python].enable_resolves = false disables checking for valid resolves (#14418)

  • Fix pants_requirements target generator to use resolves (#14417)

  • Fix tailor when --use-deprecated-python-macros=false (#14404)

Documentation

  • help command reminds users about help-advanced (#14402)

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

Uploaded CPython 3.9 macOS 11.0+ ARM64

pantsbuild.pants-2.11.0rc2-cp39-cp39-macosx_10_15_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.9 macOS 10.15+ x86-64

pantsbuild.pants-2.11.0rc2-cp38-cp38-macosx_10_15_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

pantsbuild.pants-2.11.0rc2-cp37-cp37m-macosx_10_15_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

File details

Details for the file pantsbuild.pants-2.11.0rc2-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.0rc2-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 016f1bb3eaeb342e4e1da1f062d30da3265563b62730c177df158d77e7bf1fd3
MD5 f65c89bb37a9a6d2f3e99deb9460fadf
BLAKE2b-256 220b34bdac60d2508793fa3e6a9d327ba93b32ecca7e4c965600fda6d58a8d7b

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.0rc2-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 43524db265140df1aeca1ff89324fdf7863e9346ed72050fe7b2aeaead8c3a74
MD5 0cfa6854b80e655d0a0f1550a4f2cd4e
BLAKE2b-256 28d123e59f34a7256d3754ae704511d317b2799a504ec8e7e23ad60ae4e60a18

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.0rc2-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 06edda2d7b712671e1b6592957f7c7d38d0320640549eca5d1a423595bd2d62e
MD5 0b1cd339459e0e8b4b64b6e35e232c07
BLAKE2b-256 30298dd443a38076b841827684337d4bcdbd67f6dd4e962689af9da3bc90c6a5

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.0rc2-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c457e4a1b96c0236d30325eb5303f443637ca58c1defaff9010474b18322a793
MD5 9e86de02bb0e6f71ea9f65642e381a30
BLAKE2b-256 407947361491850453fd7e6090569ac3d08ca742a66f410052ff5a074ee7eec5

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.0rc2-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 cc11423ec1623107ba3fd8f4c9ff69e53f22bd19639a920be3279276d0c847db
MD5 ecb9f5ccf9ecd5b71afdbcacb0d6768b
BLAKE2b-256 dcfa7b4105dbefe7d841644b664cd7766647938c7961e82b9faf5a6cdc3bc85d

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.0rc2-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4a49de1dd5a3adcf7e4778d410c068e1c2c5e7d910cf7f2b53b4c2b9863a3c57
MD5 c409d2f3303f0563c72677eb9851129e
BLAKE2b-256 cd7d1c27bd5c400a89e866b279566c3713175fe55432712e796565bf44509e77

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.0rc2-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c664402972ba0a4b633309d59ae0ea50e5b4628590e3283d0070027a653b29db
MD5 77d0c69e6c629c4ae0c58c1f35f868b7
BLAKE2b-256 d5d32f4e89f85b560b04b67cd9f5223059e9b41c8be20a9325a3aa874f5dcfbe

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