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

Uploaded CPython 3.9 macOS 11.0+ ARM64

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.1rc1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b7beab61f07eb84fba6c85a54ea0664a677dd1638e48e239b00582c919edf071
MD5 5912e3e3eb8d0646b6e5d04d6c777205
BLAKE2b-256 05233e53c75b4a76c50f3174c41b6003a9c67b1928ec31392b6028bc1f9a9681

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.1rc1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b1b5f202dd59d28c077a358f7193641e1aab4a1c2040b5c22383aa375fd4c5a8
MD5 03ac06de538b196d9a7d1be13e94be0c
BLAKE2b-256 f953927fcccfa82701ae92bce8e413c8be692dd43ea1fcbbbf8b0d186bac2c8a

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.1rc1-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d19658698e669f018b534251a04664f60952ddef941477b7be27cf76971f752f
MD5 7154f18ad236178b4c64d68c5b60da87
BLAKE2b-256 952a93978d309d9a2cf05df317b13675c220e0a8f6eb11dad8fbcd2574b12734

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.1rc1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3d977a1d3d40c229fc23e29ff63d538cb96c6f4946760fb45865f7172c945c6b
MD5 0582c250cfaf3c46b1d6e765b2dbdc03
BLAKE2b-256 1dfb84515f8d32b41507645fbf478a1741428b58a179ca44bd64c6335bb6b5f7

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.1rc1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d8714c3528a48a0dab289b5823e18b32349b633942b7be18ee36c527b20c7ad4
MD5 8e39c9d9e9b1ed1a72cf882e1f3d9b12
BLAKE2b-256 e35569c66e54e083bbeb114b6ca5e664f37da134ca9a393d285e6b78cc89896f

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.1rc1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 54c5938cce5623e3c62b8cf2a5702ef67fbdbdc2f8933b5aa20fbfd4db827d9c
MD5 3ad63250b98fbb2c22953567c839e821
BLAKE2b-256 6c8867cc0cb3390585b09c35c6d7943450f9154cf0cf7eb487fea6aa70cc1b28

See more details on using hashes here.

Provenance

File details

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

File metadata

File hashes

Hashes for pantsbuild.pants-2.11.1rc1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6f28c38bc9efe8cd2b668aa33282ddcf6385059d120e0fee68ffec551982052c
MD5 614908828a758f4a4cf60d81678237e0
BLAKE2b-256 50e068210adbb30e5b8a101b06a64edbe7cd8b9cb1e94ef10084c1cfa569350a

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