Skip to content

Pin the adcp.reporting.ledger public API before 9.0.0 GA #1490

Open

Description

@KonstantinMirin

Problem

The row-storage series added 10 names to adcp.reporting.ledger.__all__, and the row_*.py modules declare 82 __all__ names between them. test_public_api_surface_matches_snapshot guards adcp, adcp.types, adcp.types._generated, and the adcp.types.domains.* packages only, so a rename, removal, or re-pointing under adcp.reporting.ledger ships without a test noticing. 9.0.0 is in beta (#1465 is the 9.0.0-beta.4 release PR), which makes this the last cheap moment to decide which of those names are public.

Evidence

All references are to main at 47084e83a.

Suggested fix

  1. Decide which of the 82 row-module names adopters are meant to import (the binding and options dataclasses, the error types, the provider factory functions, and the encoding constants are the likely set) and drop the rest from the module __all__ lists.
  2. Add adcp.reporting.ledger (and adcp.reporting if it has a public surface) to snapshot_modules(), regenerate public_api_snapshot.json with scripts/regenerate_public_api_snapshot.py, and let the existing snapshot test guard additions, removals, and re-pointings from then on.

Introduced in #1464, #1467, and #1469.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestpythonPull requests that update python code

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions