Skip to content

feat(cli): embed plugin registry#156

Open
QMalcolm wants to merge 3 commits into
qmalcolm--feat-plugin-io-protocolfrom
qmalcolm--feat-registry-embedding
Open

feat(cli): embed plugin registry#156
QMalcolm wants to merge 3 commits into
qmalcolm--feat-plugin-io-protocolfrom
qmalcolm--feat-registry-embedding

Conversation

@QMalcolm

@QMalcolm QMalcolm commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Stacked on #155

Summary

The big part of this PR is defining the protocol for the "plugin registry", i.e. how first party plugins are tracked. In addition we've added stubs for known first party plugins. Though these plugins are now "visible" in ossie plugin list, they are not actually installable yet as we haven't yet

  1. setup the infrastructure to install plugins
  2. built the build/deploy pipeline for individual plugins
Screen.Recording.2026-06-24.at.14.02.40.mov

@QMalcolm

Copy link
Copy Markdown
Contributor Author

@QMalcolm
QMalcolm force-pushed the qmalcolm--feat-plugin-io-protocol branch from 37a0bc7 to fce4b4d Compare June 23, 2026 22:06
@QMalcolm
QMalcolm force-pushed the qmalcolm--feat-registry-embedding branch from ff4755f to 548693b Compare June 24, 2026 18:36
@QMalcolm
QMalcolm marked this pull request as ready for review June 24, 2026 19:03
QMalcolm added 3 commits June 24, 2026 16:28
Adds cli/internal/registry/ with the plugin registry embedded into
the binary via //go:embed. The registry is read at runtime with no
network call required.

Initial registry contains placeholder 0.1.0 entries for the five
known platforms (dbt, gooddata, polaris, salesforce, snowflake).
Checksums are marked sha256:placeholder pending real plugin packaging.
Entries will be updated with real tags and checksums when converters
are packaged as distributable OSSIE plugins.

Wiring into cmd/plugin/list.go and cmd/plugin/install.go is deferred
to P1 and P2 respectively.
- Add comment on EntryType constants noting they are consumed by P2
- Clarify why knownPlatforms is package-level (slices cannot be const)
- Guard TestRegistry_Platforms_sorted against vacuous pass on empty slice
Replaces the basic installed-only listing with a full P1 implementation
that cross-references installed plugins against the embedded registry.

Output now shows NAME/STATUS/INSTALLED/LATEST for all registry-known
platforms, with status values of installed, update available, or not
installed. Community plugins (installed but absent from the registry)
are printed in a separate section below. The previous no-plugins-installed
short-circuit is replaced by a no-plugins-available message that fires
only when the registry is empty and nothing is installed.

Matching installed plugins to registry entries is done by Platform.Name,
not by directory name, since the registry is keyed by platform.
@QMalcolm
QMalcolm force-pushed the qmalcolm--feat-plugin-io-protocol branch from fce4b4d to fdecf45 Compare June 24, 2026 21:31
@QMalcolm
QMalcolm force-pushed the qmalcolm--feat-registry-embedding branch from b86452c to 97dde31 Compare June 24, 2026 21:31
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