v0.18.0 #621
Replies: 2 comments 2 replies
|
I've just gotten around to updating and I had to do ZERO den-related changes this time! Thank you so much for keeping den stable! |
Does this mean that if a host aspect includes a schema with both I'm probably missing something, because that feels like it defeats the whole point of having multiple class modules in an aspect...but I have found that this indeed no longer works: den.aspects.host1 = {
homeManager = { host, ... }: {
home.stateVersion = host.stateVersion; # `stateVersion` is a custom option in host schema
};
}And that this does work: den.aspects.host1 = {
provides.to-users.homeManager = { host, ... }: {
home.stateVersion = host.stateVersion;
};
}Edit: looking at the diagram on the mutual config docs page, it seems like maybe |
Uh oh!
There was an error while loading. Please reload this page.
Den v0.18 Release Notes
✨ Major Features
1. Gen-schema entity port + resolver/delivery unification (#563)
Five-part stabilization reaching 1023/1023 tests (from 825 at branch start):
den.schemamigrates to gen-schema'smkSchemaOption/mkSchemaEntryType. Entities ownid_hashviamkInstanceType. Flat declaration forms (den.hosts.igloo = {},den.homes."tux@igloo" = {}) coexist with legacy two-level nesting.isolatedmarker, re-instantiating payload delivery, projectedhasAspectre-keyed by entityid_hash(fixes nested host false-negatives).{ user }homeManager aspects leaking to all users (Bug: homeManager content on host-included aspects is silently dropped unless the aspect is user-parametric #609).(S, T, P, M)edge algebra. Newdeliver { from; to; at ?[]; mode ? "merge" }primitive;routeandprovidesretained as thin shims. One toposorted edge-fold per root.excludesno longer leak across entities. Unified scope+ancestor constraint lookup; late-policy dispatch scopes to emitting sibling.Breaking change: Entity-arg binding now scoped (inert if not in-context). Cross-entity delivery via
provides/policy only. Documented in explanation/parametric.mdx.2. Synthesize host identity for standalone user@host homes (#605)
Standalone home
user@hostnow resolves host-keyed config (provides.<host>,policy.when ({ host })) without declaring the host or instantiating platform builder. Minimal{ name = hostName }identity synthesized; declared host still wins.Fixes crash in related include-return path: aspects returning include-effect lists (e.g.
lib.optional cond (policy.include {...})) now normalized (lists flattened, effects pass through).3. In-context hasAspect honors projected scope state (#602)
.hasAspectinside parametric bodies now answers projected membership ("delivered into this scope") vs structural tree. Registry query (den.hosts.….users.tux.hasAspect) stays structural. Per-scopepathSetByScoperecorded; zero extra pipeline runs.🐛 Major Fixes
Resolver & delivery pipeline
__provider, fixing double-emission from multi-path inclusion.intoPathalias honored; guarded empty-path routes now skip cleanly withoptionalAttrs(notmkIf).ctx: ...functions (empty args) now routed to parametric compile and called with full scope context, not silently dropped.Forward routing & class merging
@default-only when not an entity-owned class. Fixes cross-scope aggregation (e.g. atuin flags merging).mergeableTypedeep-merges instead of shallow//.Config & module handling
self.outputs.overlays#580): Lazy instantiation preserved in compile-static; no forced evaluation during structural key walk.ctxFromHandlerscall instead offx.bind.fn.ifcheck replacesor; no morecannot coerce nullon multi-system homes with null system.Entity & output handling
@system(homeConfigurations."ben@x86_64-linux"/homeConfigurations."ben@aarch64-darwin"). Single-system homes keep plain name.flake-system(not non-existentflake-packages).host ? classcheck prevents unfree battery crash when host lacks class.Schema & validation
🎨 Refactors & Chores
nix/lib/diag/→ den-diagram repo. Den keeps onlycapture.nix(fx tracing). Templates (diagram-demo, fleet-demo) use two-step pattern. Den CI has zero den-diagram dependency._bundle). Namespace-root_exposes container-level aspects (flat map, no recursion).📖 Documentation
✅ CI & Testing
ci-deep/flake-checkactually gated; main builds never cancelled;non-draftskip cleanly on docs-only PRs; approved reviews only re-trigger CI.What's Changed
self.outputs.overlays#580) by @sini in fix: don't force aspect content during key classification (#580) #581New Contributors
Full Changelog: v0.17.0...v0.18.0
This discussion was created from the release v0.18.0.
All reactions