Skip to content

chore(interfaces): move analytics interface schemas to new format - #660

Open
james-garner-canonical wants to merge 1 commit into
canonical:mainfrom
james-garner-canonical:26-08+chore+interface-schemas-analytics
Open

chore(interfaces): move analytics interface schemas to new format#660
james-garner-canonical wants to merge 1 commit into
canonical:mainfrom
james-garner-canonical:26-08+chore+interface-schemas-analytics

Conversation

@james-garner-canonical

Copy link
Copy Markdown
Collaborator

This PR replaces the pytest-interface-tester wrappers in the schema with a new convention: naming all four databags directly, as ProviderAppData, ProviderUnitData, RequirerAppData and RequirerUnitData, setting a databag that is always empty to None.

A follow up PR will document this and add tooling to enforce it, after similar PRs have landed for all the other CODEOWNERS in this repository.

Only the latest version of each schema is updated. We plan to flatten the interface definitions in future to no longer store old versions, and only validate and document the current version.

This PR also removes the interface test definitions for these interfaces. The interface tests are being retired; the tooling that ran them is being removed separately.

…rmat

Interface schemas no longer wrap their models in the `ProviderSchema` and
`RequirerSchema` classes from `pytest-interface-tester`. Instead a schema names
all four databags directly, as `ProviderAppData`, `ProviderUnitData`,
`RequirerAppData` and `RequirerUnitData`, setting a databag that is always empty
to `None`.

Naming all four makes an empty databag a deliberate choice a reviewer can see,
and makes a misspelled name an error rather than a silently empty databag. The
models are unchanged; only the wrapper classes around them are gone. Dropping
the `pytest-interface-tester` import leaves Pydantic as the only dependency
needed to read a schema.

This also removes the interface test definitions for these interfaces. The
interface tests are being retired; the tooling that ran them is removed
separately.

A follow-up PR documents the format and adds a CI check for it, once every
interface has been migrated.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@james-garner-canonical
james-garner-canonical marked this pull request as ready for review September 3, 2026 06:01
@james-garner-canonical
james-garner-canonical requested a review from a team as a code owner September 3, 2026 06:01
@james-garner-canonical
james-garner-canonical force-pushed the 26-08+chore+interface-schemas-analytics branch from 7a77517 to 2b648d8 Compare September 11, 2026 03:10
@deusebio

Copy link
Copy Markdown

Since this has to do with Velero, @dariofaccin could you please take a quick look? The changes looks sane. The only bit is the removal of the tests, but I suppose it is related to the fact that interface_tester is not a thing anymore?

@james-garner-canonical

Copy link
Copy Markdown
Collaborator Author

Since this has to do with Velero, @dariofaccin could you please take a quick look? The changes looks sane. The only bit is the removal of the tests, but I suppose it is related to the fact that interface_tester is not a thing anymore?

Yes, exactly, this type of interface test wasn't widely adopted and we're moving away from them now.

@dariofaccin dariofaccin left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants