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
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.0rc1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7871fa5671fb3130bd8dee0168901de56fd9e0a98d92684c917df12e470b5bf4 |
|
MD5 | 13471c5305b7f2abac146b58198fd536 |
|
BLAKE2b-256 | 4173f9226c950987db6f770c80ad3eff2f4c6ef2eb08ef75a44edf11435f0743 |
Hashes for pantsbuild.pants-2.11.0rc1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 27961129542316fdbd1dce74a53a03540c0f5edc554febf24678419a974a74a4 |
|
MD5 | 1f6befb737f65141201d05c22eca016c |
|
BLAKE2b-256 | c10c08539c491a6ba1e0eaac0a72ff78152ebbc8369a50ede28136bac20b85f6 |
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 |
Hashes for pantsbuild.pants-2.11.0rc1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 52c854beb2582f3d175cdcc617788e36cc11c32ad372e14e0af3ce96f7327f62 |
|
MD5 | bb4fa6a68be747f5ccc568cf946f7bb1 |
|
BLAKE2b-256 | 6235fdbcf1afe5dbd490cb9c6b2ade107d1c50341dbf5dbdbc54c7e96873b9bd |
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 |
Hashes for pantsbuild.pants-2.11.0rc1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 980f5f694bc8587d7548639106868ecf1bcabb0766548f16dc744a12a2e7eccf |
|
MD5 | be05c573587918c2adbf20b02707a7d4 |
|
BLAKE2b-256 | 89527baf9fbf984b6a72b62b7b7f762c929fcdd5c42c7f76884aff9a41a171ca |
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 |