Skip to content

BC Break: SyncPromise::runQueue() and SyncPromise::getQueue() removed in v15.29.0 #1820

@grossmannmartin

Description

@grossmannmartin

Description

Version 15.29.0 introduced a breaking change by removing the public static methods SyncPromise::runQueue() and SyncPromise::getQueue() from GraphQL\Executor\Promise\Adapter\SyncPromise.

Cause

PR #1805 ("Optimize Deferred execution") refactored the promise queue handling for memory optimization.
That included the removal of several public methods, namely runQueue(): void, getQueue(): \SplQueue, and maybe others.

Impact

The removed runQueue() method is public and is used by external libraries, notably https://github.com/overblog/dataloader-php.

See: https://github.com/overblog/dataloader-php/blob/master/lib/promise-adapter/src/Adapter/WebonyxGraphQLSyncPromiseAdapter.php

Expected Behavior

According to semantic versioning, a minor version (15.28.0 → 15.29.0) should not remove public API methods. Either:

  1. These methods should be deprecated first and removed in a major version, or
  2. The new class should be introduced alongside the old methods with deprecation notices

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions