1.27.x Stable Releases

1.27.x Stable Releases

This document describes releases leading up to the 1.27.x stable series.

The 1.27.x series deprecates several unused backends and plugins. Please see https://groups.google.com/forum/#!topic/pants-devel/ngMZRIJvwHM for more information.

1.27.0 (5/20/2020)

The first stable release in the 1.27.x series, with no changes since the previous release candidate!

1.27.0rc2 (5/15/2020)

API Changes

  • Deprecate, instead of error, when Python targets have non-Python sources (#9752) PR #9752

Bugfixes

  • Fix Target API bindings not loading for plugins (#9789) PR #9789

1.27.0rc1 (5/7/2020)

Bugfixes

  • Fix crash when V2 goals like repl have no specified targets (#9673) PR #9673
  • Temporarily disable ./pants backends goal due to bug (#9629) PR #9629
  • Fix zip_safe field not being used with V2 binary (#9598) PR #9598
  • Fix typo in V1 Python interpreter selection error message (#9589) PR #9589
  • Revert allowing Python targets to include .c files in their sources (#9583) PR #9583

1.27.0rc0 (4/17/2020)

API Changes

  • Bump default MyPy to 0.770 (#9540) PR #9540
  • Report workunits that have started but that are not yet complete (#9552) PR #9552
  • Deprecate the v1 lambda task. (#9566) PR #9566

New Features

  • More flexible binary and run rules. (#9529) PR #9529

Bugfixes

  • Don't report diagnostics for cached targets (#9492) PR #9492
  • Add link back to source control dir from physical workdir (#9531) PR #9531
  • Fix V2 binary still using the current platform when platforms is specified (#9563) Issue #957 PR #9563
  • Propagate the owners_not_found_behavior to FilesystemSpec expansion. (#9551) PR #9551
  • [junit-runner] simplify fail fast (#9403) PR #9403
  • Fix workdir symlink's destination/physical dir not always created (#9504) PR #9504

Refactoring, Improvements, and Tooling

  • Add rules to determine if configurations or targets have non-empty sources (#9521) PR #9521
  • Allow target_types2 register.py entry point to register new symbols (#9558) PR #9558
  • Remove several unused TargetAdaptor utility rules (#9569) PR #9569
  • Remove the fork_context method and support code. (#9554) PR #9554
  • Convert repl goal to the new Targets API (#9565) PR #9565
  • Port V2 Pytest Coverage to use the Target API (#9556) PR #9556
  • Remove unused HydratedTargetWithOrigin (#9553) PR #9553
  • Port setup-py2 to use the Target API (#9547) PR #9547
  • Some refactoring in EngineDisplay (#9546) PR #9546
  • Remove unused TargetAdaptorWithOrigin (#9544) PR #9544
  • Drop normpath comparison, the vast majority of which is covered by the other checks. (#9538) PR #9538
  • Port V2 fmt and lint to use Target API (#9537) PR #9537
  • Rename ExecuteProcessRequest to Process and ExecuteProcessResult to ProcessResult (#9535) PR #9535
  • Factor out a util function to parse a requirement constraint. (#9533) PR #9533
  • Utilities to create subsystem instances. (#9528) PR #9528
  • Convert RankedValue int ranks to Enum. (#9526) PR #9526
  • Add PantsdRunContext context to pantsd tests (#9518) PR #9518
  • Refactor V2 Pytest Coverage implementation (#9549) PR #9549

Testing

  • Unrevert black change and fix issue with it (#9545) PR #9545
  • Revert "quiet black formatter in CI (#9536)" (#9542) PR #9536 PR #9542
  • quiet black formatter in CI (#9536) PR #9536
  • Bump timeouts for several tests and for remote execution (#9559) PR #9559

Documentation

1.27.0.dev3 (4/13/2020)

API Changes

  • Deprecate source in favor of sources (#9471) PR #9471
  • Deprecate unused backends (#9512) PR #9512
  • Deprecate unused plugins (#9508) PR #9508
  • Remove broken indices and repos fields from python_binary (#9497) PR #9497
  • Delay deprecation of lint.pythonstyle and V1 isort to 1.28.0.dev0 (#9503) PR #9503
  • Upgrade to pex 2.1.9. (#9489) PR #9489
  • Update node.js dependencies. (#9474) PR #9474

New Features

  • Add ./pants backends to list all available backend packages (#9468) PR #9468
  • Add --pants-use-gitignore option (#9310) PR #9310
  • Wire up python-repos options to V2 Pex usage (#9495) PR #9495
  • Port dependencies2 to use the Target API and to work with JARs (#9494) PR #9494
  • Add a flag to prevent the FsEventService and watchman from starting (#9487) PR #9487
  • Add respect strict dep option for export-dep-as-jar (#9482) PR #9482

Bugfixes

  • Fix mistakes with Target API bindings (#9505) PR #9505
  • Fix Python 3.8 runtime type error (#9502) PR #9502
  • Fix --ignore-pants-warning not working with deprecated modules when not using Pantsd (#9507) PR #9507

Refactoring, Improvements, and Tooling

  • Add a mypy plugin to support @total_ordering. (#9525) PR #9525
  • Allow intrinsics to have multiple input arguments (#9527) PR #9527
  • Port the fs crate(s) to async-await (#9473) PR #9473
  • Bump to grpcio 0.5.1. (#9470) PR #9470
  • Bump to tokio 0.2.16. (#9467) PR #9467
  • Revert "Bump to tokio 0.2.16. (#9467)" (#9477) PR #9477
  • Rename CreatePex to PexRequest and add Target API support (#9480) PR #9480
  • Rename ChrootedPythonSources to ImportablePythonSources and add Target API support (#9479) PR #9479
  • Attach a description to PexRequests. (#9523) PR #9523
  • Add ScalarField and SequenceField templates (#9465) PR #9465
  • Allow Sources subclasses to specify the # of expected files (#9466) PR #9466
  • Fix targets that do not have a dependencies field with the Target API (#9481) PR #9481
  • Don't show V1 bindings when exclusively using V2 (#9511) PR #9511
  • Port AWS Lambda (V1 and V2) to use the Target API (#9491) PR #9491
  • Port ./v2 test to use the Target API (#9484) PR #9484
  • Add Target API bindings for python_dist, python_requirement_library, and unpacked_whls (#9475) PR #9475
  • Add Target API bindings for backend/codegen and backend/docgen (#9486) PR #9486
  • Add Target API bindings for python_app and jvm_app (#9490) PR #9490
  • Add Target API bindings for pants-plugins (#9488) PR #9488
  • Avoid needless instantiation of LocalPantsRunner (#9501) PR #9501
  • Revert "Avoid needless instantiation of LocalPantsRunner (#9450)" (#9499) PR #9499
  • Avoid needless instantiation of LocalPantsRunner (#9450) PR #9450
  • Add some type annotations to pantsd test helpers (#9517) PR #9517
  • Move the WorkUnitStore to a thread/task local (#9522) PR #9522
  • Avoid recomputing a BuildFileAddress when subclassing will do. (#9472) PR #9472
  • Do not mix platforms and interpreter constraints while building release pexes (#9515) PR #9515
  • Distinguish pex sources from additional input files. (#9514) PR #9514
  • Build PEX files in two steps. (#9516) PR #9516
  • Leverage PEX_ROOT for Pex CLI. (#9513) PR #9513
  • Create @named_rule`s and add additional annotations to rules (#9453) `PR #9453
  • [IDE] Precompute flattened dependencies for modulizable targets (#9311) PR #9311
  • Reorder commit hooks by stack depth. (#9524) PR #9524
  • Improve CI skips in git commit hooks (#9496) PR #9496
  • Add convert_source_to_sources.py script to help users migrate away from deprecated source field (#9309) PR #9309

Testing

  • Fix test that depends on a Python stdlib line number (#9493) PR #9493

1.27.0.dev2 (4/3/2020)

API Changes

  • Add a feature gate to disable the engine fs watcher introduced in #9318 (#9416) PR #9416
  • Change ensure_list to not accept a single element by default (#9463) PR #9463

New Features

  • Make the list of JS lintable extensions configurable (#9423) PR #9423
  • Improve formatting of ./pants help (#9411) PR #9411
  • Improve formatting of ./pants goals and ./pants target-types2 (#9414) PR #9414
  • Improve formatting of target-types2 --details (#9410) PR #9410
  • Implement Cobertura output option for #9275 (#9325) PR #9325
  • Add notify fs watcher to engine. (#9318) PR #9318
  • Pass all python_binary fields to V2 binary and run (#9449) PR #9449
  • Add list-v2 to work with the Target API (#9433) PR #9433
  • Port filedeps2 to use the Target API and add the missing --transitive option (#9459) PR #9459

Bugfixes

  • Fix equality and hashing of engine.Collection (#9437) PR #9437
  • fix accidentally double-registering setuptools for ipex (#9341) PR #9341
  • fix --tag filtering when a TargetAdaptor has None for the 'tags' kwarg (#9443) PR #9443
  • Eliminate PEX_ROOT warning for CreatePex. (#9418) PR #9418
  • Don't rerun uncachable nodes if they are dirtied while running. (#9452) PR #9452
  • Ignore notify events for pants_ignore patterns. (#9406) PR #9406

Refactoring, Improvements, and Tooling

  • Provide better TypeError in extern_identify hash failure (#9430) PR #9430
  • Allow a StringField to require one of several choices (enum) (#9461) PR #9461
  • Formalize marking fields as required (must be defined in the BUILD file) (#9392) PR #9392
  • Add DictStringToStringField and DictStringToStringSequenceField field templates (#9455) PR #9455
  • Add support for getting the direct and transitive dependencies of a Target (#9440) PR #9440
  • Fallback in target-types2 to the docstring from parent Fields when not available (#9404) PR #9404
  • Add Target API bindings for contrib/cpp and backend/native (#9445) PR #9445
  • Add Target API bindings for backend/jvm (#9460) PR #9460
  • Add Target API bindings for contrib/node and contrib/scalajs (#9447) PR #9447
  • Add Target API bindings for contrib/go (#9444) PR #9444
  • Add Target API bindings for build_graph target types (#9425) PR #9425
  • Store the Filespec on the Sources field (#9458) PR #9458
  • Remove unused JarDependency parameter. (#9457) PR #9457
  • Remove unused variables from _register_rules (#9432) PR #9432
  • Fix misleading comment. (#9424) PR #9424

Testing

  • Use GlobMatchErrorBehavior.error in TestBase (#9456) PR #9456
  • Cache native_engine.so in AWS in CI to avoid unnecessary Rust compilation (#9413) PR #9413
  • Store CI objects in S3 based on lifetime. (#9438) PR #9438
  • Refactor CI bootstrap shards setup to prepare for caching native_engine.so (#9409) PR #9409
  • Fix uploading native_engine.so to AWS too many times in CI (#9451) PR #9451
  • Move Build Wheels shards lower in CI order (#9383) PR #9383
  • Skip 2 flaky tests and bump 2 test timeouts (#9422) PR #9422
  • Skip flaky artifact cache and RSC compile tests (#9439) PR #9439
  • Skip flaky TestArtifactCache test. (#9427) PR #9427
  • Skip flaky TestPantsDaemonIntegration test. (#9421) PR #9421
  • Skip flaky PytestRunTimeoutIntegrationTest test. (#9442) PR #9442
  • break up flaky python integration tests that keep timing out (#9408) PR #9408
  • Fix incorrect guidance for running fmt. (#9419) PR #9419

1.27.0.dev1 (3/26/2020)

API Changes

  • Upgrade to Pex 2.1.7. (#9401) PR #9401
  • Deprecate pants.contrib.python.checks in favor of MyPy and Flake8 (#9356) PR #9356
  • Remove ivy resolve (#9259) PR #9259

New Features

  • Visualize the rule graph for @goal_rules. (#9377) PR #9377
  • Add ./pants targets-types2 goal (#9376) PR #9376
  • Plumb Pants log level to PEX_VERBOSE in v2. (#9328) PR #9328
  • Report warnings and errors to reporting server for JVM targets (#9293) PR #9293
  • Support opening coverage reports. (#9323) PR #9323
  • Add Cobertura output option for Scoverage (#9275) PR #9275
  • Add support for pytest-cov console reports. (#9302) PR #9302

Bugfixes

  • Fix use of pid (#9400) PR #9400
  • Use pants_workdir global option in run goal (#9381) PR #9381
  • Make roots goal work with the buildroot. (#9378) PR #9378
  • Change google maven mirror url (#9352) PR #9352
  • Fix PathGlobs to be deterministic for more cache hits (#9347) PR #9347
  • don't match the interpreter patch version for .ipex files! (#9285) PR #9285
  • A newtype for the requirements.txt file dep. (#9307) PR #9307
  • [jvm] use LUB when reusing cached dists; add breadcrumbs to Location (#9274) PR #9274
  • Revision: ensure that 1 < 1.0.1; reformat test cases to use bare asserts (#9290) PR #9290

Refactoring, Improvements, and Tooling

  • Filter sources when creating a pex. (#9405) PR #9405
  • Make DaemonPantsRunner a dataclass (#9382) PR #9382
  • Improve output of target-types2 goal (#9390) PR #9390
  • Remove custom properties from nailgun (#9389) PR #9389
  • Revert internally enforcing Flake8's E231 trailing comma lint (#9387) PR #9387
  • Improve console output of binary and awslambda goals. (#9375) PR #9375
  • Formalize default values for Fields (#9384) PR #9384
  • Hotfix lint failure due to PR merge order conflict (#9385) PR #9385
  • Internally enable Flake8 lints for is None, is False/True, and not in (#9379) PR #9379
  • Add FrozenDict as an immutable wrapper around native dictionaries (#9366) PR #9366
  • Move verification of configs out of OptionsBootstrapper (#9369) PR #9369
  • Additional refactoring around pants initialization (#9368) PR #9368
  • Enable E231 lint internally to check for bad trailing commas (#9364) PR #9364
  • Refactor code pertaining to pants initialization (#9348) PR #9348
  • Change the workunit description for requirement pex creation. (#9370) PR #9370
  • Port to tokio 0.2, and to stdlib futures for fs and task_executor (#9071) PR #9071
  • Add light-weight logic to Compatibility, Timeout, and Coverage Python fields (#9355) PR #9355
  • Use V2 Flake8 internally instead of pants.contrib.python.checks (#9308) PR #9308
  • Add runtime type checking to Fields (#9353) PR #9353
  • Allow @goal_rule`s to request `Targets and demo with ./v2 binary run (#9345) PR #9345
  • Move the global level option to an Enum. (#9327) PR #9327
  • Update to latest num_enum (#9344) PR #9344
  • Allow using Target API Field`s with `determine_source_files.py (#9342) PR #9342
  • Make LocalPantsRunner a dataclass (#9339) PR #9339
  • Change Target to have a similar interface to dict[t] and dict.get(t) (#9340) PR #9340
  • Allow registering new target types with the Target API (#9334) PR #9334
  • Allow stripping source roots from a Sources field (#9335) PR #9335
  • Add some type-checking around PantsDaemon (#9336) PR #9336
  • Minor follow up for 9259 (#9333) PR #9333
  • Add Target.class_has_field (#9329) PR #9329
  • Demonstrate use of the Target API with python_create_binary.py (#9316) PR #9316
  • Add Target.has_field() as sugar for Target.has_fields() (#9314) PR #9314
  • Add support for hydrating sources with the Target API (#9306) PR #9306

Testing

  • Skip flaky RscCompileIntegrationYoutline test. (#9398) PR #9398
  • Skip all flaky tests with GitHub issues. (#9391) PR #9391
  • Skip Rust tests and JVM tests in CI when no respective changes were made (#9367) PR #9367
  • Fix flaky pantsd test. (#9363) PR #9363
  • Fix CI running for Jar publish commits (#9322) PR #9322

Documentation

  • missed docsite link for multiple jvm version docs (#9358) PR #9358
  • Prepare 1.25.1rc0 (#9354) PR #9354
  • Remove stale comment (#9332) PR #9332

1.27.0.dev0 (3/14/2020)

API Changes

  • Upgrade to pex 2.1.6. (#9255) PR #9255
  • Remove deprecated pants.backend.python files moved to pants.python (#9238) PR #9238
  • Remove deprecated --target-spec-file and --positional-arg-file in favor of --spec-file (#9237) PR #9237
  • Remove deprecated --owner-of in favor of file arguments (#9235) PR #9235
  • Remove deprecated --dependencies-internal-only and --dependencies-external-only (#9258) PR #9258
  • Remove deprecated --fmt-skip and --lint-skip (#9254) PR #9254
  • Revert removing --test-fast and delay the removal from 1.27.0.dev0 to 1.28.0.dev0 (#9251) PR #9251
  • Revert "Load the bootstrapped zinc compiler from the zinc server's classpath. (#8753)" (#9226) PR #9226
  • Stop defaulting to --transitive and remove the option when it no-ops (#9236) PR #9236
  • Remove --glob-expansion-failure and deprecate --files-not-found-behavior=ignore (#9242) PR #9242
  • Remove --test-fast to always have better test caching (#9241) PR #9241
  • Remove deprecated dict_option, list_option, and target_list_option (#9243) PR #9243
  • Deprecate --build-file-imports and remove its deprecated value allow (#9234) PR #9234
  • Remove deprecated fmt and lint task options moved to subsystem options (#9246) PR #9246
  • Deprecate V1 isort implementation in favor of improved V2 implementation (#9267) PR #9267
  • Remove support for globs(), rglobs(), and zglobs() (#9247) PR #9247

New Features

  • Add support for --dependencies-type=3rdparty to dependencies2 (#9225) PR #9225
  • introduce --generate-ipex to (v1) python binary creation to lazy-load requirements (#8793) PR #8793
  • [jvm] Add jvm_options to platform; use from junit and run (#9150) PR #9150
  • Enable zinc to log diagnostics for jvm languages (#9228) PR #9228
  • Rename fmt2 to fmt and lint2 to lint (#9257) PR #9257

Bugfixes

  • Switch to a dict-backed OrderedSet impl. (#9305) PR #9305
  • Prevent excessive uncached readlink's when using a symlinked workdir (#9270) PR #9270
  • Fix interpreter constraints with V2 to AND multiple targets (#9265) PR #9265
  • Fix relative path in Zinc compiler (#9261) PR #9261
  • Fix V2 AWSLambda not being included in the pantsbuild.pants wheel (#9256) PR #9256
  • fixing scoverage sourcePath to be relative in OSS PR #9245

Refactoring, Improvements, and Tooling

  • Make Target API safe to use with the engine (#9303) PR #9303
  • Filter sources passed to the pytest invocation. (#9299) PR #9299
  • Make the platform a remote execution happened on available to @rule`s. (#9198) `PR #9198
  • Support build file aliases in v2. (#9279) PR #9279
  • Store Address on V2 Target and pass it to Field`s during validation (#9300) `PR #9300
  • Add PythonBinary, PythonLibrary, and PythonTests to the Target API (#9301) PR #9301
  • Move pants.source's tests into src/python. (#9298) PR #9298
  • Improve setup_pytest_for_target concurrency. (#9283) PR #9283
  • Bump rust to 1.42 (#9297) PR #9297
  • Simplify PrimitiveField to eagerly hydrate values (#9296) PR #9296
  • Tweak how to add plugin fields to V2 targets to be more explicit (#9291) PR #9291
  • Zinc: Use an Array[PublishDiagnosticsParam] for LSP compliance (#9292) PR #9292
  • Change UnionMembership to use dict instead of OrderedDict (#9288) PR #9288
  • Allow subclassing Field`s for custom `Field behavior with the Target API (#9286) PR #9286
  • Redesign test.py to work with custom target types (#9276) PR #9276
  • Add core abstractions for the V2 Target API (#9284) PR #9284
  • create RequestsSession.Factory global subsystem, and use it to configure urllib3.util.Retry for http artifact cache downloads (#8568) PR #8568
  • Lmdb versioning (#9269) PR #9269
  • Remove stale service-shutdown comment, and log the error stacktrace. (#9272) PR #9272
  • Simplify sources code now that globs() is removed (#9263) PR #9263
  • Mute the path scrub warning when running from sources. (#9264) PR #9264
  • Remove leftover globs() code for bundles (#9262) PR #9262
  • Format zinc compiler with scalafmt (#9227) PR #9227
  • Revert "Update version of cargo-ensure-prefix to fix error while installing (#9240)" (#9248) PR #9248
  • Update version of cargo-ensure-prefix to fix error while installing (#9240) PR #9240

Testing

  • Add a coverage test for pantsd garbage collection, and fix type error. (#9271) PR #9271
  • Bump process execution timeout from 2m40s to 5 mins (#9230) PR #9230
  • Enforce keyword args in TestBase.create_library() (#9268) PR #9268
  • Refactor TestBase.create_library() (#9249) PR #9249

Documentation

  • Prepare 1.25.0 (#9282) PR #9282
  • Release notes for 1.26.0rc1. (#9260) PR #9260
  • Release notes for 1.25.0rc1 (#9252) PR #9252
Generated by publish_docs from dist/markdown/html/src/python/pants/notes/1.27.x.html 2020-05-26T21:34:03.886454