feat: runtime plugins, env lock, and docs updates#10
Conversation
docs: update runtime and security notes
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
Caution Review failedThe pull request is closed. 📝 WalkthroughWalkthroughThis PR transitions the project from Node.js-focused to Bun-first with multi-runtime support (Bun, Node, Deno, QuickJS), introduces a dynamic runtime plugin system, adds environment manifest locking and drift detection, implements new CLI commands ( Changes
Sequence Diagram(s)sequenceDiagram
participant CLI
participant Init as init Command
participant Registry as Runtime Registry
participant Config as Runtime Config
participant FS as File System
CLI->>Init: initCommand(serviceName, options)
Init->>Registry: isValidRuntime(runtime)
Registry-->>Init: ✓ valid
Init->>Registry: getRuntimeConfig(runtime)
Config->>Registry: Load plugin & resolve version
Registry-->>Init: RuntimeConfig {defaultEntry, plugin, ...}
Init->>FS: Write service.yaml with entry
Init->>FS: Write package.json with entry
Init->>FS: Write index.ts/js (based on entry type)
FS-->>Init: ✓ Files created
Init-->>CLI: ✓ Service initialized
sequenceDiagram
participant CLI
participant Lock as lock Command
participant Env as Environment Module
participant Registry as Runtime Registry
participant FS as File System
CLI->>Lock: lockCommand(servicePath, options)
Lock->>Env: checkEnvironmentDrift(servicePath, runtime)
Env->>Registry: getRuntimeConfig(runtime)
Env->>FS: Load package.json, lock files
Env->>Env: Hash dependencies, detect lockfile
Env-->>Lock: EnvironmentInfo {isLocked, isDrift, ...}
alt --check flag
Lock->>CLI: Print drift info & exit
else proceed to lock
Lock->>Env: createEnvironmentManifest(servicePath, runtime)
Env->>Env: Parse runtime, resolve version, hash files
Env-->>Lock: EnvironmentManifest
Lock->>Env: saveEnvironmentManifest(servicePath, manifest)
Env->>FS: Write ignite.lock (YAML)
FS-->>Lock: ✓ Locked
Lock-->>CLI: ✓ Environment locked
end
sequenceDiagram
participant CLI
participant Env as env Command
participant Registry as Runtime Registry
participant Plugin as Runtime Plugin
participant FS as File System
CLI->>Env: envCommand(servicePath, options)
alt --runtimes flag
Env->>Registry: listRuntimes()
Registry->>Plugin: Fetch BUILTIN_RUNTIMES
Plugin-->>Registry: {bun, node, deno, quickjs, versions, ...}
Registry-->>Env: Format runtimes list
Env-->>CLI: Print supported runtimes & examples
else service info
Env->>FS: Load service.yaml
Env->>Env: checkEnvironmentDrift(servicePath, runtime)
Env-->>CLI: Print service, runtime, drift status
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~50 minutes Possibly related PRs
Poem
✨ Finishing touches
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 |
Summary
Testing
Summary by CodeRabbit
New Features
ignite lockcommand for environment locking and drift detection.ignite envcommand to display environment information and supported runtimes.ignite runcommand.Documentation
Chores
✏️ Tip: You can customize this high-level summary in your review settings.