edolstra / flake-compat

MIT License
251 stars 71 forks source link

Introduce a new `overrideInputs` on {default,shell}Nix #49

Open ckiee opened 1 year ago

ckiee commented 1 year ago

This allows the user of this non-flake to have similar functionality to follows.

Example (default.nix):

nix-repl> (import ./.).default
«derivation /nix/store/axgvq22kyb8ymchzq1mjayms4jdl6ni6-ledc-0.1.0.drv»

nix-repl> ((import ./.).overrideInputs { nixpkgs = <nixpkgs>; }).default
«derivation /nix/store/r8zw693hpg91yx6f57hyx1gk4zdiq2lm-ledc-0.1.0.drv»

It's currently only able to override our flake's direct inputs. Sorry for the big diff.

ckiee commented 1 year ago

@lheckemann some work continues in https://github.com/ElvishJerricco/flake-compat/tree/add-overrideInputs. i don't currently have the spoons for a review cycle, this may change by next week.

if you're looking for this to get merged, it'd probably be wise to make a PR against https://github.com/nix-community/flake-compat :purple_heart:

DavHau commented 1 year ago

The current head of the PR is broken, it is missing inputs, no matter if overrideInputs is used or not. Errror:

error: attribute 'nixpkgs_2' missing

       at /nix/store/dp0f4gy50va2lbrz970lx9v65qb4qv70-source/default.nix:159:20:

          158|               else
          159|                 if rootOverrides.${key} != null then
             |                    ^
          160|                   { type = "path";
       Did you mean nixpkgs?

The PR at the nix-community flake-compat does work fine