Test support for writing Pants plugins.
Project description
Pants is an Apache2 licensed build tool written in Python.
The latest documentation can be found at pantsbuild.
2.0.x Stable Releases
This document describes releases leading up to the 2.0.x stable series.
See https://www.pantsbuild.org/v2.0/docs/release-notes-2-0 for an overview of the changes in this release.
2.0.0.dev9 (8/15/2020)
API Changes
Deprecate –option-name-check-distance (#10611) PR #10611
New Features
Allow restricting use of resolve_all_constraints. (#10614) PR #10614
Bugfixes
Refactoring, Improvements, and Tooling
2.0.0.dev8 (8/13/2020)
API Changes
New Features
Bugfixes
Refactoring, Improvements, and Tooling
Rename determine_source_files.py and strip_source_roots.py (#10588) PR #10588
Add XML test results as artifacts on the test goal workunit (#10606) PR #10606
Add non-root pantsbuild user to remote execution image (#10583) PR #10583
Move –files-not-found-behavior and BUILD file options out of bootstrap options (#10586) PR #10586
Remoting: limit retries for execution requests. (#10600) PR #10600
Ensure MyPy always runs with at least Python 3.6 internally. (#10602) PR #10602
Documentation
Improve errors for invalid Get objects (#10593) PR #10593
2.0.0.dev7 (8/10/2020)
API Changes
New Features
Allow using file addresses on the command line (#10573) PR #10573
Add –build-patterns option (#10559) PR #10559
Allow protobuf_library targets to specify a python source root. (#10549) PR #10549
Restore the missing init injection logic. (#10517) PR #10517
Add –pex-executable-search-path (#10489) PR #10489
Add support for bandit output file. (#10412) PR #10412
Bugfixes
Sync before executing a process if running in Docker (#10568) PR #10568
Fix some issues from #10535 Address changes (#10555) PR #10555
Remove self-inflicted invalidation caused by exception logging. (#10521) PR #10521
Fix bug that caused setup-py to hang if src root==buildroot. (#10509) PR #10509
Fix ExternalTool to use relative paths (#10503) PR #10503
Fix ./pants binary not outputting the full output path (#10506) PR #10506
Refactoring, Improvements, and Tooling
Stop validating that ! dependency ignores are used (#10585) PR #10585
Lower the default for –python-setup-resolver-jobs (#10584) PR #10584
Automatically inject dependencies on sibling files when dependency inference is unused (#10582) PR #10582
Use a constraints file in this repo. (#10579) PR #10579
Disable speculation by default (#10581) PR #10581
upgrade to Rust v1.45.2 (#10556) PR #10556
Move –tag and –exclude-target-regexp out of bootstrap options (#10569) PR #10569
Allow for disabling pantsrc in OptionsBootstrapper independently of options values (#10562) PR #10562
Refactor rule to resolve address specs (#10563) PR #10563
Stop using AddressWithOrigin for precise file arguments (#10551) PR #10551
Always use generated subtargets with file arguments (#10550) PR #10550
Remove unused SymbolTable (#10544) PR #10544
Support and require disambiguated file addresses (#10535) PR #10535
Revert “Add cache_failures option to Process type (#10433)” (#10534) PR #10534
Simplify source root stripping. (#10543) PR #10543
Improve source root stripping performance. (#10533) PR #10533
ArgSplitter operates relative to the buildroot. (#10540) PR #10540
Simplify the setup-py rules. (#10529) PR #10529
Allow Process to set its workunit level (#10528) PR #10528
Rely on the init-injection rules to trigger errors for un-depended-on-and-relevant __init__.py files. (#10524) PR #10524
Remove rust source include from integration tests. (#10522) PR #10522
upgrade to rust v1.45.1 (#10523) PR #10523
Store SpanIds as integers (#10512) PR #10512
Remove tarutil.py (#10516) PR #10516
Refactor Pex usage through new helper rules (#10514) PR #10514
Get rid of the remote backend subsystems. (#10502) PR #10502
Move subsystem.py and its test into pants.option. (#10500) PR #10500
Lower the default local parallelism, and align the number of swimlanes to it. (#10499) PR #10499
Rotate travis aws creds. (#10496) PR #10496
Add cache_failures option to Process type (#10433) PR #10433
Deprecate Subsystem.get_options() in favor of Subsystem.options (#10493) PR #10493
Simplify script to check __init__.py files (#10488) PR #10488
Merge interactive_process.py into process.py (#10495) PR #10495
Export Get and MultiGet from rules.py (#10485) PR #10485
Simplify engine/internals/nodes.py (#10487) PR #10487
Add cache_failures option to Process type (#10433) PR #10433
Testing
Disable remote execution due to RBE shutdown. (#10566) PR #10566
remoting: use non-RBE pants remote execution image (#10539) PR #10539
Avoid Python 3.8+ for Pylint test (#10548) PR #10548
avoid Py 3.8 for BanditIntegrationTest.test_3rdparty_plugin (#10546) PR #10546
set locale vars for remoting image (#10541) PR #10541
Test for rule graph issues with each distinct backend (#10519) PR #10519
docker image for remote execution without GCP/RBE (#10515) PR #10515
Documentation/Logging
Update docs urls to pantsbuild.org. (#10580) PR #10580
Improve log message when resolving entire lockfile. (#10578) PR #10578
Improve error message when the path component does not exist (#10570) PR #10570
Prepare 1.30.1rc0 (#10554) PR #10554
Improve error message for unrecognized BUILD file symbols (#10531) PR #10531
Reduce verbosity of finding binaries (#10525) PR #10525
Render all frames of a failure in Engine tracebacks (#10510) PR #10510
Fix bad indent of default in option help. (#10501) PR #10501
Fix display of default/current values in help. (#10490) PR #10490
Stop warning when return code != 0 or 1 (#10486) PR #10486
2.0.0.dev6 (7/28/2020)
API Changes
Upgrade to Pex 2.1.14 (#10437) PR #10437
New Features
Improve test output and allow it be configured. (#10484) PR #10484
Bugfixes
Make independent owners requests per file to improve memoization (#10491) PR #10491
Fix PluginField not working in production (#10469) PR #10469
Allow for more cyclic cases with file dependencies (#10475) PR #10475
Fix Protobuf when using source roots (#10453) PR #10453
Fix fromfile expansion to skip passthrough args. (#10457) PR #10457
Fix –print-exception-stacktrace not invalidating pantsd (#10451) PR #10451
fixes in async_semaphore for concurrency ID calculation (#10436) PR #10436
Refactoring, Improvements, and Tooling
Eliminate most rule registration boilerplate. (#10477) PR #10477
Remove unused util/ and base/ code (#10462) PR #10462
Rename UrlToFetch to DownloadFile (#10468) PR #10468
Change the PathGlobs, SnapshotSubset, and UrlToFetch intrinsics to return Digest (#10449) PR #10449
Unify accessing options for a GoalSubsystem with Subsystem (#10456) PR #10456
Rename Workspace.materialize_directory() to Workspace.write_digest() (#10448) PR #10448
Remove unused SingleFileExecutable (#10443) PR #10443
Remove support for Protoc 2 (#10439) PR #10439
Make GoalSubsystem subclass Subsystem. (#10483) PR #10483
Tweaks to help output: (#10466) PR #10466
Cleanup fs.py (#10474) PR #10474
Add UnionMembership.from_rules() (#10472) PR #10472
Kill Reporting (mostly). (#10463) PR #10463
Add dependencies on conftest and init files via inference (#10441) PR #10441
Kill ./pants literals. (#10465) PR #10465
Remove Options <-> Parser cycle. (#10464) PR #10464
Revert “Use isort v5.x as the default version (#10258)” (#10460) PR #10460
Demystify get_all_scoped_flag_names mypy kludges. (#10459) PR #10459
Optimize generated subtargets’ interaction with SpecifiedSourceFiles (#10454) PR #10454
Simplify Collection. (#10450) PR #10450
Improvements to help output. (#10444) PR #10444
Fixes to get the process_executor CLI tool working again. (#10435) PR #10435
Rename argument in streaming workunit callback (#10432) PR #10432
Testing
Only skip building wheels on PR builds (#10482) PR #10482
Skip building wheels if no release files have changed (#10481) PR #10481
Skip flaky GoalRuleIntegrationTest (#10479) Issue #10478 PR #10479
A script to create an index.html for pants wheels on S3. (#10458) PR #10458
Get rid of remaining uses of init_subsystem. (#10427) PR #10427
2.0.0.dev5 (7/22/2020)
API Changes
New Features
Speed up repl to no longer rebuild a Pex on source file changes (#10418) Issue #10406 PR #10418
Refactoring, Improvements, and Tooling
Testing
2.0.0.dev4 (7/21/2020)
API Changes
Upgrade default mypy from 0.781 to 0.782 (#10404) PR #10404
Remove unused –fmt-only option (#10388) PR #10388
Don’t turn on branch coverage by default. (#10386) PR #10386
access store server for action cache (#10329) Issue #10317 PR #10329
Upgrade setuptools from 49.1.0 to 49.2.0 (#10347) PR #10347
Move target.py rules to engine/internals/graph.py (#10372) PR #10372
New Features
Speed up run to no longer rebuild a Pex on source file changes (#10410) Issue #10406 PR #10410
Support for using a single global resolve. (#10405) PR #10405
Flake8 output file support. (#10371) PR #10371
A flag to force rerunning tests, bypassing the cache. (#10403) PR #10403
Support for injecting ancestor conftest.py files. (#10378) PR #10378
Allow ignoring dependencies with ! (#10385) PR #10385
Allow dependencies on files in BUILD files (#10381) PR #10381
Unify generated subtargets with file arguments and –changed-since (#10356) PR #10356
Use colors for log messages (#10278) PR #10278
Bugfixes
Print initial logs from pantsd using local time format Issue #10128
Fix using relative paths with –local-cache-dir and –named-caches-dir (#10398) PR #10398
Fix validation of dependencies ignores breaking with generated subtargets (#10407) PR #10407
close write stream for CAS writes via ByteStream API (#10395) PR #10395
Fix recently added n^2 edge collection. (#10392) PR #10392
Align cache directory calculation so that the LMDB store location is uniformly configurable. (#10391) PR #10391
remoting: use debug level for RE client workunits saved from remote (#10382) PR #10382
Always include types in the engine’s definition of equality. (#10377) PR #10377
Have help respond to color (#10357) PR #10357
Display multiline help nicely. (#10366) PR #10366
Refactoring, Improvements, and Tooling
Add a hint about adjusting max_user_watches on Linux. (#10413) PR #10413
Delete unused v1 sources. (#10411) PR #10411
upgrade to Rust 1.45.0 (#10396) PR #10396
Tolerate target cycles when using dependency inference (#10393) Issue #10059 PR #10393
Revert “Tolerate target cycles when using dependency inference (#10393)” (#10401) PR #10393 PR #10401
Add support for cycle-tolerant “weak” Gets (#10230) PR #10230
Make fetching wheels more resilient to network errors. (#10376) PR #10376
Avoid undefined behaviour around f64/u64 casts (#10374) PR #10374
Fix when an explicitly provided dependency supersedes an inferred dependency (#10375) PR #10375
Fix dependency inference handling of dependencies on self (#10373) PR #10373
Render local process infrastructure errors more verbosely. (#10368) PR #10368
Use our validate goal instead of the custom header check. (#10361) PR #10361
Delete some unused testprojects code. (#10364) PR #10364
Testing
Documentation
A script to generate options reference pages for the docsite. (#10387) PR #10387
2.0.0.dev3 (7/15/2020)
New Features
Allow specifying address and file arguments at the same time (#10345) PR #10345
Make help-all dump a JSON blob containing all help info. (#10336) PR #10336
Integrate option value derivation into help. (#10313) PR #10313
Generate subtargets with file-level precision for dependency inference (#10305) PR #10305
Add option for specifying environment variable with concurrency slot (#10297) PR #10297
Add support for specifying a custom coverage config file (.coveragerc) (#10289) PR #10289
Bugfixes
Fix generated subtargets not working with dependees (#10355) PR #10355
Ignore dead symlinks on Linux as well as OSX (#10339) PR #10339
Fix bug where workunit completion was not reported correctly (#10277) PR #10277
Fix collision in workunit affecting patches. (#10350) PR #10350
Pass stream workunit context to all callbacks calls instead of just passing it in the last call. (#10340) PR #10340
Fix awslambda configuration of Pex. (#10323) PR #10323
Hotfix Bandit breaking from stevedore 3.0 release (#10319) PR #10319
Refactoring, Improvements, and Tooling
Render only leaf rule graph errors, and improve error messages (#10311) PR #10311
Tweak any_matches_filespec to return which paths matched (#10358) PR #10358
Add check for invalid concrete time dates (#10349) PR #10349
Explicit error on missing descriptions in the goals goal. (#10348) PR #10348
Add module to default rule names. (#10341) PR #10341
add artifacts infrastructure on relevant types (#10344) PR #10344
Revert modernization of virtualenv to fix pants.pex deploy in CI. (#10343) PR #10343
Represent generated subtarget addresses as file names (#10338) PR #10338
Remove unusued RunTracker code (#10315) PR #10315
Minor wording change in help message (#10335) PR #10335
Display whether a scope is a goal or subsystem in help. (#10332) PR #10332
Fix run_virtualenv to target the current $PY. (#10331) PR #10331
Modernize virtualenv. (#10330) PR #10330
Stop differentiating between constructors and types in FFI. (#10327) PR #10327
Use generated subtargets internally (#10312) PR #10312
Remove Revision (#10318) PR #10318
Bump to nails 0.6.0 to lay groundwork for cancelation of pantsd runs. (#10320) PR #10320
remove polling remote execution client (#10306) PR #10306
Remove Struct and @addressable abstractions (#10309) PR #10309
Move SubprocessProcessHandler near its single use. (#10307) PR #10307
No longer special case the dependencies field with TargetAdaptor (#10303) PR #10303
Use with_workunit everywhere (#10300) PR #10300
refactor execution strategy options into separate struct (#10304) PR #10304
Remove -q from the release run of reversion. (#10301) PR #10301
Simplify BUILD file parsing (#10298) PR #10298
Testing
2.0.0.dev2 (7/8/2020)
API Changes
Rename FilesContent to DigestContents and InputFilesContent to CreateDigest (#10290) PR #10290
remoting: default is streaming client (#10260) PR #10260
Upgrade setuptools from 47.3.1 to 49.1.0 (#10255) PR #10255
Upgrade packaging from 20.3 to 20.4 (#10256) PR #10256
Deprecate the –v1/–v2 global options. (#10245) PR #10245
New Features
Preserve source roots with Pytest output (#10165) PR #10165
Bugfixes
Downgrade to tokio 0.2.20 to fix materialize_directories. (#10294) PR #10294
Expose method to bring down dynamic UI (#10234) Issue #10005 PR #10234
Fix double-workunit-completion print (#10247) PR #10247 PR #10179
Refactoring, Improvements, and Tooling
Remove v1 source/ abstractions like EagerFileSet (#10292) PR #10292
Use f-strings in engine/util.py (#10288) PR #10288
Use dependency inference internally (#10283) PR #10283
Unify LegacyPythonCallbackParser and Parser (#10281) PR #10281
Lower the default max-memory usage of pantsd. (#10287) PR #10287
Improvements and refactoring of help system. (#10280) PR #10280
Refactor WorkunitStore struct (#10242) PR #10242
remoting: check action cache for cached result before submitting a request (#10253) PR #10253
Remove leftover v1 Target API bindings (#10276) PR #10276
Fix remaining internal dependency cycles (#10254) PR #10254
Remove build_graph.Target (#10266) PR #10266
Remove cache/ and invalidation/ (#10262) PR #10262
Remove obsolete root patterns. (#10263) PR #10263
Remove Task, Goal, and Context (#10252) PR #10252
Simplify git.py and scm.py (#10251) PR #10251
Remove the internal tags type_checked and partially_type_checked (#10244) PR #10244
Remove HydratedTarget, AddressMapper, and BuildGraph (#10250) PR #10250
Remove all remaining v1 Targets (#10246) PR #10246
Remove TestBase.context() (#10248) PR #10248
Delete the rest of v1 pants.backend.python (#10240) PR #10240
Remove the concept of a scope category. (#10224) PR #10224
Testing
Remove stale “pants.pex for integration tests” mechanism (#10279) PR #10279
Re-enable RBE (#10284) PR #10284
Temporarily disable remote execution in CI (#10268) PR #10268
Upgrade responses from 0.10.14 to 0.10.15 (#10257) PR #10257
Increase pylint integration tests timeout. (#10261) PR #10261
Fix broken Pylint test from new isort release (#10259) PR #10259
Simplify ci.py now that we have no v1 tests (#10241) PR #10241
2.0.0.dev1 (7/2/2020)
API Changes
Get rid of –plugins2/–backend-packages2 (#10231) PR #10231
Deprecate –changed-include-dependees in favor of –changed-dependees (#10217) PR #10217
Remove pants.contrib.mypy plugin in favor of v2 implementation (#10157) PR #10157
Remove –coverage-py-omit-test-sources (#10202) PR #10202
Gets rid of the v1 GoalRunner. (#10167) PR #10167
Remove pants.backend.jvm (#10218) PR #10218
Remove –zipkin-trace-v2 option (#10184) PR #10184
Remove core_tasks/ and most of task/ (#10236) PR #10236
Remove v1 portions of backend/native and ipex (#10187) PR #10187
Delete v1 python backend task code (#10223) PR #10223
Remove v1 Python unpack_whls, bundle, and repl (#10204) PR #10204
Remove Thrift (#10171) PR #10171
Remove TestBase.create_library() and `TestBase.target() (#10237) PR #10237
Remove some v1 parts of testutil/ (#10233) PR #10233
New Features
Add new typecheck goal for MyPy (#10212) PR #10212
Properly handle PEP 420 namespace packages (#10183) PR #10183
Add support for creating multiple coverage reports (#9997) PR #9997
Add the ability to write/output the raw coverage file. (#10195) PR #10195
Log Coverage report name as part of the console message. (#10194) PR #10194
Attempt to adjust file handle limits and warn if they cannot be adjusted (#10174) PR #10174
Bugfixes
Fix –changed-dependees to work when v1 is disabled (#10235) PR #10235
Teach pants_requirement() to work with dependency inference (#10232) PR #10232
Remove indentation in process errors. (#10181) PR #10181
Automatically include __init__.py files (#10166) PR #10166
Fix AddPrefix to correctly add arbitrarily many parent components (#10189) PR #10189
Fix dependencies –transitive to include target roots that are also dependencies (#10186) PR #10186
Fix MyPy to include resources, but still not files (#10168) PR #10168
Refactoring, Improvements, and Tooling
Reduce time spend grabbing locks in workunit code (#10179) PR #10179
local_cas supports an instance-name (#10225) PR #10225
local_cas supports GetCapabilities request (#10226) PR #10226
Refactor remoting options into separate struct (#10215) PR #10215
remoting: log RE capabilities and refresh REv2 proto (#10155) PR #10155
Fix stray type error in fs.py (#10182) PR #10182
Remove redundant cast call (#10196) PR #10196
Use debug level for remote store workunits (#10238) PR #10238
Simplify Get implementation. (#10178) PR #10178
Delete the old BinaryTool mechanism. (#10239) PR #10239
Delete more v1 task-related integration tests. (#10210) PR #10210
Refactor coverage integration tests (#10209) PR #10209
Stop using deprecated assertEquals (#10197) PR #10197
Remove ivy/ and most of java/ (#10222) PR #10222
Remove Bundle and App code (#10221) PR #10221
Remove more zipkin-related code (#10207) PR #10207
Remove unused list_backends.py (#10205) PR #10205
Remove internal contrib/ infrastructure (#10177) PR #10177
Rewrite/delete some tests that involve v1 tasks. (#10219) PR #10219
Remove JVM testprojects (#10216) PR #10216
Stop testing testprojects:: (#10170) PR #10170
Remove the src/{scala|java} directories. (#10201) PR #10201
Delete examples/src/{java,scala}. (#10198) PR #10198
Stop running JVM tests written in Java/Scala (#10175) PR #10175
Move scm/ and util/ tests to src (#10176) PR #10176
Nuke more v1 tests (#10172) PR #10172
upgrade tokio to 0.2.21 (#10191) PR #10191
upgrade futures crate to 0.3.5 (#10190) PR #10190
upgrade async-trait crate to 0.1.36 (#10193) PR #10193
upgrade crossbeam-channel create so only one copy (#10192) PR #10192
upgrade indexmap crate (#10199) PR #10199
upgrade parking_lot crate (#10200) PR #10200
Documentation
Prepare 1.30.0rc1. (#10188) PR #10188
2.0.0.dev0 (6/25/2020)
API Changes
Remove v1 JVM backend Tasks. (#10142) PR #10142
Remove targets goal in favor of target-types goal (#10145) PR #10145
Remove deprecated Get[P](S) syntax in favor of Get(P, S) (#10148) Issue #9899 PR #10148
Remove v1 login, server, and killserver goals (#10144) PR #10144
Remove v1 minimize, filemap, paths, sort, and depmap goals (#10135) PR #10135
Replace v1 dependees, dependencies, filedeps, and filter with v2 (#10117) PR #10117
Remove the v1 scrooge contrib plugin. (#10127) PR #10127
Remove support for pants.ini (#10123) PR #10123
Remove the v1 export goal (#10122) PR #10122
Remove pants.backend.docgen (#10121) PR #10121
Remove v1 idea-plugin goal (#10115) PR #10115
Remove v1 Java Protobuf implementation (#10111) PR #10111
Remove pants.contrib.node plugin (#10113) PR #10113
Remove v1 bash-completion goal (#10112) PR #10112
Remove watchman. (#10114) PR #10114
Upgrade default mypy version from 0.780 to 0.781 (#10109) PR #10109
Remove pants.contrib.go plugin (#10107) PR #10107
Remove v1 Python Grpcio codegen backend (#10108) PR #10108
Remove deprecated –v2-ui in favor of –dynamic-ui (#10105) PR #10105
Remove deprecated –enable-pantsd in favor of –pantsd (#10104) PR #10104
Remove deprecated pytest-coverage scope in favor of coverage-py (#10103) PR #10103
Remove pants.contrib.confluence (#10106) PR #10106
New Features
Add support for MyPy to Pants v2 (#10132) Issue #10131 PR #10132
Changes to support Django. (#10088) PR #10088
Add support for enum list options. (#10083) Issue #9968 PR #10083
Bugfixes
Do not render pytest at info by default, but give it a description. (#10164) PR #10164
Preserve source roots in MyPy and Pylint output (#10159) PR #10159
Do not include resource targets in v2 MyPy chroot (#10154) PR #10154
Set dynamic-ui default based on CI (#10140) PR #10140
Fix Pytest XML reports and Coverage breaking with remote execution (#10136) PR #10136
Retry for filesystem changes more quickly, indefinitely, and with logging (#10139) PR #10139
Normalize paths before determining whether we can watch them. (#10130) PR #10130
Refactoring, Improvements, and Tooling
Remove use of importlib for native_engine loading (#10161) PR #10161
Update sha2 crate dependency (#10163) PR #10163
Remove unused rust deps. (#10162) PR #10162
Add message field on workunits and use it to replace some explicit logging (#10158) PR #10158
Expose the types consumed to produce a type in a RuleGraph. (#10153) PR #10153
Upgrade setuptools from 44.0.0 to 47.3.1 (#10149) PR #10149
Support for using unstripped python sources (#10138) PR #10138
fix snapshot subset testing and unrevert #9779 (#10146) PR #10146
Revert “Make SnapshotSubset() faster (#9779)” (#10143) PR #9779 PR #10143
Make SnapshotSubset() faster (#9779) PR #9779
upgrade to rust v1.44.1 (#10125) PR #10125
Remove BuildFile (#10102) PR #10102
Testing
Documentation
Remove the v1 docsite (#10120) PR #10120
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.0.0.dev9-py36.py37.py38-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2e8acb19ae30f072f259b9ca023deb52d089a7ab143a69daa2ffbe8dcf2adbc |
|
MD5 | d418e09cc4848be9dab7a883c5359584 |
|
BLAKE2b-256 | 0b0b0cb6d87c2c382a68f2c80677f0ff0bd4a3e7665020b2c843e290521c2369 |