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 thepython_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 withtailor
(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, andpython_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 existingpython_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 generatedsetup.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 inbuild_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 incheck
. (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 withjar
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
andPylint
partition 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_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
inGenerateTargetsRequest
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 topyoxidizer_binary
(#14646) -
Add new
[docker].tools
option (#14361) -
Add
build_file_dir()
symbol to BUILD files (#14827) -
Adds
excludes
field tojvm_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
parametrize
d dependencies onparametrize
d 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
andpython_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
from3rdparty/python/default_lockfile.txt
to3rdparty/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
andSSL_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
andpyproject.toml
change if using target generators (#14829) -
Switch default tool lockfiles to Pex lockfiles for faster installation (#14811)
-
Port
Process
operations 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_lockfiles
to enable multiple resolves but with manual generation of lockfiles (#14675) -
Add
python_resolve
field toprotobuf_source
andthrift_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 improveArgsListOption
(#14660) -
Move
BinaryPath
andBashBinary
frompants.engine.process
topants.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 topyoxidizer_binary
and change its default destination (#14607) -
Upgrade
terraform-hcl2-parser
to version 3.0.3 (#14554)
Plugin API Changes
-
Rename
pants.python.binares
topants.core.subsystems.python_bootstrap
(#14613) -
Add
PythonToolBase.to_pex_request()
to DRY tool installation (#14610) -
Move
PythonBinary
frompython.binaries
tocore.util_rules.system_binaries
(#14609) -
Add
core/util_rules/system_binaries.py
and relocatearchive.py
types likeUnzipBinary
to it (#14601)
Bug fixes
-
Show a helpful error message if a 3rdparty jar isn't available. (#14595)
-
Fix
pyoxidizer_binary
to supportpython_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
fordependencies
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
topex_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
withGoalSubsystem.activated()
(#14313) -
Add dynamic help (#14543)
-
Add global counters, and deprecate per-workunit counters. (#14541)
Bug fixes
-
Fix PyOxidizer depending on
python_distribution
withsdist=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 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_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
withresolve
for JVM targets (#14441) -
python_requirement
usesresolve: str
field, notcompatible_resolves: list[str]
(#14420) -
Remove options, goals, and backends deprecated in Pants 2.10 (#14396)
-
Migrate the Docker context tags version from
<stage>.tag
totags.<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 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
Hashes for pantsbuild.pants-2.11.1rc1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7beab61f07eb84fba6c85a54ea0664a677dd1638e48e239b00582c919edf071 |
|
MD5 | 5912e3e3eb8d0646b6e5d04d6c777205 |
|
BLAKE2b-256 | 05233e53c75b4a76c50f3174c41b6003a9c67b1928ec31392b6028bc1f9a9681 |
Hashes for pantsbuild.pants-2.11.1rc1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1b5f202dd59d28c077a358f7193641e1aab4a1c2040b5c22383aa375fd4c5a8 |
|
MD5 | 03ac06de538b196d9a7d1be13e94be0c |
|
BLAKE2b-256 | f953927fcccfa82701ae92bce8e413c8be692dd43ea1fcbbbf8b0d186bac2c8a |
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 |
Hashes for pantsbuild.pants-2.11.1rc1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d977a1d3d40c229fc23e29ff63d538cb96c6f4946760fb45865f7172c945c6b |
|
MD5 | 0582c250cfaf3c46b1d6e765b2dbdc03 |
|
BLAKE2b-256 | 1dfb84515f8d32b41507645fbf478a1741428b58a179ca44bd64c6335bb6b5f7 |
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 |
Hashes for pantsbuild.pants-2.11.1rc1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 54c5938cce5623e3c62b8cf2a5702ef67fbdbdc2f8933b5aa20fbfd4db827d9c |
|
MD5 | 3ad63250b98fbb2c22953567c839e821 |
|
BLAKE2b-256 | 6c8867cc0cb3390585b09c35c6d7943450f9154cf0cf7eb487fea6aa70cc1b28 |
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 |