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.0 (Sep 7, 2022)
The first stable release of 2.13.0, with no changes since 2.13.0rc3.
See our blog post for a summary of what's new in Pants 2.13.
2.13.0rc3 (Aug 31, 2022)
Bug fixes
-
Make experimental_shell_command deterministic (Cherry-pick of #16675) (#16699)
-
Ensure the sandbox distdir exists when creating dists via PEP517 (Cherrypick of #16647) (#16660)
Documentation
-
Create page of Pants team members and proudest contribs (Cherry-pick of #16676) (#16729)
-
Fix example BSP groups file. (Cherry-pick of #16649) (#16652)
2.13.0rc2 (Aug 24, 2022)
User API Changes
- Bump default version of
setuptoolsto 63.4 (#16618)
Bug fixes
-
Have
runrun__main__.pyfor non-zipapp PEXs (Cherry-pick of #16568) (#16635) -
Add
grpcioto default Python module mapping (#16604) -
Record
RemoteStoreBlobBytesUploadedfor all upload strategies, rather than only for large blobs. (Cherry-pick of #16545) (#16555)
Performance
-
Improve performance of
Ownersrule (Cherry-pick of #16563) (#16597) -
Fix performance for generating lockfiles for
pytestandsetuptools(Cherry-pick of #16591) (#16596)
Documentation
-
Fix
./pants helpdocs on command line specs (Cherry-pick of #16616) (#16623) -
Use Markdown h3 for ToC support (Cherry-pick of #15964) (#16558)
-
Fix broken link to community page (Cherry-pick of #16468) (#16557)
2.13.0rc1 (Aug 12, 2022)
User API Changes
-
Replace
--[no-]process-cleanupwith--keep-sandboxes={always,never,on_failure}(Cherry-pick of #16415) (#16417) -
Deprecate
[python].tailor_ignore_solitary_init_filesin favor of more useful[python].tailor_ignore_empty_init_files(Cherry-pick of #16305) (#16334) -
Upgrade Pex to 2.1.102. (Cherry-pick of #16313) (#16323)
Bug fixes
-
Add missing
helpmessage to experimental backends (Cherry-pick of #16403) (#16500) -
Fix
CacheContentBehavior::Deferwith a remote cache (Cherry-pick of #16439) (#16441) -
Fix docker invalidation bug (cherrypick of #16419) (#16431)
-
Set immutable_input_digests on a docker RunRequest. (Cherry-pick of #16385) (#16396)
-
go: pass -p option to
go tool asmon Go v1.19+ (Cherry pick of #16381) (#16395) -
consume inits part of package object within the inner scope (Cherry-pick of #16282) (#16371)
-
Add a newline at the end of
pathsoutput (Cherry-pick of #16302) (#16372) -
fix kotlin tailor for junit tests (Cherry pick of #16333) (#16341)
-
Explicitly add directory entries to resources JARs (Cherry-pick of #16264) (#16296)
-
Allow using
--importoption with Autoflake (Cherry-pick of #16192) (#16275) -
Dont use PEX as an API to fix
ModuleNotFoundErrorfor--debug-adapter(Cherry-pick of #16263) (#16267)
Performance
- Implement a
validatemode to reduce network usage for remote caches (Cherry-pick of #16398) (#16409)
Documentation
-
Update docs on how to run Pants in CI. (Cherry-pick of #16503) (#16509)
-
Fix partition description for MyPy when multiple resolves (Cherry-pick of #16486) (#16498)
-
Fix source roots docs. (Cherry-pick of #16363) (#16365)
-
Link to dev.to post on resource hub (cherrypick #16331) (#16349)
-
add tailor docs for kotlin backend (Cherry pick of #16332) (#16338)
-
docs: add initial Kotlin docs (Cherry pick of #16304) (#16329)
-
Document test sharding and update plugin docs with 2.13 changes (Cherry-pick of #16293) (#16306)
2.13.0rc0 (Jul 20, 2022)
New Features
-
allow JVM sources to have files dependencies (Cherry-pick of #16203) (#16236)
-
Add [python].default_run_goal_use_sandbox (Cherry-pick of #16239) (#16253)
-
Add
include_sourcestopex_binarytarget (Cherry-pick of #16215) (#16252) -
Add support for extra env variables in go tests (Cherry-pick of #16013) (#16067)
User API Changes
-
Ban
../insourceandsourcesfields (Cherry-pick of #16227) (#16237) -
Upgrade Pex to 2.1.99. (Cherry-pick of #16184) (#16225)
-
Correct deprecation warning to 2.15 (Cherry-pick of #16056) (#16218)
-
Fix poetry locks missing hashes. (Cherry-pick of #16112) (#16113)
Plugin API Changes
- Generically compute dynamic defaults for
Fields (Cherry-pick of #16206) (#16219)
Bug fixes
-
Refactors
output_fieldto default to something that disambiguates on paramtrized fields (Cherry-pick of #16232) (#16254) -
Apply parameter filling for
parametrized dependencies to excludes, and fix accommodation for file-addressed atom targets (Cherry-pick of #16249) (#16250) -
Remove removal of use_deprecated_pex_binary_run_semantics in 2.13.x (#16108)
-
Fix scala plugins args order causing cache issues (Cherry-pick of #16228) (#16234)
-
Add overrides field to scala targets (Cherry-pick of #16204) (#16235)
-
Fix explicit dependencies of
parametrized targets not working for some target types (#16197) (#16214) -
Fill address parameters in all cases, rather than only when a consumer is
parametrized. (Cherry-pick of #16198) (#16210) -
Use filelists to make archive creation tasks more reliable (Cherry-pick of #16183) (#16186)
-
Fix defaulting of parameters in explicitly specified deps on
parametrized targets for AsyncFieldMixin (Cherry-pick of #16176) (#16180) -
Improve memoization of interpreter constraints, Python parsing, and request classes (Cherry-pick of #16141) (#16154)
-
Add support for
InteractiveProcessconsuming inputs whilerun_in_workspace=True(Cherry-pick of #16093) (#16148) -
Optimize
get_expanded_specsforStreamingWorkunitplugins (Cherry-pick of #16106) (#16147) -
Record ongoing backtrack attempts (Cherry-pick of #16075) (#16080)
-
Write to caches during backtracking (Cherry-pick of #16078) (#16081)
-
Fix
--changed-sincewithtailorandupdate-build-fileswhen no changes (#16066) -
Fix pantsd TTY handling. (Cherry-pick of #16038) (#16048)
Performance
- Port
@ruleGets to rust (Cherry-pick of #16160) (#16177)
Documentation
-
Document
--filteroptions working with any goal (Cherry-pick of #16090) (#16209) -
Document the "fromfile" feature. (cherrypick of #16205) (#16208)
-
Add 2.12 changelog to docsite (cherrypick #16136) (#16139)
-
New doc explaining vcs_version. (Cherrypick of #16092) (#16102)
-
Fix typo in warning for
[python].resolve_all_constraints(Cherry-pick of #16068) (#16073) -
Update docs with 2.12 changes: default Pex lockfile generator,
pants.tomlenv var interpolation, pip VCS requirements, and Python interpreter constraints (Cherry-pick of #16000) (#16058) -
Fix CI provider table rendering. (cherrypick of #16051) (#16060)
-
Document Docker registries configuration options for
skip_pushandextra_image_tags. (Cherry-pick of #16015) (#16020)
2.13.0a1 (Jun 29, 2022)
New Features
-
Add ability to
runanyPythonSourceField(Cherry-pick of #15849) (#16022) -
Add
--debug-adapterflag torun(Cherry-pick of #15829) (#15988) -
Add repository config option to Docker registries. (Cherry pick of #15884) (#15952)
User API Changes
-
Deprecate not setting
tailor_pex_binary_targetsexplictly (Cherry-pick of #15962) (#16023) -
Upgrade default iPython to 7.34, which drops Python 3.6 (Cherry-pick of #15934) (#15938)
Plugin API Changes
- Introduce a plugin API to provide all thread local state, and deprecate stdio-specific methods (Cherry-pick of #15890) (#15916)
Bug fixes
-
Backtrack through calls from
@rulesto synchronous engine methods (Cherry-pick of #15979) (#16001) -
Assorted remote metrics fixes. (Cherry-pick of #15914) (#15976)
-
Fix bad "" description in invalid addresses error messages (Cherry-pick of #15859) (#15936)
-
Fix reporting of time spent downloading files (Cherry-pick of #15873) (#15921)
-
Upgrade to
nails0.13.0to pick up support forJDK >=13. (Cherry-pick of #15899) (#15918) -
Allow JVM memory controls to bound the process pool size to less than the process parallelism (Cherry-pick of #15903) (#15917)
-
Increment the missing-digest backtracking level once per attempt (Cherry pick of #15889) (#15897)
-
Scala: should visit ctor args of base type (Cherry pick of #15880) (#15892)
-
Scala: mark an object that extends another type as recursive (Cherry pick of #15865) (#15891)
Performance
-
terraform: use immutable input for Terraform tool (Cherry-pick of #15037) (#15998)
-
Improve performance of file arguments when
--owners-not-found-behaviornot used (#15931) -
Dedupe
load_bytes_withcalls to a remote Store (Cherry-pick of #15901) (#15915)
Documentation
-
Update Python documentation with 2.11 changes (Cherry-pick of #15857) (#15981)
-
Update certificate environment variable advice for #14808. (Cherry-pick of #15943) (#15974)
-
Update the docs for
fmtand test report changes (Cherry-pick of #15968) (#15971) -
Clarify deprecation messages for
tailorandupdate-build-filesrequiring CLI arguments (Cherry-pick of #15932) (#15937)
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_dependenciesand deprecate it defaulting to true (#15841) -
Add
--debug-adapterflag totestgoal (#15799)
Plugin API Changes
-
Add
skip_invalid_addressesfield toUnparsedAddressInputs(#15864) -
Add
MaybeAddressfor infallible evaluation ofAddressInput(#15863) -
Add optional
StringSequenceField.valid_choices(#15684) -
WrappedTargetnow requiresWrappedTargetRequest(#15789) -
Move
ResolveErrorfrompants.base.exceptionstopants.build_graph.address(#15790) -
_TargetParametrizationsnow requires_TargetParametrizationsRequest(#15759) -
BuildFileAddressnow requiresBuildFileAddressRequest(#15760)
Bug fixes
-
Support
--helpfor builtin goals. (#15798) -
Handle venv path special chars in coursier fetch (#15701)
-
Fix
[python-infer].initsand[python-infer].confteststo considerresolvefield (#15787)
Performance
-
Backtrack execution for missing digests to make
eager_fetch=falsemore resilient (#15850) -
Remove synchronous remote cache lookup from remote execution (#15854)
Documentation
-
Fix broken links to
tailordocumentation (#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_varsfield toexperimental_shell_commandtarget. (#15742) -
Add
experimental-explorerbuiltin 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_warningswarnings behavior tobackoff. (#15745) -
Revert "Go can use both
fileandresourcetargets (#15663)" (#15725) -
Deprecate
--exclude-target-regexpin favor of--filter-address-regex(#15729)
Plugin API Changes
-
Require setting
description_of_originwithAddressInputandUnparsedAddressInputs(#15743) -
Require keyword arguments for
AddressInput(#15741)
Bug fixes
-
tailorshould skip bad requirements targets (#15755) -
tailorfor 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-usageand--process-per-child-memory-usage(#15733) -
Fix
--changed-sincewith 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
fileandresourcetargets (#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
runtmpdir. (#15683) -
Upgrade Pex to 2.1.90. (#15656)
-
Remove
-das 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
Specsas 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
@rulesets (#15668) -
Fix
--helpoutput when specs given. (#15665) -
update-build-filesfalls back to interpreter constraints from tool lockfile for Black and Yapf (#15666) -
Fix detection of
--helpwhen specs given (#15664) -
Choose correct Scala dialect according to scala-version (#15649)
-
Fix deleted files with
--changed-sincewhen 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-sinceworks on target-less goals likecount-loc(#14434) -
Add
--no-use-deprecated-directory-cli-args-semanticsso that directory arguments match all files/targets in the directory (#15589) -
filteroptions work with any goal now, not only thefiltergoal (#15599) -
Use new, consistent CLI args semantics for
tailorifuse_deprecated_cli_args_semantics = false(#15612) -
Support JVM options per tool (#15505)
-
Allow turning off
exportof Python tools likeblack(#15509) -
Adding file downloading support to asset targets (#15457)
User API Changes
-
Deprecate
filtergoal now thatfilteroptions can be used from any goal (#15600) -
Tailor
__main__.pyfiles as pex binaries (#15598) -
update-build-filesnow 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-behaviorand set default toignore(#15560) -
Add
--unmatched-cli-globs, which before was controlled by--owners-not-found-behavior(#15556) -
Deprecate
files_not_found_behaviorin favor ofunmatched_build_file_globs(#15555) -
Remove undocumented CLI file arguments ignore syntax (#15534)
-
go_third_party_packagetargets now depend on theirgo.modandgo.sum(#15521) -
--changed-dependeesno longer runs on sibling targets from same target generator (#15396) -
Change
_generator_sources_helperto usesource: strrather thansources: list[str](#15475) -
Upgrade Pex to 2.1.88. (#15484)
-
Revert "Deprecate
[python].tailor_ignore_solitary_init_filesin favor of more useful[python].tailor_ignore_empty_init_files(#15469)" (#15492)
Plugin API Changes
-
Replace
SpecsSnapshotwith lazierSpecsPaths(#15593) -
Rename classes in
specs.pyfor unification of specs semantics (#15538) -
Remove
addressable=kwarg fromtailor(#15504) -
Remove
AbstractTestGeneratorfrompantsbuild.pants.testutil(#15464)
Bug fixes
-
Fix incorrect digest for JVM multiple
jvm_artifact(.., jar=..)entries (#15571) -
Record Scala
package objectas provided name (#15582) -
Fix deprecation message for
--filter-target-typewith deprecated target alias (#15596) -
Fix scala inference doesn't infer name after function call (#15565)
-
Fix JVM resource classification and artifact grouping (#15567)
-
Apply
--tagfiltering to target-less goals likecount-loc(#15479) -
Fix
tagfiltering 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
ClasspathEntryRequestimplementations (#15494)
Performance
-
lintonly finds targets and files if the relevant linters were specified (#15579) -
regex-lintonly 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-depin 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-formattersoption (#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_filesin 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_constraintsare a subset of their dependencies' (#15373) -
Add
[python-infer].init_filesas more intuitive replacement for[python-infer].inits(#15397)
Plugin API Changes
- Move
get_gitdeprecation 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_idfield onkotlinc_plugintarget 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
tagsto work with filesystem arguments,overridesfield, 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
dependencieson 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
tailorforpoetry_requirementsandpipenv_requirements(#15352)
User API Changes
- Add default mapping for pygithub (#15361)
Bug fixes
-
Generalize Docker dep inference for all packageables. (#15375)
-
Fix
tailordetection of existingpython_requirementstargets (#15363) -
Add the "named args explanation" to other relevant
parametrizeerror messages. (#15362) -
Use abspath to sandbox in PATH for docker tool shims. (#15341)
Documentation
-
Improve
helpand 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
tailoron a per-language basis (#15335)
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_versionin favor of more flexible[golang].minimum_expected_version(#15306)
Plugin API Changes
- Add
update_envtoprocess_execution::local. (#15340)
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_datain generatedsetup.pyfiles (#15292)
Performance
- Eagerly skip tools with default lockfiles in
export-lockfilesgoal (#15304)
Documentation
- Improve error message for resolves x interpreter constraints issues (#15314)
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
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.testutil-2.13.0-py3-none-any.whl.
File metadata
- Download URL: pantsbuild.pants.testutil-2.13.0-py3-none-any.whl
- Upload date:
- Size: 27.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30dfe73de2c46f09131aa6ab5714e10b991e653bb04b44a445cbe16c0b272a8a
|
|
| MD5 |
2b99d6056a016d531eb7d019ce9c1f5d
|
|
| BLAKE2b-256 |
21f1cc9af7fc365c2709fead1be52d330462c37eb3900f9190e69979f55d9ad1
|