Metadata-Version: 2.1
Name: pantsbuild.pants.testutil
Version: 2.12.1rc0
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://www.pantsbuild.org/docs/getting-help
Project-URL: YouTube, https://www.youtube.com/channel/UCCcfCbDqtqlCkFEuENsHlbQ
Project-URL: Mailing lists, https://www.pantsbuild.org/docs/getting-help
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.12.1rc0)
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.12.x Release Series

## 2.12.1rc0 (Jul 14, 2022)

### User API Changes

* Fix poetry locks missing hashes. (Cherry-pick of #16112) ([#16114](https://github.com/pantsbuild/pants/pull/16114))

### Bug fixes

* Fix defaulting of parameters in explicitly specified deps on `parametrize`d targets for AsyncFieldMixin (Cherry-pick of #16176) ([#16179](https://github.com/pantsbuild/pants/pull/16179))

* Improve memoization of interpreter constraints, Python parsing, and request classes (Cherry-pick of #16141) ([#16153](https://github.com/pantsbuild/pants/pull/16153))

* Fix pantsd TTY handling. (Cherry-pick of #16038) ([#16047](https://github.com/pantsbuild/pants/pull/16047))

### Documentation

* Updates installation docs to refer to the 1-step setup script (Cherry-picks of #16149) ([#16157](https://github.com/pantsbuild/pants/pull/16157))

* Add 2.12 changelog to docsite (cherrypick #16136) ([#16138](https://github.com/pantsbuild/pants/pull/16138))

* Update docs with 2.12 changes: default Pex lockfile generator, `pants.toml` env var interpolation, pip VCS requirements, and Python interpreter constraints (Cherry-pick of #16000) ([#16059](https://github.com/pantsbuild/pants/pull/16059))

* Fix CI provider table rendering. (cherrypick of #16051) ([#16061](https://github.com/pantsbuild/pants/pull/16061))

* Document Docker registries configuration options for `skip_push` and `extra_image_tags`. (Cherry-pick of #16015) ([#16021](https://github.com/pantsbuild/pants/pull/16021))

* Bump 2.12 install version ([#16002](https://github.com/pantsbuild/pants/pull/16002))

## 2.12.0 (Jun 28, 2022)

The first stable release of the `2.12.x` series, with only documentation changes since the previous `rc`!

### Documentation

* Update certificate environment variable advice for #14808. (Cherry-pick of #15943) ([#15973](https://github.com/pantsbuild/pants/pull/15973))

* Update the docs for `fmt` and test report changes (Cherry-pick of #15968) ([#15970](https://github.com/pantsbuild/pants/pull/15970))

## 2.12.0rc3 (Jun 23, 2022)

### New Features

* Add option for max wait before terminating interactive process (Cherry-pick of #15767) ([#15908](https://github.com/pantsbuild/pants/pull/15908))

### User API Changes

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

### Plugin API Changes

* Introduce a plugin API to provide all thread local state, and deprecate stdio-specific methods (Cherry-pick of #15890) ([#15907](https://github.com/pantsbuild/pants/pull/15907))

### Bug fixes

* Upgrade to `nails` `0.13.0` to pick up support for `JDK >=13`. (Cherry-pick of #15899) ([#15906](https://github.com/pantsbuild/pants/pull/15906))

* Allow JVM memory controls to bound the process pool size to less than the process parallelism (Cherry-pick of #15903) ([#15905](https://github.com/pantsbuild/pants/pull/15905))

* Fix `[python-infer].inits` and `[python-infer].conftests` to consider `resolve` field (Cherry-pick of #15787) ([#15793](https://github.com/pantsbuild/pants/pull/15793))

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

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

### Documentation

* Fix broken links to `tailor` documentation ([#15843](https://github.com/pantsbuild/pants/pull/15843))

* Adds current contents of readme.com docs to repo and adds notes on how to sync. (Cherry-picks #15810) ([#15820](https://github.com/pantsbuild/pants/pull/15820))

* Handle anchors in `doc_url()` correctly (cherrypick of #15812) ([#15823](https://github.com/pantsbuild/pants/pull/15823))

## 2.12.0rc2 (May 31, 2022)

### New Features

* Add Memory controls to JVM processes (Cherry-pick of #15224) ([#15682](https://github.com/pantsbuild/pants/pull/15682))

### User API Changes

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

### Bug fixes

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

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

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

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

## 2.12.0rc1 (May 23, 2022)

### New Features

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

* Support relative address syntax for JVM compiler plugin artifacts (Cherry-pick of #15462) ([#15468](https://github.com/pantsbuild/pants/pull/15468))

### User API Changes

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

### Bug fixes

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

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

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

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

* Fix Scala inference not inferring a symbol name after a function call (Cherry-pick of #15565) ([#15603](https://github.com/pantsbuild/pants/pull/15603))

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

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

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

* Improve `name=` used for `python_requirements` target generators with `tailor` (Cherry-pick of #15507) ([#15519](https://github.com/pantsbuild/pants/pull/15519))

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

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

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

* kotlin: remove stray scala references (Cherry-pick of #15461) ([#15465](https://github.com/pantsbuild/pants/pull/15465))

### Performance

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

## 2.12.0rc0 (May 13, 2022)

### User API Changes

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

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

### Plugin API Changes

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

### Bug fixes

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

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

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

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

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

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

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

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

### Performance

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

### Documentation

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

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

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

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

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

## 2.12.0a0 (Apr 29, 2022)

### New Features

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

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

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

### User API Changes

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

### Plugin API Changes

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

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

### Bug fixes

* 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))

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

### Performance

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

### Documentation

* 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))

* Improve cache-related error message to be less confusing ([#15202](https://github.com/pantsbuild/pants/pull/15202))

* Show `experimental-bsp` goal in help ([#15208](https://github.com/pantsbuild/pants/pull/15208))

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

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

## 2.12.0.dev3 (Apr 16, 2022)

### New Features

* Address specs for parametrized target templates expand to their created targets ([#15126](https://github.com/pantsbuild/pants/pull/15126))

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

* add experimental kotlin backend to distribution  ([#15109](https://github.com/pantsbuild/pants/pull/15109))

* Support pip-style VCS requirements. ([#15097](https://github.com/pantsbuild/pants/pull/15097))

### User API Changes

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

* Ban `terraform_module` referring to subdirectories ([#15106](https://github.com/pantsbuild/pants/pull/15106))

### Plugin API Changes

* Throw a `DuplicateRuleError` when there are conflicting rules in a module. ([#15073](https://github.com/pantsbuild/pants/pull/15073))

* Expose `GitWorktree` as an `@rule` ([#15030](https://github.com/pantsbuild/pants/pull/15030))

### Bug fixes

* Fix Requires-Python for pantsbuild.pants wheel. ([#15149](https://github.com/pantsbuild/pants/pull/15149))

* Allow dashes in inferred asset strings ([#15123](https://github.com/pantsbuild/pants/pull/15123))

* Fix when the same `python_requirement` defines both type stub and implementation ([#15121](https://github.com/pantsbuild/pants/pull/15121))

* Fix missing field check in go protobuf rules ([#15105](https://github.com/pantsbuild/pants/pull/15105))

### Documentation

* Last round of softwrapping help strings ([#15142](https://github.com/pantsbuild/pants/pull/15142))

* Softwrapping a few more files ([#15138](https://github.com/pantsbuild/pants/pull/15138))

* Softwrap python backend help strings ([#15137](https://github.com/pantsbuild/pants/pull/15137))

## 2.12.0.dev2 (Apr 11, 2022)

### New Features

* Support for env var interpolation in config files. ([#15087](https://github.com/pantsbuild/pants/pull/15087))

* Support for finer control over which Docker images to push. ([#15000](https://github.com/pantsbuild/pants/pull/15000))

* Add a helpful hint to `lint` if a formatter fails ([#15048](https://github.com/pantsbuild/pants/pull/15048))

* Add support for Helm 3rd party dependencies ([#14964](https://github.com/pantsbuild/pants/pull/14964))

### User API Changes

* Default `[python].lockfile_generator` to Pex ([#15074](https://github.com/pantsbuild/pants/pull/15074))

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

* terraform: remove `terraform_modules` generator target type ([#15035](https://github.com/pantsbuild/pants/pull/15035))

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

* Change JVM defaults to use Temurin JDK distribution ([#15009](https://github.com/pantsbuild/pants/pull/15009))

### Plugin API Changes

* Remove deprecated `register_options` support. ([#15090](https://github.com/pantsbuild/pants/pull/15090))

* Remove deprecated target generator API affordances. ([#15091](https://github.com/pantsbuild/pants/pull/15091))

* Add `@rule_helper` decorator, which participates in awaitable collection ([#15025](https://github.com/pantsbuild/pants/pull/15025))

### Bug fixes

* Enable codegen on relocated files ([#15100](https://github.com/pantsbuild/pants/pull/15100))

* Preserve tombstones for workunits which complete while they still have children ([#15088](https://github.com/pantsbuild/pants/pull/15088))

* Clean the export dir under dist/ before populating it. ([#15068](https://github.com/pantsbuild/pants/pull/15068))

* Do not use a repository-PEX if a PEX has platforms specified ([#15031](https://github.com/pantsbuild/pants/pull/15031))

* Fix default layout and use of PEX-repositories for legacy lockfiles ([#15014](https://github.com/pantsbuild/pants/pull/15014))

* Pin pytest 7.0.1 ([#14997](https://github.com/pantsbuild/pants/pull/14997))

### Documentation

* files/dirs swapped in Snapshot's repr ([#15101](https://github.com/pantsbuild/pants/pull/15101))

* Tweak deprecation messages. ([#15027](https://github.com/pantsbuild/pants/pull/15027))

* Add some codegen and terraform backends to docs generator ([#15036](https://github.com/pantsbuild/pants/pull/15036))

* Text in angle brackets needs to be escaped for the docsite. ([#15046](https://github.com/pantsbuild/pants/pull/15046))

* Fix presented provider backend for rules/subsystems. ([#14999](https://github.com/pantsbuild/pants/pull/14999))

## 2.12.0.dev1 (Apr 05, 2022)

### New Features

* Support restricting specific requirements to just wheels or just sdists. ([#14985](https://github.com/pantsbuild/pants/pull/14985))

* Add support for Helm unittest ([#14849](https://github.com/pantsbuild/pants/pull/14849))

* Add support for parsing address parameters to CLI specs parsing ([#14949](https://github.com/pantsbuild/pants/pull/14949))

### User API Changes

* Merge list values across config files. ([#14850](https://github.com/pantsbuild/pants/pull/14850))

* Write test reports to a standard location under the distdir. ([#14929](https://github.com/pantsbuild/pants/pull/14929))

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

* Upgrade coursier to v2.1.0-M5-18-gfebf9838c ([#14978](https://github.com/pantsbuild/pants/pull/14978))

### Plugin API Changes

* "Unify" `fmt` and `lint` rules for formatters ([#14903](https://github.com/pantsbuild/pants/pull/14903))

* Refactor `prior_formatter_result` and its usage ([#14987](https://github.com/pantsbuild/pants/pull/14987))

* Deprecate not implementing `TargetGenerator` in `GenerateTargetsRequest` implementors. ([#14959](https://github.com/pantsbuild/pants/pull/14959))

### Bug fixes

* add go protobuf backend to init/BUILD ([#14979](https://github.com/pantsbuild/pants/pull/14979))

* Fix Pylint config check strings ([#14946](https://github.com/pantsbuild/pants/pull/14946))

* Fix missing `check` output by allowing disabled workunits to re-enable themselves ([#14934](https://github.com/pantsbuild/pants/pull/14934))

* Fix unrecognized field error and `update-build-files` to handle target generator moved fields ([#14847](https://github.com/pantsbuild/pants/pull/14847))

### Performance

* Make PEX lockfile subsetting incremental ([#14944](https://github.com/pantsbuild/pants/pull/14944))

### Documentation

* Don't warn if no relevant targets in glob or --changed. ([#14904](https://github.com/pantsbuild/pants/pull/14904))

## 2.12.0.dev0 (Mar 25, 2022)

### New Features

* Add Protobuf formatting using buf format ([#14907](https://github.com/pantsbuild/pants/pull/14907))

* add registration for the Go Protobuf backend ([#14874](https://github.com/pantsbuild/pants/pull/14874))

### User API Changes

* Remove `--use-deprecated-python-macros` in favor of always using target generators ([#14842](https://github.com/pantsbuild/pants/pull/14842))

* Add `django-dotenv`, `django-safedelete` and `factory-boy` to default Python module mapping ([#14848](https://github.com/pantsbuild/pants/pull/14848))

* Add cattrs to Python's DEFAULT_MODULE_MAPPING ([#14845](https://github.com/pantsbuild/pants/pull/14845))

* hcl parser 3.0.5 ([#14878](https://github.com/pantsbuild/pants/pull/14878))

### Plugin API Changes

* FmtResult now operates on Snapshots ([#14865](https://github.com/pantsbuild/pants/pull/14865))

### Bug fixes

* add cache key for all Go SDK invocations ([#14897](https://github.com/pantsbuild/pants/pull/14897))

* Unify glob-matching implementations to fix malformed snapshot created by subsetting ([#14889](https://github.com/pantsbuild/pants/pull/14889))

* Adds `ClasspathEntryRequest` classification for codegen target generators ([#14893](https://github.com/pantsbuild/pants/pull/14893))

* Adds `jvm_jdk` field to protobufs when the Scala backend is enabled ([#14891](https://github.com/pantsbuild/pants/pull/14891))


