Skip to content

Plugin registry - #641

Merged
d-chambers merged 14 commits into
devfrom
plugin-registry
Mar 23, 2026
Merged

Plugin registry#641
d-chambers merged 14 commits into
devfrom
plugin-registry

Conversation

@d-chambers

@d-chambers d-chambers commented Mar 23, 2026

Copy link
Copy Markdown
Contributor

Description

Adds a more structured registry for DASCore plug ins.

Replaces #640.

Changelog

  • added: a plugin registry and a "supported plugins" documentation page listing third-party DASCore extensions.

Checklist

I have (if applicable):

  • referenced the GitHub issue this PR closes.
  • documented the new feature with docstrings and/or appropriate doc page.
  • included tests. See testing guidelines.
  • added the "ready_for_review" tag once the PR is ready to be reviewed.

d-chambers and others added 14 commits March 23, 2026 11:21
Explains how to open a PR to add a row to the plugin registry CSVs so
users get a helpful error message when the namespace is not installed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- DASCorePluginError now inherits from AttributeError (not ValueError) so
  hasattr() and getattr(..., default) work correctly when a namespace is
  registered but not installed
- Add strict=True to zip() calls in _load_plugin_registry
- Add test verifying hasattr returns False for uninstalled plugin namespaces

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add derzug (https://github.com/dasdae/derzug) to patch.csv and spool.csv
- Docs table now deduplicates across CSVs and shows namespace + linked
  package_name in a single table instead of per-type tables
- Refactor: cache-clear fixture is now class-scoped autouse in TestPluginRegistry
- Remove test_multiple_rows_all_returned and strict=True from zip

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
qmd now just calls get_plugin_table_str(); one test added to test_doc_utils.py

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Mar 23, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d8af98e4-b91e-4714-97ba-40274b327b3a

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch plugin-registry

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c175c86531

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread dascore/utils/docs.py
Comment on lines +114 to +116
pd.concat(frames, ignore_index=True)
.drop_duplicates(subset="namespace")
.sort_values("namespace")[["namespace", "package_name", "package_url"]]

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Keep Patch and Spool plugin rows separate

get_plugin_table() currently concatenates every registry CSV and then deduplicates only on namespace, which loses information whenever the same namespace exists in more than one entry-point group. With this change that already collapses the two new zug registrations (patch.csv and spool.csv) into a single row, so supported_plugins.qmd can no longer tell readers whether a plugin is available on Patch, Spool, or both.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This is by design; we only want them to know of the unique plugin packages from this page, not all the functionality they might have.

@d-chambers
d-chambers merged commit d41ec9e into dev Mar 23, 2026
48 checks passed
@d-chambers
d-chambers deleted the plugin-registry branch March 23, 2026 16:03
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.

1 participant