Skip to content

Snapshot the public API and report changes against the latest release - #367

Merged
woksin merged 5 commits into
mainfrom
tooling/api-surface-216
Sep 29, 2026
Merged

woksin merged 5 commits into
mainfrom
tooling/api-surface-216

Conversation

@woksin

@woksin woksin commented Sep 29, 2026

Copy link
Copy Markdown
Contributor

The public API of @cratis/components is now recorded, so each pull request shows what it changes in the API and how it compares with the last release.

Added

Closes #216.

Source/api-surface.json records every export of every typed subpath with its
declaration text; yarn ci fails when the built declarations differ, so a pull
request shows exactly which exports it adds, removes, or changes. A CI step reports
removals, changes, and additions against the latest published release in the job
summary. Closes #216.
…shot

A missing or unreachable baseline is stated in the report instead of failing the
build. Unknown export shapes and unresolved exports now fail, re-exports of other
packages are recorded by name, and ordering is locale-independent.
External re-exports are recorded as package#name from the export syntax,
so the snapshot holds no machine paths and the baseline does not need its
dependencies installed; it is still unpacked below node_modules so they
resolve. Exporting a value with export type now changes the entry. Plain
export targets other than CSS and JSON fail, and typed JSON subpaths are
included.
export type * now marks the values it withholds. A package re-export is
judged only by this package's aliases, so it reads the same whatever the
package does internally. A namespace re-export of an internal module lists
its export names, and the report removes the unpacked baseline on every exit.
…orts

A namespace re-export of an internal module lists each member with its
declaration, so a member's change shows up. A barrel's own export shadows
its type-only star export, and a star-export cycle no longer clears the
type-only mark.
@woksin woksin added the no-release Merging publishes no package, image, release, or deployment label Sep 29, 2026
@woksin woksin self-assigned this Sep 29, 2026
@woksin
woksin merged commit 304428c into main Sep 29, 2026
50 of 51 checks passed
@woksin
woksin deleted the tooling/api-surface-216 branch September 29, 2026 06:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-release Merging publishes no package, image, release, or deployment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add packed public API snapshots and semver surface diffs

1 participant