Skip to content

feat(cli): embed plugin registry#3

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

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

Conversation

@QMalcolm

@QMalcolm QMalcolm commented Jul 8, 2026

Copy link
Copy Markdown
Owner

Stacked on #2

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

Migrated from apache/ossie#156 following the project's move to the Apache Software Foundation. This PR targets a branch in my fork because it stacks on #2 — will retarget to apache/ossie:main once the base of the stack merges.

QMalcolm added 3 commits July 7, 2026 14:25
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 commented Jul 8, 2026

Copy link
Copy Markdown
Owner Author

Superseded by apache/ossie#8 — converting the stack to draft PRs opened directly against apache/ossie:main.

@QMalcolm QMalcolm closed this Jul 8, 2026
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