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

Uploaded CPython 3.9 macOS 11.0+ ARM64

pantsbuild.pants-2.11.0rc1-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.0rc1-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.0rc1-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.0rc1-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.0rc1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7871fa5671fb3130bd8dee0168901de56fd9e0a98d92684c917df12e470b5bf4
MD5 13471c5305b7f2abac146b58198fd536
BLAKE2b-256 4173f9226c950987db6f770c80ad3eff2f4c6ef2eb08ef75a44edf11435f0743

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.0rc1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 27961129542316fdbd1dce74a53a03540c0f5edc554febf24678419a974a74a4
MD5 1f6befb737f65141201d05c22eca016c
BLAKE2b-256 c10c08539c491a6ba1e0eaac0a72ff78152ebbc8369a50ede28136bac20b85f6

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.0rc1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 20356873f5e4e0f6e927c022d471991cf7ace1811c0afdbf1b2f3c64c6e1f193
MD5 2cff996546234486ba84e852f30cb518
BLAKE2b-256 b7afaa75586aa458e276dcc808bec6109a1f7f9ca4a2310a652c78a5bb5a749c

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.0rc1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 52c854beb2582f3d175cdcc617788e36cc11c32ad372e14e0af3ce96f7327f62
MD5 bb4fa6a68be747f5ccc568cf946f7bb1
BLAKE2b-256 6235fdbcf1afe5dbd490cb9c6b2ade107d1c50341dbf5dbdbc54c7e96873b9bd

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.0rc1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 831cddaaca27139c0c0e5da7261860455e17888df1c57b790036d8a28e915a65
MD5 58c4370ea86ac745347db8b550d51136
BLAKE2b-256 43b03f32f17a6db32e5344df0f3fe41ed4b73a70d9356271783c3cd8e89d5e9b

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.0rc1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 980f5f694bc8587d7548639106868ecf1bcabb0766548f16dc744a12a2e7eccf
MD5 be05c573587918c2adbf20b02707a7d4
BLAKE2b-256 89527baf9fbf984b6a72b62b7b7f762c929fcdd5c42c7f76884aff9a41a171ca

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.0rc1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3f07c15c3fbe9979e1030b9e5b27e009a132e192d40bd7650bfe2240d23f5606
MD5 79b1f687b0c124f24196e9fe63f446e3
BLAKE2b-256 a3dc22cc2237dc5b5785a677b1952ec25fc1f72d8b55a6f0066be2aa28ce68fb

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