Skip to content

Evaluate php-semver-checker integration for release-compatible API diff checks #264

@coisa

Description

@coisa

Problem

dependencies and release tooling do not evaluate API-level semver compatibility automatically.

tomzx/php-semver-checker could provide objective compatibility checks between current and next states.

Proposal

Evaluate whether php-semver-checker integration provides real value in the changelog/release flow.

If adopted:

  • Add a dedicated changelog-supporting command or optional CI check that compares API compatibility.
  • Gate it behind explicit workflow input/flag so normal development is not blocked by noisy compatibility deltas.
  • Emit machine-readable output when run in automation.

Goals

  • Provide evidence for backward-incompatible API changes before tag promotion.
  • Keep release decisions more deterministic for packages exposing public APIs.
  • Feed release notes with actionable compatibility context.

Expected Benefits

  • Reduced accidental major releases caused by unnoticed BC breaks.
  • Better support for changelog + release automation in libraries with public surfaces.

Why Not (if skipped)

  • Overhead for purely internal apps that do not publish a stable public API.
  • False-positive scenarios may require nuanced configuration and maintenance.

Non-goals

  • Enforcing semantic version increments automatically today.
  • Hard-gating every consumer repository by default.

Acceptance Criteria

  • A concrete decision is documented: adopt, defer, or reject integration.
  • If adopted, include command defaults, flags, and exclusion strategy.
  • If rejected, capture rationale against complexity/false-positive risk.

Architectural / Isolation Criteria

  • MUST: Compatibility analysis logic is optional and isolated from standard tests and dependencies flows.
  • MUST: Release automation changes remain explicit and opt-in until confidence is proven.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions