Skip to main content

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://pants.readme.io/v2.0/docs/release-notes-2-0 for an overview of the changes in this release.

2.0.0.dev6 (7/28/2020)

API Changes

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

  • Use isort v5.x as the default version (#10258) PR #10258

  • Don’t register any options as recursive. (#10415) PR #10415

New Features

Refactoring, Improvements, and Tooling

  • Implement cycle detection in transitive_targets, and tolerate cycles in file-addresses. (#10409) PR #10409

  • Stop using cargo-ensure-installed (#10400) PR #10400

  • Remove use of “quiet” in logging init (#10417) PR #10417

Testing

  • Port the plugin resolver test to v2 test style. (#10424) PR #10424

  • Refactor flake8 integration test to use create_options_bootstrapper (#10422) PR #10422

  • Increase timeout on project_info tests. (#10421) PR #10421

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

  • Fix tests that relied on the docsite CNAME file. (#10337) PR #10337

  • Run unit tests and integration tests in CI in the same Pants run (#10333) PR #10333

  • Merge the unit and integration tests (#10302) PR #10302

  • Run code coverage on v2 unit tests. (#9919) PR #9919

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

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

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

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

  • Enable test timeouts for python in v2. (#10147) PR #10147

  • Delete many v1 tests. (#10116) PR #10116

  • enable REv2 streaming client in CI (#9989) PR #9989

Documentation

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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

pantsbuild.pants.testutil-2.0.0.dev6-py36.py37.py38-none-any.whl (37.1 kB view hashes)

Uploaded Python 3.6 Python 3.7 Python 3.8

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page