Test support for writing Pants plugins.
Project description
Pants is an Apache2 licensed build tool written in Python and Rust.
The latest documentation can be found at pantsbuild.org.
2.13.x Release Series
2.13.0a0 (Jun 17, 2022)
New Features
- Add option for max wait before terminating interactive process (#15767)
User API Changes
-
Add
[scala-infer].force_add_siblings_as_dependencies
and deprecate it defaulting to true (#15841) -
Add
--debug-adapter
flag totest
goal (#15799)
Plugin API Changes
-
Add
skip_invalid_addresses
field toUnparsedAddressInputs
(#15864) -
Add
MaybeAddress
for infallible evaluation ofAddressInput
(#15863) -
Add optional
StringSequenceField.valid_choices
(#15684) -
WrappedTarget
now requiresWrappedTargetRequest
(#15789) -
Move
ResolveError
frompants.base.exceptions
topants.build_graph.address
(#15790) -
_TargetParametrizations
now requires_TargetParametrizationsRequest
(#15759) -
BuildFileAddress
now requiresBuildFileAddressRequest
(#15760)
Bug fixes
-
Support
--help
for builtin goals. (#15798) -
Handle venv path special chars in coursier fetch (#15701)
-
Fix
[python-infer].inits
and[python-infer].conftests
to considerresolve
field (#15787)
Performance
-
Backtrack execution for missing digests to make
eager_fetch=false
more resilient (#15850) -
Remove synchronous remote cache lookup from remote execution (#15854)
Documentation
-
Fix broken links to
tailor
documentation (#15842) -
Update docs for redesign of CLI arguments (#15816)
-
Better error message when an address does not exist (#15788)
2.13.0.dev5 (Jun 08, 2022)
New Features
-
Add GraphQL API server backend for the experimental-explorer goal (#15697)
-
Add
extra_env_vars
field toexperimental_shell_command
target. (#15742) -
Add
experimental-explorer
builtin goal. (#15695)
User API Changes
-
Always ignore paths which are not files, directories, or links. (#15773)
-
Add API types and rules to cli help info (#14227)
-
Change the default
remote_cache_warnings
warnings behavior tobackoff
. (#15745) -
Revert "Go can use both
file
andresource
targets (#15663)" (#15725) -
Deprecate
--exclude-target-regexp
in favor of--filter-address-regex
(#15729)
Plugin API Changes
-
Require setting
description_of_origin
withAddressInput
andUnparsedAddressInputs
(#15743) -
Require keyword arguments for
AddressInput
(#15741)
Bug fixes
-
tailor
should skip bad requirements targets (#15755) -
tailor
for Go does not add targets when no ancestorgo.mod
(#15750) -
Record metrics for remote cache store errors (#15744)
-
Fix help for
--process-total-child-memory-usage
and--process-per-child-memory-usage
(#15733) -
Fix
--changed-since
with directories unknown to Pants (#15714)
Documentation
-
Improve error messages for invalid addresses (#15751)
-
Correctly describe the origin of invalid specs, e.g.
--paths-from
(#15730)
2.13.0.dev4 (May 31, 2022)
New Features
-
Support running pex_binary targets directly on the in-repo sources. (#15689)
-
Go can use both
file
andresource
targets (#15663) -
Add ignore command line arguments, e.g.
-dir::
(#15619) -
Allow to skip linting on Helm charts (#15640)
-
Helm charts support CRDS by default (#15623)
-
Adds dependency injection rule for protobuf-java runtime (#15006)
User API Changes
-
Make the global --no-process-cleanup conserve the
run
tmpdir. (#15683) -
Upgrade Pex to 2.1.90. (#15656)
-
Remove
-d
as shorthand for--logdir
(#15621)
Plugin API Changes
-
PutativeTargetsRequest.path_globs()
can take multiple globs (#15634) -
[Plugin API change] Remove default help message from MultipleSourcesField (#15633)
-
Don't allow multiple flag names for the same option (#15627)
-
Remove
PutativeTargetsSearchPaths
(#15625) -
Refactor
Specs
as prework for ignore Specs (#15620) -
Ban using short option names like
-x
, except for pre-blessed values (#15624)
Bug fixes
-
Don't install Pex-style lockfile when no requirements used (#15706)
-
python_requirements()
can handle-r reqs.txt
(#15672) -
Increase RuleGraph solver loop threshold to allow for larger
@rule
sets (#15668) -
Fix
--help
output when specs given. (#15665) -
update-build-files
falls back to interpreter constraints from tool lockfile for Black and Yapf (#15666) -
Fix detection of
--help
when specs given (#15664) -
Choose correct Scala dialect according to scala-version (#15649)
-
Fix deleted files with
--changed-since
when using target-less goals likecount-loc
(#15662) -
Prevent collisions between attempts to materialize an immutable input digest. (#15652)
-
Fix another case of direct Coursier lockfile consumption (#15650)
Documentation
-
Mention language specific opt outs for
tailor
(#15673) -
Provide more "Did you mean ..." suggestions for the CLI help. (#15646)
-
[docs] Add language specific file examples for sources help message of a target (#15635)
-
Docs: show language specific file examples in sources field in the help of targets (#15595)
2.13.0.dev3 (May 23, 2022)
New Features
-
dir:
anddir::
work on target-less goals likecount-loc
(#15577) -
--changed-since
works on target-less goals likecount-loc
(#14434) -
Add
--no-use-deprecated-directory-cli-args-semantics
so that directory arguments match all files/targets in the directory (#15589) -
filter
options work with any goal now, not only thefilter
goal (#15599) -
Use new, consistent CLI args semantics for
tailor
ifuse_deprecated_cli_args_semantics = false
(#15612) -
Support JVM options per tool (#15505)
-
Allow turning off
export
of Python tools likeblack
(#15509) -
Adding file downloading support to asset targets (#15457)
User API Changes
-
Deprecate
filter
goal now thatfilter
options can be used from any goal (#15600) -
Tailor
__main__.py
files as pex binaries (#15598) -
update-build-files
now takes CLI args for which BUILD files to change (#15581) -
Don't error when
dir:
anddir::
have no targets, as long as the directories exist (#15570) -
Deprecate
--owners-not-found-behavior
and set default toignore
(#15560) -
Add
--unmatched-cli-globs
, which before was controlled by--owners-not-found-behavior
(#15556) -
Deprecate
files_not_found_behavior
in favor ofunmatched_build_file_globs
(#15555) -
Remove undocumented CLI file arguments ignore syntax (#15534)
-
go_third_party_package
targets now depend on theirgo.mod
andgo.sum
(#15521) -
--changed-dependees
no longer runs on sibling targets from same target generator (#15396) -
Change
_generator_sources_helper
to usesource: str
rather thansources: list[str]
(#15475) -
Upgrade Pex to 2.1.88. (#15484)
-
Revert "Deprecate
[python].tailor_ignore_solitary_init_files
in favor of more useful[python].tailor_ignore_empty_init_files
(#15469)" (#15492)
Plugin API Changes
-
Replace
SpecsSnapshot
with lazierSpecsPaths
(#15593) -
Rename classes in
specs.py
for unification of specs semantics (#15538) -
Remove
addressable=
kwarg fromtailor
(#15504) -
Remove
AbstractTestGenerator
frompantsbuild.pants.testutil
(#15464)
Bug fixes
-
Fix incorrect digest for JVM multiple
jvm_artifact(.., jar=..)
entries (#15571) -
Record Scala
package object
as provided name (#15582) -
Fix deprecation message for
--filter-target-type
with deprecated target alias (#15596) -
Fix scala inference doesn't infer name after function call (#15565)
-
Fix JVM resource classification and artifact grouping (#15567)
-
Apply
--tag
filtering to target-less goals likecount-loc
(#15479) -
Fix
tag
filtering with--changed-dependees
(#15546) -
Fix non-deterministic order of
jvm_artifact(.., excludes=..)
(#15542) -
Support transitive file dependencies in Scalatest/JUnit (#15501)
-
Improve
name=
used for Python requirement target generators withtailor
(#15507) -
don't generate default tool lockfiles (#15488)
-
Don't give a subsequent formatter an empty snapshot after skipping (#15483)
-
jvm: fix incorrect check for root-only
ClasspathEntryRequest
implementations (#15494)
Performance
-
lint
only finds targets and files if the relevant linters were specified (#15579) -
regex-lint
only reads files that will be checked (#15580)
Documentation
-
Freshen up deprecated option formatting (#15590)
-
Make required fields sort first on the docsite and in the './pants help target' output (#15587)
-
Add a few default_help_reprs (#15588)
-
Suggest a UUID when erroring about missing UUID (#15550)
-
Tweak docs to include
no-infer-dep
in a few more places (#15547)
2.13.0.dev2 (May 14, 2022)
New Features
-
Adds JDK autoconfiguration support to scala BSP metadata setup (#15408)
-
Add
lint --skip-formatters
option (#15427) -
Support for sharding tests. (#15417)
-
Add clang-format support for the experimental c/cpp plugin (#15395)
-
Support setting env vars in individual distribution builds. (#15422)
-
kotlin: add support for junit tests (#15382)
User API Changes
-
Upgrade Pex to 2.1.87. (#15472)
-
Deprecate
[python].tailor_ignore_solitary_init_files
in favor of more useful[python].tailor_ignore_empty_init_files
(#15469) -
Upgrade default Protoc version to 3.20.1 (native Apple Silicon support) (#15424)
-
Require that a target's
interpreter_constraints
are a subset of their dependencies' (#15373) -
Add
[python-infer].init_files
as more intuitive replacement for[python-infer].inits
(#15397)
Plugin API Changes
- Move
get_git
deprecation to start in2.14.0.dev0
(#15423)
Bug fixes
-
Only infer an init.py dep on a python_sources-generated target. (#15471)
-
kotlin: the
plugin_id
field onkotlinc_plugin
target is optional (#15459) -
support relative address syntax for JVM compiler plugin artifacts (#15462)
-
Fix lockfile generation for Docker, Terraform, and Clang-format to not require Python backend (#15453)
-
Fix boolean logic when merging interpreter constraints. (#15414)
-
Fix
tags
to work with filesystem arguments,overrides
field, andpython_tests
(#15394) -
Support the
{chroot}
env placeholder for all interactive processes that are not executed in the workspace. (#15401) -
Fix
[]
in file names with target generators (#15383) -
BSP consumes thirdparty artifacts via their classpath entries, rather than directly from the lockfile. (#15392)
Documentation
- Improve error message for
dependencies
on incompatible Python resolves (#15416)
2.13.0.dev1 (May 10, 2022)
New Features
-
Initial support for building dists using mypyc. (#15380)
-
Support dependency inference on vcs_version targets. (#15385)
-
Support for getting a version string from git. (#15374)
-
Add
tailor
forpoetry_requirements
andpipenv_requirements
(#15352)
User API Changes
- Add default mapping for pygithub (#15361)
Bug fixes
-
Generalize Docker dep inference for all packageables. (#15375)
-
Fix
tailor
detection of existingpython_requirements
targets (#15363) -
Add the "named args explanation" to other relevant
parametrize
error messages. (#15362) -
Use abspath to sandbox in PATH for docker tool shims. (#15341)
Documentation
-
Improve
help
and error message for[python-infer].unowned_dependency_behavior
(#15334) -
Disallow
!
patterns inbuild_ignore
. (#15366)
2.13.0.dev0 (May 05, 2022)
New Features
-
BSP compile exposes loose classfiles to allow IntelliJ to invoke tests (#15347)
-
Add options to turn off
tailor
on a per-language basis (#15335) -
Add lz4 support to archive extraction (#15245)
-
Implement
tailor
goal for Helm charts (#15191) -
Write virtualenvs for Python tools as part of
export
(#15098)
User API Changes
-
Upgrade hadolint to 2.10.0 and add linux arm64 support (#15317)
-
Remove
[test].xml_dir
,[update-build-files].fix_python_macros
, and[java-infer].third_party_imports
(#15311) -
Deprecate
[golang].expected_version
in favor of more flexible[golang].minimum_expected_version
(#15306) -
Upgrade Pex to 2.1.84. (#15288)
Plugin API Changes
-
Add
update_env
toprocess_execution::local
. (#15340) -
Allow for arbitrary suffixes when extracting (#15257)
Bug fixes
-
Fix error output of
parametrize()
(#15339) -
Don't strip source roots when building dists with an existing setup.py (#15303)
-
Fix a bug in the python venv export logic. (#15294)
-
Fix non-determinism of
package_data
in generatedsetup.py
files (#15292) -
Simplify BSP metadata merging, and handle the empty list. (#15283)
-
BSP resolve filtering observes computed default values of resolve fields (#15282)
-
Memoize equality for
CoarsenedTarget(s)
to avoid exponential runtime incheck
. (#15277) -
Fix ambiguity of Scala
package object
s withclass
orobject
definitions (#15265) -
Fix issue with Docker publish when using
[docker] tools
. (#15255) -
Do not lowercase Docker image tags. (#15254)
-
Fix the placement of the pex verbosity args. (#15243)
-
Fix use of
@
in path names. (#15226) -
Fix lockfile generation for duplicate
jvm_artifact
targets withjar
fields. (#15219) -
Support poetry wildcard requirements. (#15213)
-
golang: add more cache keys based on tool IDs (#15205)
Performance
-
Eagerly skip tools with default lockfiles in
export-lockfiles
goal (#15304) -
MyPy
andPylint
partition inputs viaCoarsenedTarget
(#15141)
Documentation
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 Distribution
Hashes for pantsbuild.pants.testutil-2.13.0a0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9ad8adf639218e3eef66faeb403c627d8423278396a0eb0ed9d7bb3b0b8256d6 |
|
MD5 | 384d03ce96d98f09102b4800acebab5e |
|
BLAKE2b-256 | f932b560a77ae7e3d9a12163354f7fd31c7cb9e1c62b08e41c113a4e6a1ec879 |