Add schemas for flakeModules and aspects outputs#45
Add schemas for flakeModules and aspects outputs#45lessuselesss wants to merge 3 commits intoDeterminateSystems:mainfrom
Conversation
This commit adds schema definitions for two new flake output types: - flakeModules: Schema for flake-parts modules that can be imported by other flakes to extend functionality and share configuration patterns. Validates that each module is a function or attribute set. - aspects: Schema for aspect-oriented modules organized by cross-cutting concerns. Supports the flake-aspects pattern where modules are nested as <aspect>.<class>.<module> (e.g., vim-btw.nixos, tiling-desktop.darwin). Both schemas follow the established patterns in the codebase and were tested against real-world usage in vic/vix and dendrix repositories. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
WalkthroughAdded two flake output schemas, Changes
Sequence Diagram(s)sequenceDiagram
participant Flake as Flake outputs
participant SchemaGen as outputs let (schema builder)
participant Public as Public `schemas` map
Note over Flake,SchemaGen: New outputs present in flake
Flake->>SchemaGen: provide output attributes (modules, aspects)
SchemaGen->>SchemaGen: build `flakeModulesSchema` (inventory + checkModule/isFunctionOrAttrs)
SchemaGen->>SchemaGen: build `aspectsSchema` (inventory mapping classes → modules + checkModule/isFunctionOrAttrs)
SchemaGen->>Public: set `schemas.flakeModules` -> flakeModulesSchema
SchemaGen->>Public: set `schemas.aspects` -> aspectsSchema
Note right of Public: Schemas exposed to consumers
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
Pre-merge checks and finishing touches✅ Passed checks (3 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
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 |
Add the two new schema types to the list of supported flake output types: - flakeModules: Links to flake.parts documentation - aspects: Links to flake-aspects GitHub repository Both entries are alphabetically sorted in the list. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
README.md(2 hunks)
🧰 Additional context used
🪛 markdownlint-cli2 (0.18.1)
README.md
74-74: Link and image reference definitions should be needed
Unused link or image reference definition: "branch"
(MD053, link-image-reference-definitions)
🔇 Additional comments (1)
README.md (1)
20-20: Documentation updates align well with new schemas.The addition of
aspectsandflakeModulesto the supported flake output types list is properly formatted and alphabetically positioned. The corresponding link references point to appropriate external resources (flake-aspects and flake.parts), maintaining consistency with the documentation structure.Also applies to: 26-26, 72-72, 80-80
Remove unused [branch] link reference definition flagged by markdownlint. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Summary
This PR adds schema definitions for two new flake output types commonly used in the flake-parts and dendrix ecosystems:
flakeModules Schema
flakeModulesoutputaspects Schema
aspectsoutput<aspect>.<class>.<module>vim-btw.nixos,tiling-desktop.darwin,awesome-cli.homeManagerImplementation Details
Both schemas:
checkModulevalidation to ensure modules are functions or attribute setsTesting
nix flake checkpasses successfullyReferences
Summary by CodeRabbit
New Features
Documentation