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.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_artifacttargets withjarfields. (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
MyPyandPylintpartition inputs viaCoarsenedTarget(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_modulereferring 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_requirementdefines 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_modulesgenerator 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
TargetGeneratorinGenerateTargetsRequestimplementors. (cherrypick of #14959) (#14962)
Bug fixes
-
Fix unrecognized field error and
update-build-filesto handle target generator moved fields (Cherry-pick of #14847) (#14930) -
Fix missing
checkoutput 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_jdkfield to protobufs when the Scala backend is enabled (#14891) (#14894) -
add cache key for all Go SDK invocations (Cherry pick of #14897) (#14901)
-
Adds
ClasspathEntryRequestclassification 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_generatorto allow using Pex for lockfile generation (#14740) -
Add protobuf linting using Buf with
pants.backend.codegen.protobuf.lint.bufbackend (#14540) -
Add
runsupport topyoxidizer_binary(#14646) -
Add new
[docker].toolsoption (#14361) -
Add
build_file_dir()symbol to BUILD files (#14827) -
Adds
excludesfield tojvm_artifacttargets (#14715) -
Basic support for Helm charts (#14658)
-
Support
packagegoal for Helm charts (#14797) -
Python dependency inference supports multiple resolves for first-party targets (#14486)
-
Default the parameters of
parametrized dependencies onparametrized 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_sourcesandpython_teststarget 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].resolvesfrom3rdparty/python/default_lockfile.txtto3rdparty/python/default.lock(Cherry-pick of #14815) (#14818) -
Swap the order of generated names and parameters in Addresses. (#14814)
-
Rename
_python_requirements_filetarget to_generator_sources_helper(#14727) -
Add
SSL_CERT_DIRandSSL_CERT_FILEto the default for[subprocess-environment].env_vars(#14808) -
Upgrade Pex to 2.1.72. (#14795)
Plugin API Changes
-
Deprecate
Subsystem.register_optionsin favor of the new attribute-based Option types (#14772) -
New util rule for isolating binary tools. (#14374)
Bug fixes
-
Fix empty
sys.pathentries 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.txtandpyproject.tomlchange if using target generators (#14829) -
Switch default tool lockfiles to Pex lockfiles for faster installation (#14811)
-
Port
Processoperations to use ofDigestTrie(#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_lockfilesto enable multiple resolves but with manual generation of lockfiles (#14675) -
Add
python_resolvefield toprotobuf_sourceandthrift_sourceto support multiple resolves with codegen (#14698) -
JVM: add war file packaging (#13888)
-
Improve
exportto include pip in the venv. (#14640)
User API Changes
-
Remove
[python-protobuf].runtime_dependenciesin favor of Pants discovering the dependency (#14695) -
Upgrade Pex to 2.1.70. (#14700)
Plugin API Changes
-
Add
SkipOptionand improveArgsListOption(#14660) -
Move
BinaryPathandBashBinaryfrompants.engine.processtopants.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
TRACEworkunits by default (#13483)
2.11.0.dev2 (Feb 25, 2022)
New Features
- New
--docker-build-verboseoption to print build output to the console. (#14557)
User API Changes
-
Add
output_pathfield topyoxidizer_binaryand change its default destination (#14607) -
Upgrade
terraform-hcl2-parserto version 3.0.3 (#14554)
Plugin API Changes
-
Rename
pants.python.binarestopants.core.subsystems.python_bootstrap(#14613) -
Add
PythonToolBase.to_pex_request()to DRY tool installation (#14610) -
Move
PythonBinaryfrompython.binariestocore.util_rules.system_binaries(#14609) -
Add
core/util_rules/system_binaries.pyand relocatearchive.pytypes likeUnzipBinaryto it (#14601)
Bug fixes
-
Show a helpful error message if a 3rdparty jar isn't available. (#14595)
-
Fix
pyoxidizer_binaryto supportpython_distributiontargets that depend on others (#14620) -
Coursier caches are now determined by
-reposconfiguration (#14603) -
adds
--no-defaultto Coursier args so that we only use user-configured maven repos (#14581)
Performance
- Fix PyOxidizer to write to
~/.cache/pantsby using a named cache (#14582)
Documentation
-
Rewrite
helpfordependenciesfield 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/filesin JVM tests (#14537) -
Support complete_platforms for
python_awslambda. (#14532) -
Support complete_platforms for Python GCFs. (#14530)
-
Properly support filesystem specs in the
pathsgoal. (#14518) -
Plumb Pex's
--complete-platformfor 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:booltopex_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_implementationswithGoalSubsystem.activated()(#14313) -
Add dynamic help (#14543)
-
Add global counters, and deprecate per-workunit counters. (#14541)
Bug fixes
-
Fix PyOxidizer depending on
python_distributionwithsdist=True(#14394) -
Fix coverage base global report creation bug. (#14547)
-
Tests scala local plugins, and makes it work properly on
scala_sourcestargets (#14512) -
Allow use of
parametrizewith thejdk=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_resolvesand lockfile generation (#14475)
2.11.0.dev0 (Feb 11, 2022)
New Features
-
Add support for long_description_path field in python_distribution (#14448)
-
Improve
exportgoal to handle multiple Python resolves (#14436) -
Add support for multiple compile/testing JDKs (#14421)
-
Add initial support for a
parametrizebuiltin 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>.tagversion values. (#14453) -
Remove deprecated
[scala] versionoption. (#14455) -
Replace
compatible_resolveswithresolvefor JVM targets (#14441) -
python_requirementusesresolve: strfield, notcompatible_resolves: list[str](#14420) -
Remove options, goals, and backends deprecated in Pants 2.10 (#14396)
-
Migrate the Docker context tags version from
<stage>.tagtotags.<stage>. (#14376) -
Default to
use_deprecated_python_macros = falseand 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 = falsedisables checking for valid resolves (#14418) -
Fix
pants_requirementstarget generator to use resolves (#14417) -
Fix
tailorwhen--use-deprecated-python-macros=false(#14404)
Documentation
helpcommand reminds users abouthelp-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
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pantsbuild.pants-2.11.0rc4-cp39-cp39-manylinux2014_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.11.0rc4-cp39-cp39-manylinux2014_x86_64.whl
- Upload date:
- Size: 45.8 MB
- Tags: CPython 3.9
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5317880c23de1ba3ad8dbc896fcb181444f043461c2bea7d3367a6d980fce03b
|
|
| MD5 |
8e45d93f55975649154531cbf99f5542
|
|
| BLAKE2b-256 |
d193a9da4416597724fe35f7c6a682f9016416bc68e01672ef5cb1569eec3930
|
File details
Details for the file pantsbuild.pants-2.11.0rc4-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: pantsbuild.pants-2.11.0rc4-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/4.0.0 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0cd1a6d6685ec047115183e6d005ac6c811674e403db131078d02585ada34183
|
|
| MD5 |
90ecaed4f133b97cab4e403fbbf76e70
|
|
| BLAKE2b-256 |
36dcfef9e0b1ac2638b666ddd5fad52ca75a4359663e6ec1abc3cb597f77b6b1
|
File details
Details for the file pantsbuild.pants-2.11.0rc4-cp39-cp39-macosx_10_15_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.11.0rc4-cp39-cp39-macosx_10_15_x86_64.whl
- Upload date:
- Size: 8.4 MB
- Tags: CPython 3.9, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31da0f311f980a6f1ddd392d84c26cb71eea21194c70b068588068fa2c15a553
|
|
| MD5 |
94a175fcf0e5f74ba69b615083b7bb3a
|
|
| BLAKE2b-256 |
fa4eea170b4d0b30a094d71968b67ec6fb34c30541e91ea3a864461c72a81e9a
|
File details
Details for the file pantsbuild.pants-2.11.0rc4-cp38-cp38-manylinux2014_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.11.0rc4-cp38-cp38-manylinux2014_x86_64.whl
- Upload date:
- Size: 45.8 MB
- Tags: CPython 3.8
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8be1f6fffb430fdc6cbdbae4e77ed8461dd502d5031da884d80e2302719d7f45
|
|
| MD5 |
aa02eec76225f5c27bb7e439895fcbf9
|
|
| BLAKE2b-256 |
5d7847974ca7797a5ac5ebfff4a3cb1000bfd4fb4c708dbbd21bb76550ae5d47
|
File details
Details for the file pantsbuild.pants-2.11.0rc4-cp38-cp38-macosx_10_15_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.11.0rc4-cp38-cp38-macosx_10_15_x86_64.whl
- Upload date:
- Size: 8.4 MB
- Tags: CPython 3.8, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
68c60196d85881d4ba70f17ed928c0fe55c41e323e3510cf237f8fdc39fe3b65
|
|
| MD5 |
0a47c446c18993fad18dcedaaf94319d
|
|
| BLAKE2b-256 |
9d4a8d4dee9d4a4b09d54b33f84a44a8a571ec578cd582541de3ae2f2ebede9b
|
File details
Details for the file pantsbuild.pants-2.11.0rc4-cp37-cp37m-manylinux2014_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.11.0rc4-cp37-cp37m-manylinux2014_x86_64.whl
- Upload date:
- Size: 45.8 MB
- Tags: CPython 3.7m
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3bf5775bccf22c7fcba00a6445b50bcbd62445589b1b4f1b4931c60a99d010a4
|
|
| MD5 |
657c2429a48f7adc3c06fde4c744c3d7
|
|
| BLAKE2b-256 |
4e9a47b6a7adaa0cf8f18619d57e67e3d0ffaed9169005ceb6106c41ea304fb0
|
File details
Details for the file pantsbuild.pants-2.11.0rc4-cp37-cp37m-macosx_10_15_x86_64.whl.
File metadata
- Download URL: pantsbuild.pants-2.11.0rc4-cp37-cp37m-macosx_10_15_x86_64.whl
- Upload date:
- Size: 8.4 MB
- Tags: CPython 3.7m, macOS 10.15+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.9.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
92f6cfa7abeb3a83c63108cd674c6222b5996a32f94c49b5b5ec7d18f475d810
|
|
| MD5 |
01c458a30b66a8220dc85f09da84a911
|
|
| BLAKE2b-256 |
898207e4cd7104f57c201d1e0f06863704cc963c0dc991b0a6ab2120d3274880
|