Skip to content

fix(providers): make exporter de-registration explicit + the invariant robust#304

Merged
fas89 merged 1 commit into
mainfrom
fix/exporter-taxonomy-consistency
Jun 27, 2026
Merged

fix(providers): make exporter de-registration explicit + the invariant robust#304
fas89 merged 1 commit into
mainfrom
fix/exporter-taxonomy-consistency

Conversation

@fas89

@fas89 fas89 commented Jun 27, 2026

Copy link
Copy Markdown
Collaborator

Final-verdict polish on the provider-vs-exporter taxonomy (#300). The adversarial review flagged two consistency gaps:

  • odps_standard escaped auto-registration only by accident — it exposes two BaseProvider subclasses, so the single-subclass fallback skips it. Now sets __fluid_no_autoregister__ = True explicitly (matching odcs); also set on odps so all three exporter packages opt out the same robust way.
  • The invariant could be fooled by a future exporter raising NotImplementedError. Broadened the markers to cover that, and added a consistency guard asserting every exporter package sets the opt-out — verified it fails when the flag is removed.

No behaviour change: live registry still = aws/datamesh_manager/gcp/local/redshift/snowflake (no exporter), all exporters still importable. 29 passed; ruff + black==24.10.0 clean.

…t robust

Final-verdict polish on the provider-vs-exporter taxonomy (#300):

- odps_standard/__init__ escaped auto-registration only BY ACCIDENT (it exposes
  two BaseProvider subclasses, so the single-subclass fallback skips it). Set
  __fluid_no_autoregister__ = True explicitly, matching odcs; also set it on
  odps/__init__ (belt-and-suspenders even though it exposes no subclass) so all
  three exporter packages opt out the same, robust way.

- test_no_exporter_providers.py: broaden the non-deploying-apply markers to also
  catch a refusal via NotImplementedError / 'not implemented' (so a future
  exporter can't slip past with different wording), and add a consistency guard
  asserting every exporter package sets __fluid_no_autoregister__ — VERIFIED it
  fails if the flag is removed.

No behaviour change: live registry still = aws/datamesh_manager/gcp/local/
redshift/snowflake (no exporter), all exporters still importable. 29 passed;
ruff + black==24.10.0 clean.
@github-actions github-actions Bot added provider Changes or requests related to providers tests Test coverage or test infrastructure changes needs-docs Pull request needs a linked docs update or justification labels Jun 27, 2026
@github-actions

Copy link
Copy Markdown

📄 Documentation Reminder

This PR appears to be missing a documentation reference. Our docs live in a separate repo.

Please update the PR description with one of:

  • Link a docs PR — check the "Docs PR linked" box and paste the URL
  • Mark as no docs needed — check "No docs needed" with a justification
  • Acknowledge docs TODO — check "Docs TODO" and create the docs PR before merge

See the Contributing Guide for details.

@fas89
fas89 merged commit fcce8de into main Jun 27, 2026
28 checks passed
@fas89
fas89 deleted the fix/exporter-taxonomy-consistency branch June 27, 2026 14:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-docs Pull request needs a linked docs update or justification provider Changes or requests related to providers tests Test coverage or test infrastructure changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant