| 25 Oct 2025 |
accelbread | how are you generating the graphs btw? | 17:40:16 |
accelbread | seems passing system to nixosSystem is deprecated, so pushed some updates to use the buildSystem/targetSystem replacements instead | 19:31:57 |
accelbread | also perf things might depend on which nix is in use; I'm using Lix 2.93.3 at the moment | 19:33:04 |
accelbread | I havent tested this, but heres what i'd do for integrating git-hooks.nix:
{ src, lib, config, ... }: {
options.git-hooks = {
type = lib.types.attrs;
default = { };
};
config = {
withOverlays = [
(final: prev: {
pre-commit-check = final.inputs.git-hooks.lib.${final.system}.run
({ inherit src; } // config.git-hooks);
})
];
checks = pkgs: { inherit (pkgs) pre-commit-hook; };
devShell = { pre-commit-check, ... }: {
inherit (pre-commit-check) shellHook;
packages = pre-commit-check.enabledPackages;
};
};
}
| 20:16:31 |
accelbread | can put that as nix/flakelightModules/git-hooks.nix or w/e and import the module in your flakelight config. (or if you have many repos, put this in your common config one)
Then in a flake you can use it as such:
{
inputs = {
flakelight.url = "github:nix-community/flakelight";
git-hooks.url = "github:cachix/git-hooks.nix";
};
outputs = { flakelight, ... }@inputs: flakelight ./. {
inherit (inputs);
# Pull it from file, outputs.flaklightModules.git-hooks,
# inputs.shared-flake.flakelightModules.git-hooks, or w/e
imports = [ ./git-hooks.nix ];
git-hooks.hooks = {
alejandra.enable = true;
statix.enable = true;
ruff-format.enable = true;
}
};
}
| 20:22:34 |
accelbread | You'd even be able to autoload it as nix/git-hooks.nix:
{
hooks = {
alejandra.enable = true;
statix.enable = true;
ruff-format.enable = true;
};
}
| 20:23:55 |
accelbread | * I havent tested this, but heres what i'd do for integrating git-hooks.nix:
{ src, lib, config, ... }: {
options.git-hooks = {
type = lib.types.attrs;
default = { };
};
config = {
withOverlays = [
(final: prev: {
pre-commit-check = final.inputs.git-hooks.lib.${final.system}.run
({ inherit src; } // config.git-hooks);
})
];
checks = pkgs: { inherit (pkgs) pre-commit-hook; };
devShell = { pre-commit-check, ... }: {
inherit (pre-commit-check) shellHook;
packages = pre-commit-check.enabledPackages;
};
};
}
(note that it also doesnt go through outputs which requires resolving stuff...)
| 20:25:15 |
accelbread | * I havent tested this, but heres what i'd do for integrating git-hooks.nix:
{ src, lib, config, ... }: {
options.git-hooks = {
type = lib.types.attrs;
default = { };
};
config = {
withOverlays = [
(final: prev: {
pre-commit-check = final.inputs.git-hooks.lib.${final.system}.run
({ inherit src; } // config.git-hooks);
})
];
checks = pkgs: { inherit (pkgs) pre-commit-check; };
devShell = { pre-commit-check, ... }: {
inherit (pre-commit-check) shellHook;
packages = pre-commit-check.enabledPackages;
};
};
}
(note that it also doesnt go through outputs which requires resolving stuff...)
| 20:29:16 |
| 27 Oct 2025 |
Niclas Overby Ⓝ | Here is my script:
#!/usr/bin/env nu
# Generate a flamegraph from a nix flake evaluation
# Usage: script.nu <flake-path>
def main [flake_path: string] {
print $"Evaluating flake: ($flake_path)"
# Create temporary directory for profile data
let tmp_dir = (mktemp -d)
let profile_path = ($tmp_dir | path join "nix.profile")
# Run nix eval with profiler output
nix eval --impure --no-eval-cache $flake_path --option eval-profiler flamegraph --option eval-profile-file $profile_path
# Generate flamegraph SVG from profile data
open $profile_path | inferno-flamegraph | save -f flamegraph.svg
print "Flamegraph saved to flamegraph.svg"
}
| 09:52:32 |
Niclas Overby Ⓝ | * Here is my script:
#!/usr/bin/env nu
# Generate a flamegraph from a nix flake evaluation
# Usage: script.nu <flake-path>
def main [flake_path: string] {
print $"Evaluating flake: ($flake_path)"
# Create temporary directory for profile data
let tmp_dir = (mktemp -d)
let profile_path = ($tmp_dir | path join "nix.profile")
# Run nix eval with profiler output
nix eval --impure --no-eval-cache $flake_path --option eval-profiler flamegraph --option eval-profile-file $profile_path
# Generate flamegraph SVG from profile data
open $profile_path | inferno-flamegraph | save -f flamegraph.svg
print "Flamegraph saved to flamegraph.svg"
}
| 09:52:40 |
Niclas Overby Ⓝ | * Here is my Nushell script:
#!/usr/bin/env nu
# Generate a flamegraph from a nix flake evaluation
# Usage: script.nu <flake-path>
def main [flake_path: string] {
print $"Evaluating flake: ($flake_path)"
# Create temporary directory for profile data
let tmp_dir = (mktemp -d)
let profile_path = ($tmp_dir | path join "nix.profile")
# Run nix eval with profiler output
nix eval --impure --no-eval-cache $flake_path --option eval-profiler flamegraph --option eval-profile-file $profile_path
# Generate flamegraph SVG from profile data
open $profile_path | inferno-flamegraph | save -f flamegraph.svg
print "Flamegraph saved to flamegraph.svg"
}
| 09:52:50 |
Niclas Overby Ⓝ | Yeah, I ended up moving pre-commit-check-run to a package, and refer to it from pkgs | 10:05:59 |
accelbread | makes sense. withOverlays does same thing if you dont want to export it from the flake | 18:04:47 |
| 4 Nov 2025 |
lunik1 | Helo! Been a while. I'm having trouble building a Nix configuration since https://github.com/nix-community/flakelight/commit/5afd70555737c62786b69a64980e7bb1c1947956
I have a main nix config flake here https://gitlab.com/lunik1/nix-config but another system config that exists in a separate, private repository but also using flakelight. In that private configuration's flake.nix I have
checks = nix-config.checks;
where nix-config is my main config as an input, but since the above commit evaluation has been failing with
error: The option `checks.<function body>' was accessed but has no value defined. Try setting the option.
| 14:19:10 |
lunik1 | I'll try and put together an MWE, but might be a couple of days | 14:19:53 |
lunik1 | Hello! Been a while. I'm having trouble building a Nix configuration since https://github.com/nix-community/flakelight/commit/5afd70555737c62786b69a64980e7bb1c1947956
I have a main nix config flake here https://gitlab.com/lunik1/nix-config but another system config that exists in a separate, private repository but also using flakelight. In that private configuration's flake.nix I have
checks = nix-config.checks;
where nix-config is my main config as an input, but since the above commit evaluation has been failing with
error: The option `checks.<function body>' was accessed but has no value defined. Try setting the option.
| 14:23:59 |
| 5 Nov 2025 |
accelbread | i'll take a look | 01:26:12 |