Skip to content

Instance DSL parties — multiplicity, validation, and enforcement#89

Merged
matt-beanland merged 1 commit into
devfrom
84-instance-dsl-parties-multiplicity-reference-and-calculated-defaults
Apr 27, 2026
Merged

Instance DSL parties — multiplicity, validation, and enforcement#89
matt-beanland merged 1 commit into
devfrom
84-instance-dsl-parties-multiplicity-reference-and-calculated-defaults

Conversation

@matt-beanland
Copy link
Copy Markdown
Collaborator

Adds parties do DSL to the Instance Extension, allowing resources to declare which party roles they accept, with optional min/max multiplicity constraints. Runtime enforcement is applied in build_before via Party.validate_parties/1, checking roles against declarations and rejecting builds that violate constraints.

Renames Party Extension DSL sections from singular (instance/party) to plural (instances/parties) for consistency. Replaces .license sidecar files with REUSE.toml. Fixes ExDoc sidebar by removing a duplicate docs: key in mix.exs that shadowed the DSL extras config. Adds Assignment.compare/2 so Enum.sort/2 works in the Assigner. Updates all three livebooks to use the local path dep and cleans up stale commented-out version pins.

Adds `parties do` DSL to the Instance Extension, allowing resources to
declare which party roles they accept, with optional min/max multiplicity
constraints. Runtime enforcement is applied in `build_before` via
`Party.validate_parties/1`, checking roles against declarations and
rejecting builds that violate constraints.

Renames Party Extension DSL sections from singular (`instance`/`party`)
to plural (`instances`/`parties`) for consistency. Replaces `.license`
sidecar files with `REUSE.toml`. Fixes ExDoc sidebar by removing a
duplicate `docs:` key in mix.exs that shadowed the DSL extras config.
Adds `Assignment.compare/2` so `Enum.sort/2` works in the Assigner.
Updates all three livebooks to use the local path dep and cleans up
stale commented-out version pins.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@matt-beanland matt-beanland merged commit 4a0d34c into dev Apr 27, 2026
2 checks passed
@matt-beanland matt-beanland deleted the 84-instance-dsl-parties-multiplicity-reference-and-calculated-defaults branch May 19, 2026 15:06
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.

Instance DSL parties: multiplicity, reference, and calculated defaults

1 participant