Skip to main content

Automatic manipulation of BUILD dependencies based on source analysis.

Project description

Pants is an Apache2 licensed build tool written in Python.

The latest documentation can be found at pantsbuild.

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.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

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.contrib.buildgen-1.27.0rc2-py36.py37-none-any.whl (17.4 kB view hashes)

Uploaded Python 3.6 Python 3.7

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