Metadata-Version: 2.1
Name: pantsbuild.pants.testutil
Version: 2.13.0.dev5
Summary: Test support for writing Pants plugins.
Home-page: https://github.com/pantsbuild/pants
License: Apache License, Version 2.0
Project-URL: Documentation, https://www.pantsbuild.org/
Project-URL: Source, https://github.com/pantsbuild/pants
Project-URL: Tracker, https://github.com/pantsbuild/pants/issues
Project-URL: Changelog, https://www.pantsbuild.org/docs/changelog
Project-URL: Twitter, https://twitter.com/pantsbuild
Project-URL: Slack, https://pantsbuild.slack.com/join/shared_invite/zt-d0uh0mok-RLvVosDiX6JDpvStH~bFBA#/shared-invite/email
Project-URL: YouTube, https://www.youtube.com/channel/UCCcfCbDqtqlCkFEuENsHlbQ
Project-URL: Mailing lists, https://groups.google.com/g/pants-devel
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Testing
Requires-Python: >=3.7,<3.10
Description-Content-Type: text/markdown
Requires-Dist: pantsbuild.pants (==2.13.0.dev5)
Requires-Dist: pytest (<7.1.0,>=6.2.4)

Pants is an Apache2 licensed build tool written in Python and Rust.

The latest documentation can be found at [pantsbuild.org](https://www.pantsbuild.org/).


# 2.13.x Release Series

## 2.13.0.dev5 (Jun 08, 2022)

### New Features

* Add GraphQL API server backend for the experimental-explorer goal ([#15697](https://github.com/pantsbuild/pants/pull/15697))

* Add `extra_env_vars` field to `experimental_shell_command` target. ([#15742](https://github.com/pantsbuild/pants/pull/15742))

* Add `experimental-explorer` builtin goal. ([#15695](https://github.com/pantsbuild/pants/pull/15695))

### User API Changes

* Always ignore paths which are not files, directories, or links. ([#15773](https://github.com/pantsbuild/pants/pull/15773))

* Add API types and rules to cli help info ([#14227](https://github.com/pantsbuild/pants/pull/14227))

* Change the default `remote_cache_warnings` warnings behavior to `backoff`. ([#15745](https://github.com/pantsbuild/pants/pull/15745))

* Revert "Go can use both `file` and `resource` targets (#15663)" ([#15725](https://github.com/pantsbuild/pants/pull/15725))

* Deprecate `--exclude-target-regexp` in favor of `--filter-address-regex` ([#15729](https://github.com/pantsbuild/pants/pull/15729))

### Plugin API Changes

* Require setting `description_of_origin` with `AddressInput` and `UnparsedAddressInputs` ([#15743](https://github.com/pantsbuild/pants/pull/15743))

* Require keyword arguments for `AddressInput` ([#15741](https://github.com/pantsbuild/pants/pull/15741))

### Bug fixes

* `tailor` should skip bad requirements targets ([#15755](https://github.com/pantsbuild/pants/pull/15755))

* `tailor` for Go does not add targets when no ancestor `go.mod` ([#15750](https://github.com/pantsbuild/pants/pull/15750))

* Record metrics for remote cache store errors ([#15744](https://github.com/pantsbuild/pants/pull/15744))

* Fix help for `--process-total-child-memory-usage` and `--process-per-child-memory-usage` ([#15733](https://github.com/pantsbuild/pants/pull/15733))

* Fix `--changed-since` with directories unknown to Pants ([#15714](https://github.com/pantsbuild/pants/pull/15714))

### Documentation

* Improve error messages for invalid addresses ([#15751](https://github.com/pantsbuild/pants/pull/15751))

* Correctly describe the origin of invalid specs, e.g. `--paths-from` ([#15730](https://github.com/pantsbuild/pants/pull/15730))

## 2.13.0.dev4 (May 31, 2022)

### New Features

* Support running pex_binary targets directly on the in-repo sources. ([#15689](https://github.com/pantsbuild/pants/pull/15689))

* Go can use both `file` and `resource` targets ([#15663](https://github.com/pantsbuild/pants/pull/15663))

* Add ignore command line arguments, e.g. `-dir::` ([#15619](https://github.com/pantsbuild/pants/pull/15619))

* Allow to skip linting on Helm charts ([#15640](https://github.com/pantsbuild/pants/pull/15640))

* Helm charts support CRDS by default ([#15623](https://github.com/pantsbuild/pants/pull/15623))

* Adds dependency injection rule for protobuf-java runtime ([#15006](https://github.com/pantsbuild/pants/pull/15006))

### User API Changes

* Make the global --no-process-cleanup conserve the `run` tmpdir. ([#15683](https://github.com/pantsbuild/pants/pull/15683))

* Upgrade Pex to 2.1.90. ([#15656](https://github.com/pantsbuild/pants/pull/15656))

* Remove `-d` as shorthand for `--logdir` ([#15621](https://github.com/pantsbuild/pants/pull/15621))

### Plugin API Changes

* `PutativeTargetsRequest.path_globs()` can take multiple globs ([#15634](https://github.com/pantsbuild/pants/pull/15634))

* [Plugin API change] Remove default help message from MultipleSourcesField ([#15633](https://github.com/pantsbuild/pants/pull/15633))

* Don't allow multiple flag names for the same option ([#15627](https://github.com/pantsbuild/pants/pull/15627))

* Remove `PutativeTargetsSearchPaths` ([#15625](https://github.com/pantsbuild/pants/pull/15625))

* Refactor `Specs` as prework for ignore Specs ([#15620](https://github.com/pantsbuild/pants/pull/15620))

* Ban using short option names like `-x`, except for pre-blessed values ([#15624](https://github.com/pantsbuild/pants/pull/15624))

### Bug fixes

* Don't install Pex-style lockfile when no requirements used ([#15706](https://github.com/pantsbuild/pants/pull/15706))

* `python_requirements()` can handle `-r reqs.txt` ([#15672](https://github.com/pantsbuild/pants/pull/15672))

* Increase RuleGraph solver loop threshold to allow for larger `@rule` sets ([#15668](https://github.com/pantsbuild/pants/pull/15668))

* Fix `--help` output when specs given. ([#15665](https://github.com/pantsbuild/pants/pull/15665))

* `update-build-files` falls back to interpreter constraints from tool lockfile for Black and Yapf ([#15666](https://github.com/pantsbuild/pants/pull/15666))

* Fix detection of `--help` when specs given ([#15664](https://github.com/pantsbuild/pants/pull/15664))

* Choose correct Scala dialect according to scala-version ([#15649](https://github.com/pantsbuild/pants/pull/15649))

* Fix deleted files with `--changed-since` when using target-less goals like `count-loc` ([#15662](https://github.com/pantsbuild/pants/pull/15662))

* Prevent collisions between attempts to materialize an immutable input digest. ([#15652](https://github.com/pantsbuild/pants/pull/15652))

* Fix another case of direct Coursier lockfile consumption ([#15650](https://github.com/pantsbuild/pants/pull/15650))

### Documentation

* Mention language specific opt outs for `tailor` ([#15673](https://github.com/pantsbuild/pants/pull/15673))

* Provide more "Did you mean ..." suggestions for the CLI help. ([#15646](https://github.com/pantsbuild/pants/pull/15646))

* [docs] Add language specific file examples for sources help message of a target ([#15635](https://github.com/pantsbuild/pants/pull/15635))

* Docs: show language specific file examples in sources field in the help of targets ([#15595](https://github.com/pantsbuild/pants/pull/15595))

## 2.13.0.dev3 (May 23, 2022)

### New Features

* `dir:` and `dir::` work on target-less goals like `count-loc` ([#15577](https://github.com/pantsbuild/pants/pull/15577))

* `--changed-since` works on target-less goals like `count-loc` ([#14434](https://github.com/pantsbuild/pants/pull/14434))

* Add `--no-use-deprecated-directory-cli-args-semantics` so that directory arguments match all files/targets in the directory ([#15589](https://github.com/pantsbuild/pants/pull/15589))

* `filter` options work with any goal now, not only the `filter` goal ([#15599](https://github.com/pantsbuild/pants/pull/15599))

* Use new, consistent CLI args semantics for `tailor` if `use_deprecated_cli_args_semantics = false` ([#15612](https://github.com/pantsbuild/pants/pull/15612))

* Support JVM options per tool ([#15505](https://github.com/pantsbuild/pants/pull/15505))

* Allow turning off `export` of Python tools like `black` ([#15509](https://github.com/pantsbuild/pants/pull/15509))

* Adding file downloading support to asset targets ([#15457](https://github.com/pantsbuild/pants/pull/15457))

### User API Changes

* Deprecate `filter` goal now that `filter` options can be used from any goal ([#15600](https://github.com/pantsbuild/pants/pull/15600))

* Tailor `__main__.py` files as pex binaries ([#15598](https://github.com/pantsbuild/pants/pull/15598))

* `update-build-files` now takes CLI args for which BUILD files to change ([#15581](https://github.com/pantsbuild/pants/pull/15581))

* Don't error when `dir:` and `dir::` have no targets, as long as the directories exist ([#15570](https://github.com/pantsbuild/pants/pull/15570))

* Deprecate `--owners-not-found-behavior` and set default to `ignore` ([#15560](https://github.com/pantsbuild/pants/pull/15560))

* Add `--unmatched-cli-globs`, which before was controlled by `--owners-not-found-behavior` ([#15556](https://github.com/pantsbuild/pants/pull/15556))

* Deprecate `files_not_found_behavior` in favor of `unmatched_build_file_globs` ([#15555](https://github.com/pantsbuild/pants/pull/15555))

* Remove undocumented CLI file arguments ignore syntax ([#15534](https://github.com/pantsbuild/pants/pull/15534))

* `go_third_party_package` targets now depend on their `go.mod` and `go.sum` ([#15521](https://github.com/pantsbuild/pants/pull/15521))

* `--changed-dependees` no longer runs on sibling targets from same target generator ([#15396](https://github.com/pantsbuild/pants/pull/15396))

* Change `_generator_sources_helper` to use `source: str` rather than `sources: list[str]` ([#15475](https://github.com/pantsbuild/pants/pull/15475))

* Upgrade Pex to 2.1.88. ([#15484](https://github.com/pantsbuild/pants/pull/15484))

* Revert "Deprecate `[python].tailor_ignore_solitary_init_files` in favor of more useful `[python].tailor_ignore_empty_init_files` (#15469)" ([#15492](https://github.com/pantsbuild/pants/pull/15492))

### Plugin API Changes

* Replace `SpecsSnapshot` with lazier `SpecsPaths` ([#15593](https://github.com/pantsbuild/pants/pull/15593))

* Rename classes in `specs.py` for unification of specs semantics ([#15538](https://github.com/pantsbuild/pants/pull/15538))

* Remove `addressable=` kwarg from `tailor` ([#15504](https://github.com/pantsbuild/pants/pull/15504))

* Remove `AbstractTestGenerator` from `pantsbuild.pants.testutil` ([#15464](https://github.com/pantsbuild/pants/pull/15464))

### Bug fixes

* Fix incorrect digest for JVM multiple `jvm_artifact(.., jar=..)` entries ([#15571](https://github.com/pantsbuild/pants/pull/15571))

* Record Scala `package object` as provided name ([#15582](https://github.com/pantsbuild/pants/pull/15582))

* Fix deprecation message for `--filter-target-type` with deprecated target alias ([#15596](https://github.com/pantsbuild/pants/pull/15596))

* Fix scala inference doesn't infer name after function call ([#15565](https://github.com/pantsbuild/pants/pull/15565))

* Fix JVM resource classification and artifact grouping ([#15567](https://github.com/pantsbuild/pants/pull/15567))

* Apply `--tag` filtering to target-less goals like `count-loc` ([#15479](https://github.com/pantsbuild/pants/pull/15479))

* Fix `tag` filtering with `--changed-dependees` ([#15546](https://github.com/pantsbuild/pants/pull/15546))

* Fix non-deterministic order of `jvm_artifact(.., excludes=..)` ([#15542](https://github.com/pantsbuild/pants/pull/15542))

* Support transitive file dependencies in Scalatest/JUnit ([#15501](https://github.com/pantsbuild/pants/pull/15501))

* Improve `name=` used for Python requirement target generators with `tailor` ([#15507](https://github.com/pantsbuild/pants/pull/15507))

* don't generate default tool lockfiles ([#15488](https://github.com/pantsbuild/pants/pull/15488))

* Don't give a subsequent formatter an empty snapshot after skipping ([#15483](https://github.com/pantsbuild/pants/pull/15483))

* jvm: fix incorrect check for root-only `ClasspathEntryRequest` implementations ([#15494](https://github.com/pantsbuild/pants/pull/15494))

### Performance

* `lint` only finds targets and files if the relevant linters were specified ([#15579](https://github.com/pantsbuild/pants/pull/15579))

* `regex-lint` only reads files that will be checked ([#15580](https://github.com/pantsbuild/pants/pull/15580))

### Documentation

* Freshen up deprecated option formatting ([#15590](https://github.com/pantsbuild/pants/pull/15590))

* Make required fields sort first on the docsite and in the './pants help target' output ([#15587](https://github.com/pantsbuild/pants/pull/15587))

* Add a few default_help_reprs ([#15588](https://github.com/pantsbuild/pants/pull/15588))

* Suggest a UUID when erroring about missing UUID ([#15550](https://github.com/pantsbuild/pants/pull/15550))

* Tweak docs to include `no-infer-dep` in a few more places ([#15547](https://github.com/pantsbuild/pants/pull/15547))

## 2.13.0.dev2 (May 14, 2022)

### New Features

* Adds JDK autoconfiguration support to scala BSP metadata setup  ([#15408](https://github.com/pantsbuild/pants/pull/15408))

* Add `lint --skip-formatters` option ([#15427](https://github.com/pantsbuild/pants/pull/15427))

* Support for sharding tests. ([#15417](https://github.com/pantsbuild/pants/pull/15417))

* Add clang-format support for the experimental c/cpp plugin ([#15395](https://github.com/pantsbuild/pants/pull/15395))

* Support setting env vars in individual distribution builds. ([#15422](https://github.com/pantsbuild/pants/pull/15422))

* kotlin: add support for junit tests ([#15382](https://github.com/pantsbuild/pants/pull/15382))

### User API Changes

* Upgrade Pex to 2.1.87. ([#15472](https://github.com/pantsbuild/pants/pull/15472))

* Deprecate `[python].tailor_ignore_solitary_init_files` in favor of more useful `[python].tailor_ignore_empty_init_files` ([#15469](https://github.com/pantsbuild/pants/pull/15469))

* Upgrade default Protoc version to 3.20.1 (native Apple Silicon support) ([#15424](https://github.com/pantsbuild/pants/pull/15424))

* Require that a target's `interpreter_constraints` are a subset of their dependencies' ([#15373](https://github.com/pantsbuild/pants/pull/15373))

* Add `[python-infer].init_files` as more intuitive replacement for `[python-infer].inits` ([#15397](https://github.com/pantsbuild/pants/pull/15397))

### Plugin API Changes

* Move `get_git` deprecation to start in `2.14.0.dev0` ([#15423](https://github.com/pantsbuild/pants/pull/15423))

### Bug fixes

* Only infer an __init__.py dep on a python_sources-generated target. ([#15471](https://github.com/pantsbuild/pants/pull/15471))

* kotlin: the `plugin_id` field on `kotlinc_plugin` target is optional ([#15459](https://github.com/pantsbuild/pants/pull/15459))

* support relative address syntax for JVM compiler plugin artifacts ([#15462](https://github.com/pantsbuild/pants/pull/15462))

* Fix lockfile generation for Docker, Terraform, and Clang-format to not require Python backend ([#15453](https://github.com/pantsbuild/pants/pull/15453))

* Fix boolean logic when merging interpreter constraints. ([#15414](https://github.com/pantsbuild/pants/pull/15414))

* Fix `tags` to work with filesystem arguments, `overrides` field, and `python_tests` ([#15394](https://github.com/pantsbuild/pants/pull/15394))

* Support the `{chroot}` env placeholder for all interactive processes that are not executed in the workspace. ([#15401](https://github.com/pantsbuild/pants/pull/15401))

* Fix `[]` in file names with target generators ([#15383](https://github.com/pantsbuild/pants/pull/15383))

* BSP consumes thirdparty artifacts via their classpath entries, rather than directly from the lockfile. ([#15392](https://github.com/pantsbuild/pants/pull/15392))

### Documentation

* Improve error message for `dependencies` on incompatible Python resolves ([#15416](https://github.com/pantsbuild/pants/pull/15416))

## 2.13.0.dev1 (May 10, 2022)

### New Features

* Initial support for building dists using mypyc. ([#15380](https://github.com/pantsbuild/pants/pull/15380))

* Support dependency inference on vcs_version targets. ([#15385](https://github.com/pantsbuild/pants/pull/15385))

* Support for getting a version string from git. ([#15374](https://github.com/pantsbuild/pants/pull/15374))

* Add `tailor` for `poetry_requirements` and `pipenv_requirements` ([#15352](https://github.com/pantsbuild/pants/pull/15352))

### User API Changes

* Add default mapping for pygithub ([#15361](https://github.com/pantsbuild/pants/pull/15361))

### Bug fixes

* Generalize Docker dep inference for all packageables. ([#15375](https://github.com/pantsbuild/pants/pull/15375))

* Fix `tailor` detection of existing `python_requirements` targets ([#15363](https://github.com/pantsbuild/pants/pull/15363))

* Add the "named args explanation" to other relevant `parametrize` error messages. ([#15362](https://github.com/pantsbuild/pants/pull/15362))

* Use abspath to sandbox in PATH for docker tool shims. ([#15341](https://github.com/pantsbuild/pants/pull/15341))

### Documentation

* Improve `help` and error message for `[python-infer].unowned_dependency_behavior` ([#15334](https://github.com/pantsbuild/pants/pull/15334))

* Disallow `!` patterns in `build_ignore`. ([#15366](https://github.com/pantsbuild/pants/pull/15366))

## 2.13.0.dev0 (May 05, 2022)

### New Features

* BSP compile exposes loose classfiles to allow IntelliJ to invoke tests ([#15347](https://github.com/pantsbuild/pants/pull/15347))

* Add options to turn off `tailor` on a per-language basis ([#15335](https://github.com/pantsbuild/pants/pull/15335))

* Add lz4 support to archive extraction ([#15245](https://github.com/pantsbuild/pants/pull/15245))

* Implement `tailor` goal for Helm charts ([#15191](https://github.com/pantsbuild/pants/pull/15191))

* Write virtualenvs for Python tools as part of `export` ([#15098](https://github.com/pantsbuild/pants/pull/15098))

### User API Changes

* Upgrade hadolint to 2.10.0 and add linux arm64 support ([#15317](https://github.com/pantsbuild/pants/pull/15317))

* Remove `[test].xml_dir`, `[update-build-files].fix_python_macros`, and `[java-infer].third_party_imports` ([#15311](https://github.com/pantsbuild/pants/pull/15311))

* Deprecate `[golang].expected_version` in favor of more flexible `[golang].minimum_expected_version` ([#15306](https://github.com/pantsbuild/pants/pull/15306))

* Upgrade Pex to 2.1.84. ([#15288](https://github.com/pantsbuild/pants/pull/15288))


### Plugin API Changes

* Add `update_env` to `process_execution::local`. ([#15340](https://github.com/pantsbuild/pants/pull/15340))

* Allow for arbitrary suffixes when extracting ([#15257](https://github.com/pantsbuild/pants/pull/15257))

### Bug fixes

* Fix error output of `parametrize()` ([#15339](https://github.com/pantsbuild/pants/pull/15339))

* Don't strip source roots when building dists with an existing setup.py ([#15303](https://github.com/pantsbuild/pants/pull/15303))

* Fix a bug in the python venv export logic. ([#15294](https://github.com/pantsbuild/pants/pull/15294))

* Fix non-determinism of `package_data` in generated `setup.py` files ([#15292](https://github.com/pantsbuild/pants/pull/15292))

* Simplify BSP metadata merging, and handle the empty list. ([#15283](https://github.com/pantsbuild/pants/pull/15283))

* BSP resolve filtering observes computed default values of resolve fields ([#15282](https://github.com/pantsbuild/pants/pull/15282))

* Memoize equality for `CoarsenedTarget(s)` to avoid exponential runtime in `check`. ([#15277](https://github.com/pantsbuild/pants/pull/15277))

* Fix ambiguity of Scala `package object`s with `class` or `object` definitions ([#15265](https://github.com/pantsbuild/pants/pull/15265))

* Fix issue with Docker publish when using `[docker] tools`. ([#15255](https://github.com/pantsbuild/pants/pull/15255))

* Do not lowercase Docker image tags. ([#15254](https://github.com/pantsbuild/pants/pull/15254))

* Fix the placement of the pex verbosity args. ([#15243](https://github.com/pantsbuild/pants/pull/15243))

* Fix use of `@` in path names. ([#15226](https://github.com/pantsbuild/pants/pull/15226))

* Fix lockfile generation for duplicate `jvm_artifact` targets with `jar` fields. ([#15219](https://github.com/pantsbuild/pants/pull/15219))

* Support poetry wildcard requirements. ([#15213](https://github.com/pantsbuild/pants/pull/15213))

* golang: add more cache keys based on tool IDs ([#15205](https://github.com/pantsbuild/pants/pull/15205))

### Performance

* Eagerly skip tools with default lockfiles in `export-lockfiles` goal ([#15304](https://github.com/pantsbuild/pants/pull/15304))

* `MyPy` and `Pylint` partition inputs via `CoarsenedTarget` ([#15141](https://github.com/pantsbuild/pants/pull/15141))

### Documentation

* Improve error message for resolves x interpreter constraints issues ([#15314](https://github.com/pantsbuild/pants/pull/15314))

* Fix `ProtobufSourcesOverridesField` help message ([#15272](https://github.com/pantsbuild/pants/pull/15272))

* Update `help` for python resolves with recent improvements ([#15228](https://github.com/pantsbuild/pants/pull/15228))

* Don't log set up of binary shims ([#15203](https://github.com/pantsbuild/pants/pull/15203))

* Mention resolve when partitioning Mypy and Pylint ([#15172](https://github.com/pantsbuild/pants/pull/15172))


