Metadata-Version: 2.1
Name: pantsbuild.pants.testutil
Version: 2.16.0.dev6
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
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.16.0.dev6)
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.16.x Release Series


## 2.16.0.dev6 (Jan 29, 2023)

### New Features

* go: add `environment` field to `go_binary` ([#18113](https://github.com/pantsbuild/pants/pull/18113))

* Add experimental backend for ruff with lint and fmt goals ([#17945](https://github.com/pantsbuild/pants/pull/17945))

* Add support for `fmt` cue files. ([#18106](https://github.com/pantsbuild/pants/pull/18106))

* Add new experimental backend for CUE with initial support for the `lint` goal. ([#17943](https://github.com/pantsbuild/pants/pull/17943))

* Add yamllint as a lint tool for YAML sources ([#17821](https://github.com/pantsbuild/pants/pull/17821))

* lint: add pydocstyle python backend ([#17596](https://github.com/pantsbuild/pants/pull/17596))

### User API Changes

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

### Plugin API Changes

* Make the python dep inference script extensible. ([#17997](https://github.com/pantsbuild/pants/pull/17997))

* Remove some dead code from `lockfile.py` ([#18041](https://github.com/pantsbuild/pants/pull/18041))

### Bug fixes

* Inject a path-safe target spec into `experimental_shell_command` etc processes ([#18092](https://github.com/pantsbuild/pants/pull/18092))

* docker: Allow overriding FROM args when determining upstream image dependencies ([#18009](https://github.com/pantsbuild/pants/pull/18009))

* Make mypy cache per-repo ([#18043](https://github.com/pantsbuild/pants/pull/18043))

* Fix caching of PATH lookups in remote execution ([#18026](https://github.com/pantsbuild/pants/pull/18026))

### Documentation

* docs: make tutorials to get started writing plugins visible on readme pages ([#18083](https://github.com/pantsbuild/pants/pull/18083))

* Document new pants launcher binary, aka scie-pants. ([#18056](https://github.com/pantsbuild/pants/pull/18056))

* Front matter for new tutorial pages. ([#18074](https://github.com/pantsbuild/pants/pull/18074))

* Cosmetic fix for current value information in help output for pass-through arguments. ([#18051](https://github.com/pantsbuild/pants/pull/18051))

* docs: add pydocstyle to the docs and help reference ([#18033](https://github.com/pantsbuild/pants/pull/18033))

* docs: add tutorial to get started writing plugins: No 3 ([#18018](https://github.com/pantsbuild/pants/pull/18018))

## 2.16.0.dev5 (Jan 16, 2023)

### New Features

* New `env()` BUILD file function. ([#17652](https://github.com/pantsbuild/pants/pull/17652))

* Support REPL command history. ([#17959](https://github.com/pantsbuild/pants/pull/17959))

* Resolve Python dep inference ambiguity via locality. ([#17931](https://github.com/pantsbuild/pants/pull/17931))

* Add targets to re-wrap source files in different `SourcesField` types. ([#17877](https://github.com/pantsbuild/pants/pull/17877))

* Allow plugins to add custom schema/authority URL handler rules ([#17898](https://github.com/pantsbuild/pants/pull/17898))

* Support freezing command line args and env vars into pex binaries. ([#17905](https://github.com/pantsbuild/pants/pull/17905))

* Support catching `@rule` errors ([#17911](https://github.com/pantsbuild/pants/pull/17911))

### User API Changes

* Ugrade Pex to 2.1.120 ([#17957](https://github.com/pantsbuild/pants/pull/17957))

* Adds `workdir` field for `experimental_shell_command` and friends ([#17928](https://github.com/pantsbuild/pants/pull/17928))

### Bug fixes

* Let pyright see dependencies in other source roots. ([#18014](https://github.com/pantsbuild/pants/pull/18014))

* go: gather and link transitive prebuilt object files for cgo mode ([#17971](https://github.com/pantsbuild/pants/pull/17971))

* add skip_pyright field to python test targets ([#17960](https://github.com/pantsbuild/pants/pull/17960))

* Allow `experimental_shell_command`/`experimental_run_in_sandbox` to specify `output_`s from anywhere under the buildroot ([#17938](https://github.com/pantsbuild/pants/pull/17938))

* Do not load the BUILD file prelude (macros) in the bootstrap scheduler. ([#17939](https://github.com/pantsbuild/pants/pull/17939))

### Documentation

* WSL disclaimer in Getting Started/Prerequisites ([#18000](https://github.com/pantsbuild/pants/pull/18000))

* Add Daniel Goldman and Darcy Shen to team page ([#17921](https://github.com/pantsbuild/pants/pull/17921))

* Clarify runtime vs. complete_platforms for serverless. ([#18001](https://github.com/pantsbuild/pants/pull/18001))

* docs: add tutorial to get started writing plugins: No 2 ([#17890](https://github.com/pantsbuild/pants/pull/17890))

* docs: generate a JSON schema file to be used in IDEs when editing pants.toml ([#17915](https://github.com/pantsbuild/pants/pull/17915))

* docs: fix markdown inline code typo in a docstring ([#18002](https://github.com/pantsbuild/pants/pull/18002))

* fix type in `check` help output ([#17969](https://github.com/pantsbuild/pants/pull/17969))

* Document how to update the pants script. ([#17976](https://github.com/pantsbuild/pants/pull/17976))

* Add Kaiko to "who uses Pants" page. ([#17949](https://github.com/pantsbuild/pants/pull/17949))

* docs: provide a link to Google Cloud Function in the backend docstring ([#17948](https://github.com/pantsbuild/pants/pull/17948))

* docs: add info about beta stage support of protobuf for Scala and Java ([#17935](https://github.com/pantsbuild/pants/pull/17935))

* docs: add the first tutorial on writing plugins to readme docs directory ([#17930](https://github.com/pantsbuild/pants/pull/17930))

* docs: reformat the kotlin docs to have better line breaks on readme.com ([#17929](https://github.com/pantsbuild/pants/pull/17929))

* Update and reorganize resource hub ([#17922](https://github.com/pantsbuild/pants/pull/17922))

* Add Payhere to user list. ([#17917](https://github.com/pantsbuild/pants/pull/17917))

* Nudge more technical support toward GH Discussions ([#17906](https://github.com/pantsbuild/pants/pull/17906))

* go: update docs to remove caveats about implemented features ([#17913](https://github.com/pantsbuild/pants/pull/17913))

## 2.16.0.dev4 (Dec 30, 2022)

### New Features

* Add [buf] config and config_discovery options ([#17885](https://github.com/pantsbuild/pants/pull/17885))

* New help topic: `backends`. ([#17600](https://github.com/pantsbuild/pants/pull/17600))

* Make pants work when the uid doesn't map to a user. ([#17881](https://github.com/pantsbuild/pants/pull/17881))

* Make JVM sources runnable ([#17847](https://github.com/pantsbuild/pants/pull/17847))

* Support `python_requirement` as a `run`/`experimental_run_in_sandbox` target ([#17864](https://github.com/pantsbuild/pants/pull/17864))

* Support `experimental_run_in_sandbox`/`./pants run` for `jvm_artifact` targets ([#17827](https://github.com/pantsbuild/pants/pull/17827))

* go: support the `go test` profiling options ([#17836](https://github.com/pantsbuild/pants/pull/17836))

* Add output_path field to python_distribution. ([#17841](https://github.com/pantsbuild/pants/pull/17841))

### User API Changes

* Upgrade default mypy-protobuf version to 3.4 ([#17887](https://github.com/pantsbuild/pants/pull/17887))

* allow each resolve to be exported for multiple python interpreters ([#17711](https://github.com/pantsbuild/pants/pull/17711))

* More default Python module mappings. ([#17879](https://github.com/pantsbuild/pants/pull/17879))

* Make export cleanup a subset of `dist/export`, not the whole thing ([#17849](https://github.com/pantsbuild/pants/pull/17849))

* Unify the messages for lockfile validation errors. ([#17842](https://github.com/pantsbuild/pants/pull/17842))

* Unify validation of tool and user lockfile metadata. ([#17834](https://github.com/pantsbuild/pants/pull/17834))

* Detect Pants-generated lockfiles before attempting to validate. ([#17833](https://github.com/pantsbuild/pants/pull/17833))

### Plugin API Changes

* Remove `immutable_input_digests` from shell code ([#17886](https://github.com/pantsbuild/pants/pull/17886))

* Default `use_pantsd` to `False` in `run_pants` ([#17874](https://github.com/pantsbuild/pants/pull/17874))

* Remove the ToolCustomLockfile/ToolDefaultLockfile classes. ([#17843](https://github.com/pantsbuild/pants/pull/17843))

### Bug fixes

* scala: support scala v3 which has different compiler/library artifacts ([#17855](https://github.com/pantsbuild/pants/pull/17855))

### Performance

* Bring back hardlinking big files ([#17878](https://github.com/pantsbuild/pants/pull/17878))

* Don't invalidate watched files if non-perms metadata changed ([#17875](https://github.com/pantsbuild/pants/pull/17875))

### Documentation

* docs: mention name clashing between custom goals and options when writing plugins ([#17899](https://github.com/pantsbuild/pants/pull/17899))

* docs: add tutorial to get started writing plugins: No 1 ([#17732](https://github.com/pantsbuild/pants/pull/17732))

* Document batched `pytest` execution. ([#17845](https://github.com/pantsbuild/pants/pull/17845))

* Tweak the docs about __defaults__. ([#17829](https://github.com/pantsbuild/pants/pull/17829))

* docs: extend python test goal with info on collecting tests with pytests ([#17894](https://github.com/pantsbuild/pants/pull/17894))

## 2.16.0.dev3 (Dec 16, 2022)

### New Features

* Allow targets that implement `RunFieldSet` to be executed in the sandbox for side-effects ([#17716](https://github.com/pantsbuild/pants/pull/17716))

* `python_requirements` target generator can parse PEP 621 pyproject.toml files ([#16932](https://github.com/pantsbuild/pants/pull/16932))

### User API Changes

* Bump default version of shfmt from 3.2.4 to 3.6.0 ([#17777](https://github.com/pantsbuild/pants/pull/17777))

* An enum of Python export formats. ([#17800](https://github.com/pantsbuild/pants/pull/17800))

* Add export-codegen goal to more backends ([#17773](https://github.com/pantsbuild/pants/pull/17773))

* Adds `execution_dependencies` for `experimental_shell_command` ([#17743](https://github.com/pantsbuild/pants/pull/17743))

### Plugin API Changes

* Remove boilerplate for run and test plugins ([#17774](https://github.com/pantsbuild/pants/pull/17774))

### Bug fixes

* go: detect when `go.sum` needs additional entries filled in ([#17811](https://github.com/pantsbuild/pants/pull/17811))

* go: pass module sources through to linker if `${SRCDIR}` is referenced ([#17780](https://github.com/pantsbuild/pants/pull/17780))

* go: improve options passed to assembler invocations ([#17796](https://github.com/pantsbuild/pants/pull/17796))

* Explicitly use "python" ijson backend ([#17787](https://github.com/pantsbuild/pants/pull/17787))

* Do not clear the `pantsd` log while restarting ([#17783](https://github.com/pantsbuild/pants/pull/17783))

* Restore support for :all: in `only_binary`/`no_binary`. ([#17779](https://github.com/pantsbuild/pants/pull/17779))

* go: remove notion of separate `__obj__` directory ([#17775](https://github.com/pantsbuild/pants/pull/17775))

* Visibility: empty selector should match no target. ([#17763](https://github.com/pantsbuild/pants/pull/17763))

* [Visibility] `**/..` globs can match root level files ([#17681](https://github.com/pantsbuild/pants/pull/17681))

* Visibility: fix rules path for generated targets. ([#17760](https://github.com/pantsbuild/pants/pull/17760))

### Documentation

* Documentation for the new visibility rules ([#17632](https://github.com/pantsbuild/pants/pull/17632))

* Add Doctrine's eng blog post and example repo to resource hub. ([#17810](https://github.com/pantsbuild/pants/pull/17810))

* Add Astranis to user list. ([#17812](https://github.com/pantsbuild/pants/pull/17812))

* Add Doctrine to user list ([#17793](https://github.com/pantsbuild/pants/pull/17793))

* Doc: update `Get` docstring for multiple inputs. ([#17730](https://github.com/pantsbuild/pants/pull/17730))

## 2.16.0.dev2 (Dec 08, 2022)

### New Features

* go: use target spec for coverage output directories plus support import path ([#17734](https://github.com/pantsbuild/pants/pull/17734))

* go: add `assembler_flags` field for adding arbitrary extra assembler flags ([#17731](https://github.com/pantsbuild/pants/pull/17731))

* Expose target field defaults in BUILD files. ([#17649](https://github.com/pantsbuild/pants/pull/17649))

* Add a new "preamble" plugin ([#17682](https://github.com/pantsbuild/pants/pull/17682))

* go: support code coverage over multiple packages during single test ([#17701](https://github.com/pantsbuild/pants/pull/17701))

* go: add `linker_flags` field to `go_mod` and `go_binary` target types ([#17697](https://github.com/pantsbuild/pants/pull/17697))

* go: add `compiler_flags` field for adding arbitrary extra compiler flags ([#17683](https://github.com/pantsbuild/pants/pull/17683))

### User API Changes

* Include transitive requirements missing for `python_distribution`. ([#17594](https://github.com/pantsbuild/pants/pull/17594))

* Extend default module mapping for Python 3rd-party dependency inference: pysocks and atlassian-python-api ([#17654](https://github.com/pantsbuild/pants/pull/17654))

### Bug fixes

* Test DebugAdapter requests, and fix issues ([#17678](https://github.com/pantsbuild/pants/pull/17678))

* chdir in `rule_runner.run_interactive_process` ([#17722](https://github.com/pantsbuild/pants/pull/17722))

* More precise running workunit for processes executing remotely ([#17719](https://github.com/pantsbuild/pants/pull/17719))

* Don't strip the input of a `DictOption` file config ([#17705](https://github.com/pantsbuild/pants/pull/17705))

* Visibility rules: error if more than one declaration per BUILD file. ([#17669](https://github.com/pantsbuild/pants/pull/17669))

* Allow JVM source to depend on relocated_files target ([#17005](https://github.com/pantsbuild/pants/pull/17005))

* Fix bug in Go test result exit code interpretation. ([#17661](https://github.com/pantsbuild/pants/pull/17661))

### Performance

* Immutably hardlink "large" files in a sandbox ([#17520](https://github.com/pantsbuild/pants/pull/17520))

* Run python sources with a VenvPex ([#17700](https://github.com/pantsbuild/pants/pull/17700))

### Documentation

* Doc fixes and updates: ([#17708](https://github.com/pantsbuild/pants/pull/17708))

* docs: tidy up Writing plugins : rules-api directory files ([#17710](https://github.com/pantsbuild/pants/pull/17710))

* Update docker docs to clarify dependency handling. ([#17655](https://github.com/pantsbuild/pants/pull/17655))

## 2.16.0.dev1 (Nov 27, 2022)

### New Features

* go: address sanitizer support ([#17651](https://github.com/pantsbuild/pants/pull/17651))

* go: add support for C/C++ memory sanitizer ([#17644](https://github.com/pantsbuild/pants/pull/17644))

* shell: add `experimental_test_shell_command` for arbitrary shell-driven tests ([#17640](https://github.com/pantsbuild/pants/pull/17640))

* support Go data race detector ([#17510](https://github.com/pantsbuild/pants/pull/17510))

* Add `Field.none_is_valid_value` bool class var option. ([#17577](https://github.com/pantsbuild/pants/pull/17577))

### User API Changes

* Remove deprecated `run --cleanup` option. ([#17647](https://github.com/pantsbuild/pants/pull/17647))

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

### Plugin API Changes

* Remove deprecated Platform.current. ([#17646](https://github.com/pantsbuild/pants/pull/17646))

### Bug fixes

* Fix twine env vars propagation for `publish` goal. ([#17650](https://github.com/pantsbuild/pants/pull/17650))

* Support `source=None` for `docker_image` targets. ([#17578](https://github.com/pantsbuild/pants/pull/17578))

* Specify local environment for python source analysis goal ([#17603](https://github.com/pantsbuild/pants/pull/17603))

* go: allow use of `go_asm.h` assembly header in assembly files ([#17611](https://github.com/pantsbuild/pants/pull/17611))

* Visibility rule glob tweaks for `*` and `**` ([#17588](https://github.com/pantsbuild/pants/pull/17588))

### Documentation

* Fix broken docs links to manual build instructions ([#17608](https://github.com/pantsbuild/pants/pull/17608))

* Docs: improve docs on handling option values in cli ([#17506](https://github.com/pantsbuild/pants/pull/17506))

## 2.16.0.dev0 (Nov 19, 2022)

### New Features

* Add `environment=` to `experimental_shell_command`. ([#17575](https://github.com/pantsbuild/pants/pull/17575))

* Add debug goals to python ([#17057](https://github.com/pantsbuild/pants/pull/17057))

* Target visibility rules ([#17401](https://github.com/pantsbuild/pants/pull/17401))

* Emit a `__run.sh` into InteractiveProcess sandboxes. ([#17532](https://github.com/pantsbuild/pants/pull/17532))

* Support newer pip versions. ([#17555](https://github.com/pantsbuild/pants/pull/17555))

* New dependency rules Plugin API ([#17550](https://github.com/pantsbuild/pants/pull/17550))

* Export metadata about a packaged docker image ([#17299](https://github.com/pantsbuild/pants/pull/17299))

* Don't require hardcoded name in `python_distribution.provides` ([#17522](https://github.com/pantsbuild/pants/pull/17522))

* Add `per_platform` object ([#17334](https://github.com/pantsbuild/pants/pull/17334))

* Process output capturing is symlink-aware ([#17496](https://github.com/pantsbuild/pants/pull/17496))

* go: introduce `GoBuildOptions` and `cgo_enabled` field ([#17475](https://github.com/pantsbuild/pants/pull/17475))

* Disambiguate Python module providers by level of ancestry. ([#17489](https://github.com/pantsbuild/pants/pull/17489))

* go: support ".syso" prebuilt object files ([#17479](https://github.com/pantsbuild/pants/pull/17479))

* Add Docker registries `use_local_alias` configuration option. ([#17265](https://github.com/pantsbuild/pants/pull/17265))

* Proposal for supporting Jar shading rules ([#17251](https://github.com/pantsbuild/pants/pull/17251))

* A --resolve flag, to specify the resolves to export. ([#17416](https://github.com/pantsbuild/pants/pull/17416))

* Handle duplicate JAR entries in `deploy_jar` ([#17419](https://github.com/pantsbuild/pants/pull/17419))

### User API Changes

* Upgrade default version of  golangci-lint to 1.50.1 ([#17574](https://github.com/pantsbuild/pants/pull/17574))

* Deprecate the old export semantics. ([#17465](https://github.com/pantsbuild/pants/pull/17465))

* Add `restartable` field to `python_sources` ([#17400](https://github.com/pantsbuild/pants/pull/17400))

* Deprecate the `# Dependees` column name in the py-constraints summary. ([#17399](https://github.com/pantsbuild/pants/pull/17399))

* Rename the dependees goal to dependents. ([#17397](https://github.com/pantsbuild/pants/pull/17397))

* Rename --changed-dependees to --changed-dependents ([#17395](https://github.com/pantsbuild/pants/pull/17395))

### Bug fixes

* Allow for `run --debug-adapter` to match breakpoints when source is running in a sandbox ([#17566](https://github.com/pantsbuild/pants/pull/17566))

* Created an `NpxToolBase` as an inheritable Subsystem for `nodejs` tools ([#17567](https://github.com/pantsbuild/pants/pull/17567))

* Fix loading of `SymlinkNodes` from the `Store`. ([#17549](https://github.com/pantsbuild/pants/pull/17549))

* Do not try to create `""` output directory in `CreateArchive` ([#17538](https://github.com/pantsbuild/pants/pull/17538))

* Persist digests before emitting them in `fs_util` ([#17525](https://github.com/pantsbuild/pants/pull/17525))

* Fix memoization of `CoarsenedTarget.closure` ([#17516](https://github.com/pantsbuild/pants/pull/17516))

* Support parsing targets from additional paths not containing BUILD files. ([#17451](https://github.com/pantsbuild/pants/pull/17451))

* Ensure lockfile target exists before injecting a dependency to it. ([#17365](https://github.com/pantsbuild/pants/pull/17365))

* Ensure correct eq/hash semantics for PythonArtifact. ([#17484](https://github.com/pantsbuild/pants/pull/17484))

* Isolate config seed values from the DEFAULT section. ([#17474](https://github.com/pantsbuild/pants/pull/17474))

* Fix poorly understood stdout redirection issue. ([#17471](https://github.com/pantsbuild/pants/pull/17471))

* Fix propagation of the remote-execution-append-only-caches path  ([#17469](https://github.com/pantsbuild/pants/pull/17469))

* Pyright should grab non-transitive dependencies and make them available in the sandbox ([#17235](https://github.com/pantsbuild/pants/pull/17235))

* Plumb symlink support through the Pants engine ([#16844](https://github.com/pantsbuild/pants/pull/16844))

* Flip the default for `pull` on `docker_image` to `False` ([#17459](https://github.com/pantsbuild/pants/pull/17459))

* Merge pytest addopts ([#16614](https://github.com/pantsbuild/pants/pull/16614))

* Fix dep inference from `shuint2_tests` targets. ([#17417](https://github.com/pantsbuild/pants/pull/17417))

* Fix `EnvironmentName` used in `test` runs ([#17412](https://github.com/pantsbuild/pants/pull/17412))

* Add the m1 homebrew bin dir to the system binary search path. ([#17411](https://github.com/pantsbuild/pants/pull/17411))

* Restore debug hints for `test` execution ([#17406](https://github.com/pantsbuild/pants/pull/17406))

### Performance

* Skip loading of local cache data when possible ([#17495](https://github.com/pantsbuild/pants/pull/17495))

* Symlink site-packages into `pylint` venvs when possible. ([#17488](https://github.com/pantsbuild/pants/pull/17488))

* Filter coarsened targets to only those that are relevant in `pylint` runner rule ([#17487](https://github.com/pantsbuild/pants/pull/17487))

### Documentation

* correct docs: direnv can't save ulimit ([#17561](https://github.com/pantsbuild/pants/pull/17561))

* Update team pages for SJ and Dan! ([#17534](https://github.com/pantsbuild/pants/pull/17534))

* Fix line breaks in a docs page. ([#17527](https://github.com/pantsbuild/pants/pull/17527))

* Clarify how `__defaults__` apply to target generators. ([#17493](https://github.com/pantsbuild/pants/pull/17493))

* Fix typo in docs: debug-adaptor should be debug-adapter ([#17452](https://github.com/pantsbuild/pants/pull/17452))

* Update `nuke_if_too_big` documentation ([#17429](https://github.com/pantsbuild/pants/pull/17429))

* Fix version templating in `vcs_version` docs ([#17423](https://github.com/pantsbuild/pants/pull/17423))
