Skip to content

track(2.0): breaking-change roadmap for the 2.x major bump #505

@dekobon

Description

@dekobon

Summary

Tracking issue for the 2.x major bump. A major bump is the only SemVer
window in which the breaking changes below may land. This collects:

  1. the loose ends already documented in
    STABILITY.md under "On the 2.0 horizon", and
  2. additional candidates surfaced by a pre-2.0 project review (linked under
    Review findings below).

2.0 is not scheduled; this is the staging ground so nothing is forgotten
when it is cut. All issues here are filed against the 2.0 milestone.

Known loose ends (from STABILITY.md)

  • Mark the per-metric Stats structs #[non_exhaustive] so field
    additions stop being a strict-SemVer shape break.
  • Remove the deprecated metrics / metrics_with_options shims (in
    favour of analyze).
  • Decide the fate of the remaining #[doc(hidden)] extension traits
    (ParserTrait, the per-metric compute traits, Parser<T>, Filter):
    delete or formally expose. The hidden state is a holding pattern.
  • Land the clean metric-value re-baseline note in the 2.0
    CHANGELOG entry, folding in every value drift accumulated across 1.x
    so consumers have one diff to reason about across the major boundary.
  • FilesData / ConcurrentRunner reshape into a terminal file-set
    processor (refactor(cli): single anchored walk seam — library globsets are dead and files are double-stat'd after #489 #495 — already closed; confirm it is reflected at 2.0).

Review findings (filed separately)

Core library API:

Core architecture (2.0-gated):

Metrics & output:

CLI:

Web (not strictly 2.0-gated — schema/HTTP, not library SemVer):

Filed without the 2.0 milestone (fix anytime — not breaking):

Second-pass review findings (2026-06-05)

A fresh pre-2.0 review across the public Rust API, serialized output schema,
CLI grammar, REST surface, Python bindings, and cross-language metrics surfaced
the following, none overlapping the items above. All filed against the 2.0
milestone except where noted additive.

Bug (fix before the 2.0 re-baseline so values fold in cleanly):

Serialized output schema:

Core library API:

CLI:

Web & Python (published surfaces, newly represented here):

Acceptance

  • Every checkbox above resolved or explicitly deferred with rationale.
  • STABILITY.md "On the 2.0 horizon" section emptied/updated.
  • CHANGELOG 2.0.0 section lists every (breaking) change and the
    value re-baseline.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions