feat: enable per-extension selective install#15
Merged
Conversation
Convert the root `omp.extensions` array to an `omp.features` map so users can install a subset of the suite instead of everything. The git-package install path (`omp plugin install github:...`) reads the root manifest and always loaded every base `omp.extensions` entry; the `[feature]` bracket syntax only selects among `omp.features`, so there was no way to pick a single plugin. Each extension is now a feature with `default: true`, which keeps the bare whole-suite install behavior unchanged while adding selection: - `[rules-guard]` / `[usage-status]` load one extension - comma lists like `[rules-guard,usage-status]` load a subset - `[]` loads none, `[*]` loads all Delete `.omp-plugin/marketplace.json`. Marketplace installs cannot activate extension modules (omp loads `omp.extensions`/`omp.features` only for git/npm/link installs), and its sources were malformed (`source:"github"` has no `path` field), so both entries resolved to the whole repo and loaded nothing functional. Update `README.md` and `AGENTS.md` to document the feature-based install contract and the marketplace limitation. Glory to the Omnissiah
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughThe root plugin manifest now uses selectable default-enabled features for ChangesFeature-based plugin registration
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
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. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
Installing the suite always pulled every extension, with no way to pick a subset:
omp plugin install github:rblaine95/omp-plugins) reads the rootpackage.jsonompmanifest and always loads every baseomp.extensionsentry. The[feature]bracket syntax only selects amongomp.features, so there was no selection knob.name@marketplace) can't activate these at all: omp loadsomp.extensions/omp.featuresonly for git/npm/link installs, never from a marketplace cache. Themarketplace.jsonsources were also malformed (source:"github"has nopathfield), so both entries resolved to the whole repo and loaded nothing functional.Fix
Convert the root
omp.extensionsarray to anomp.featuresmap, one feature per extension, eachdefault: true. This keeps the bare whole-suite install unchanged while adding selection:omp plugin install github:rblaine95/omp-pluginsomp plugin install 'github:rblaine95/omp-plugins[rules-guard]'omp plugin install 'github:rblaine95/omp-plugins[usage-status]'omp plugin install 'github:rblaine95/omp-plugins[rules-guard,usage-status]'omp plugin install 'github:rblaine95/omp-plugins[]'omp plugin install 'github:rblaine95/omp-plugins[*]'One
omp-pluginspackage still installs (both extension dirs ship with it); the bracket only selects which features load. Selection is changeable later without reinstalling viaomp plugin features @rblaine95/omp-plugins.Deletes
.omp-plugin/marketplace.json(non-functional for extension modules) and updatesREADME.md/AGENTS.mdto document the feature-based install contract and the marketplace limitation.Verification
parsePluginSpec+resolvePluginManifestEntries(omp's own code, v17.0.5) run against the new manifest produce exactly the table above.bun typecheckclean;bun test87/87 pass;package.jsonvalid + sorted.Summary by CodeRabbit
New Features
Documentation