!yUrHuDcxUngfTlDbiy:matrix.org

flakelight

38 Members
https://github.com/nix-community/flakelight12 Servers

Load older messages


SenderMessageTime
25 Oct 2025
@accelbread:matrix.orgaccelbreadhow are you generating the graphs btw?17:40:16
@accelbread:matrix.orgaccelbreadseems passing system to nixosSystem is deprecated, so pushed some updates to use the buildSystem/targetSystem replacements instead19:31:57
@accelbread:matrix.orgaccelbreadalso perf things might depend on which nix is in use; I'm using Lix 2.93.3 at the moment19:33:04
@accelbread:matrix.orgaccelbread

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:matrix.orgaccelbread

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:matrix.orgaccelbread

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:matrix.orgaccelbread *

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:matrix.orgaccelbread *

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.meNiclas 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.meNiclas 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.meNiclas 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.meNiclas Overby ⓃYeah, I ended up moving pre-commit-check-run to a package, and refer to it from pkgs10:05:59
@accelbread:matrix.orgaccelbreadmakes sense. withOverlays does same thing if you dont want to export it from the flake18:04:47
4 Nov 2025
@lunik1:lunik.onelunik1 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:lunik.onelunik1I'll try and put together an MWE, but might be a couple of days14:19:53
@lunik1:lunik.onelunik1 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:matrix.orgaccelbreadi'll take a look01:26:12

There are no newer messages yet.


Back to Room ListRoom Version: 10