fake.modules transposition for aspect-oriented Dendritic Nix. with cross-aspect dependencies. Discussions: https://oeiuwq.zulipchat.com/join/nqp26cd4kngon6mo3ncgnuap/ dendrix.oeiuwq.com/Dendritic.html
dendritic nix aspect oriented

use providerType in aspects #2

closed opened by oeiuwq.com targeting main from provider
Labels

None yet.

assignee

None yet.

Participants 1
AT URI
at://did:plc:hwcqoy35x55nzde2sm6dbvq7/sh.tangled.repo.pull/3m6xjoc7tnk22
+16 -17
Diff #0
+2 -1
.github/workflows/test.yml
··· 8 8 runs-on: ubuntu-latest 9 9 steps: 10 10 - uses: cachix/install-nix-action@v30 11 - - run: nix flake check -L github:$GITHUB_REPOSITORY/$GITHUB_SHA?dir=checkmate --override-input target github:$GITHUB_REPOSITORY/$GITHUB_SHA 11 + - uses: actions/checkout@v5 12 + - run: nix flake check -L ./checkmate --override-input target .
+10 -6
checkmate/flake.lock
··· 128 128 }, 129 129 "target": { 130 130 "locked": { 131 - "path": "..", 132 - "type": "path" 131 + "lastModified": 1763763502, 132 + "narHash": "sha256-J78S02ZbBclWz7WKF8C+kHUca9/KdHtSeRgO/WF9LjY=", 133 + "owner": "vic", 134 + "repo": "flake-aspects", 135 + "rev": "83c8e44186bc9631509a55cf5a053950ecd3dc30", 136 + "type": "github" 133 137 }, 134 138 "original": { 135 - "path": "..", 136 - "type": "path" 137 - }, 138 - "parent": [] 139 + "owner": "vic", 140 + "repo": "flake-aspects", 141 + "type": "github" 142 + } 139 143 }, 140 144 "treefmt-nix": { 141 145 "inputs": {
+1 -1
checkmate/flake.nix
··· 3 3 outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules); 4 4 5 5 inputs = { 6 - target.url = "path:.."; 6 + target.url = "github:vic/flake-aspects"; 7 7 flake-parts = { 8 8 inputs.nixpkgs-lib.follows = "nixpkgs-lib"; 9 9 url = "github:hercules-ci/flake-parts";
+3 -9
nix/types.nix
··· 5 5 aspectsType = lib.types.submodule ( 6 6 { config, ... }: 7 7 { 8 - freeformType = lib.types.attrsOf (lib.types.either aspectSubmoduleAttrs providerType); 8 + freeformType = lib.types.attrsOf providerType; 9 9 config._module.args.aspects = config; 10 10 } 11 11 ); ··· 30 30 ); 31 31 32 32 functionProviderType = lib.types.either functionToAspect (lib.types.functionTo providerType); 33 - providerType = lib.types.either functionProviderType aspectSubmodule; 33 + providerType = lib.types.either aspectSubmoduleAttrs functionProviderType; 34 34 35 35 aspectSubmoduleAttrs = lib.types.addCheck aspectSubmodule ( 36 36 m: (!builtins.isFunction m) || (isAspectSubmoduleFn m) ··· 78 78 options.provides = lib.mkOption { 79 79 description = "Providers of aspect for other aspects"; 80 80 default = { }; 81 - type = lib.types.submodule ( 82 - { config, ... }: 83 - { 84 - freeformType = lib.types.attrsOf providerType; 85 - config._module.args.provides = config; 86 - } 87 - ); 81 + type = aspectsType; 88 82 }; 89 83 options.__functor = lib.mkOption { 90 84 internal = true;

History

1 round 0 comments
sign up or login to add to the discussion
oeiuwq.com submitted #0
1 commit
expand
use providerType in aspects
expand 0 comments
closed without merging