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.1 (Jun 28, 2022)

The second stable release in the 2.11.x series, with only documentation changes since the previous rc!

Documentation

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

2.11.1rc3 (Jun 23, 2022)

Bug fixes

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

Documentation

  • Fix broken links to tailor documentation (#15844)

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

2.11.1rc2 (May 31, 2022)

User API Changes

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

Bug fixes

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

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

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

2.11.1rc1 (May 23, 2022)

User API Changes

  • Revert tags changes, except for the python_tests bug fix (#15553)

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

Bug fixes

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

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

  • Improve name= used for Python requirement target generators with tailor (Cherry-pick of #15507) (#15520)

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

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

2.11.1rc0 (May 13, 2022)

Bug fixes

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

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

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

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

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

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

  • Fix a bug in the python venv export logic. (cherrypick of #15294) (#15307)

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

Performance

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

Documentation

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

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

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

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

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

2.11.0 (May 02, 2022)

The first stable release of the 2.11.x series, with no changes since the previous rc!

2.11.0rc6 (Apr 30, 2022)

User API Changes

  • Upgrade Pex to 2.1.84. (Cherry-picks of #15200, #15281 & #15288) (#15289)

Bug fixes

  • Memoize equality for CoarsenedTarget(s) to avoid exponential runtime in check. (Cherry-pick of #15277) (#15278)

2.11.0rc5 (Apr 26, 2022)

Bug fixes

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

  • Do not lowercase Docker image tags. (Cherry pick of #15254) (#15260)

  • Fix the placement of the pex verbosity args. (Cherry-pick of #15243) (#15249)

2.11.0rc4 (Apr 25, 2022)

User API Changes

  • Upgrade Pex to 2.1.80. (Cherry-pick of #15179) (#15180)

Bug fixes

  • golang: add more cache keys based on tool IDs (Cherry-pick of #15205) (#15209)

  • Support poetry wildcard requirements. (Cherry-pick of #15213) (#15214)

  • Fix use of @ in path names (Cherry-pick of #15226) (#15231)

  • Fix lockfile generation for duplicate jvm_artifact targets with jar fields. (Cherry-pick of #15219) (#15230)

Documentation

  • Don't log set up of binary shims (Cherry-pick of #15203) (#15206)

  • Mention resolve when partitioning Mypy and Pylint (Cherry-pick of #15172) (#15181)

Performance

  • MyPy and Pylint partition inputs via CoarsenedTarget (Cherry-pick of #15141) (#15244)

2.11.0rc3 (Apr 16, 2022)

New Features

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

User API Changes

  • Upgrade Pex to 2.1.79. (Cherry-pick of #15125) (#15129)

  • Ban terraform_module referring to subdirectories (Cherry-pick of #15106) (#15122)

  • Enable codegen on relocated files (Cherry-pick of #15100) (#15131)

Bug fixes

  • Clean PID-specific exception file if empty on process exit (#15086) (#15113)

  • Allow dashes in inferred asset strings (Cherry-pick of #15123) (#15154)

  • Fix typo in Pylint description (Cherry-pick of #14945) (#15157)

  • Fix when the same python_requirement defines both type stub and implementation (Cherry-pick of #15121) (#15127)

  • fix missing field check in go protobuf rules (Cherry pick of #15105) (#15118)

  • files/dirs swapped in Snapshot's repr (Cherry-pick of #15101) (#15114)

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

Documentation

  • Add some codegen and terraform backends to docs generator (Cherry-pick of #15036) (#15156)

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

Uploaded CPython 3.9 macOS 11.0+ ARM64

pantsbuild.pants-2.11.1-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.1-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.1-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.1-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 0f367d07e212bb2979748b0c9967e40fd54e168d13adab0190bf7bc3470e07cf
MD5 18bdd5f4366aacc1e9cc262ad11c8ace
BLAKE2b-256 073b55c1c32bfcb2085f294fd2067f13090bec5175732b7b033f86bbc2da7eec

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ed08e512a5e68176d4ed28a6dbdb29276637856125c4f2150181e660a512063a
MD5 b5f3f21082d0c0826fccb6323aa878ce
BLAKE2b-256 9449ea2421eccc3949e4fda6819fce30c21c8a04b61ca0293b36b35592f37ff8

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 0bd3dc084853d57be1e3a4d19b55221c2ac9ac4b9000f2e4f83092a951025901
MD5 01d7aa459bb79660da9e646b4862c007
BLAKE2b-256 b510179b1bcb7ae39a08ee2548cf08413e576ae8131965f5dc6573b737eb7e02

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 302a886544a2486f62990ac812ac5be92203b3317ac417742ae556e707e74014
MD5 0f8e8e7a10530a3e42b79e3982d961b4
BLAKE2b-256 285a786f6d759560a6fbc42d4b0380b8a67c85eb9a939e5654ef1256a8accae3

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 873e3fc3ee04c3c822d7bfb72996a7d000e53a1e915933b79692430ff45432cd
MD5 35ba168ed3bfbb93f5f1a6ddbf42d78d
BLAKE2b-256 3bd863671d2e87fe105a4532772145bf0355543b7a98aea69823557a21803f5b

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 66d863429896484fc6091ad765524f0df5e01865baedb0ac07339a432d9ffa2e
MD5 35175a2c6826cb97f931f0008586566c
BLAKE2b-256 0c0acb13829c6e088c04ac104866d3746ddda50325b0cce15005d0e8d375793d

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 cf417d325b99e9a13c37b6726049ec134ddb772860127ad2ae887c9d3ef725b5
MD5 fb45a1659a3b7cfbb02a514d49969ff7
BLAKE2b-256 9a7e703a1f77bebedf0a97099b108d41e41a8acb10119dd6f5628baad3795a08

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