Compose packs
Create a pack that installs exact releases of other packs as one resolved graph.
Add references
Initialize the root pack, then add dependencies by ID and exact Semantic Version:
luna pack init `
--id example-dotnet-foundation `
--author "Lunaris Digital Solutions <[email protected]>" `
--license MIT
luna pack add reference dotnet-gitignore 1.0.0
luna pack add reference dotnet-editorconfig 1.0.0
Use --replace to replace an existing reference added through pack add, or
use luna pack set reference to create or replace it.
Bind dependency parameters
Repeat --parameter to supply string or Boolean values to a dependency:
luna pack add reference github-pull-request-gate-workflow 1.0.0 `
--parameter required=true `
--parameter checkName=build
A binding remains hidden from consumers unless the root pack declares the same parameter. Declare it on the root when consumers should choose the value:
luna pack set parameter checkName string `
--required `
--display-name "Required check name"
Every declaration of the same parameter in the graph must use a compatible type.
Select optional dependencies
Add --condition or -c when a referenced pack should participate only for
selected parameter values:
luna pack set parameter includeIssueForms bool --default true
luna pack add reference github-issue-forms 1.0.0 `
--condition includeIssueForms
Reference conditions use the same Boolean, comparison, membership,
isDefault, and logical expressions as managed files. A false condition omits
the referenced pack and dependencies reachable only through it from managed
files, hooks, ownership, lock state, and pack-defined external-source planning.
The exact referenced release must still be available for graph and parameter
validation.
Suppress dependency hooks
Disable selected lifecycle hooks for a transient dependency when the root pack already performs equivalent work:
luna pack add reference csharpier 1.0.0 `
--disable-hook postInstall
Suppression applies through the composite reference. Installing that dependency directly as a root keeps its own hooks enabled.
Validate the graph
Local validation checks the root manifest. Test graph resolution from a fixture whose configured sources contain every exact dependency:
luna pack validate
luna validate [email protected]
luna inspect [email protected]
luna install [email protected] --dry-run
The consumer operation rejects missing releases, cycles, incompatible
parameter declarations, and target collisions before writing project files.
Dry runs ask for configurable parameter values before producing the plan. Use
--skip-parameters when the preview must use available defaults and explicit
values without prompting.