nixpkgs/lib
Cole Helbling d9f767600f lib/customisation: callPackageWith should abort with errors
ofborg relies on the behavior that existed prior to
1c00bf3948, where evaluation would
immediately abort due to a missing argument (whether it be an aliased
package when `allowAliases = false;` or a typo'd or otherwise
nonexistent package).

If `callPackageWith` `throw`s instead of `abort`s, the following
`nix-env` invocation does not fail fast but instead silently skips the
attribute (assuming there is a package that has an aliased package in
its `autoArgs`):

    $ nix-env -qa --json --file . --arg config '{ allowAliases = false; }' &>/dev/null
    $ echo $?
    0

This does change the error output when there is a missing package (for
any of the reasons mentioned above), though. Before this change, the
errors looked like this:

    $ nix-build -A hello --arg config '{ allowAliases = false; }'
    error:
           … while calling the 'throw' builtin

             at /home/vin/workspace/vcs/nixpkgs/master/lib/customisation.nix:179:65:

              178|
              179|     in if missingArgs == [] then makeOverridable f allArgs else throw error;
                 |                                                                 ^
              180|

           error: Function called without required argument "bash_5" at /home/vin/workspace/vcs/nixpkgs/master/pkgs/applications/misc/hello/default.nix:8, did you mean "bash" or "bashdb"?

And the errors now look like this:

    $ nix-build -A hello --arg config '{ allowAliases = false; }'
    error:
           … while calling the 'abort' builtin

             at /home/vin/workspace/vcs/nixpkgs/master/lib/customisation.nix:179:65:

              178|
              179|     in if missingArgs == [] then makeOverridable f allArgs else abort error;
                 |                                                                 ^
              180|

           error: evaluation aborted with the following error message: 'Function called without required argument "bash_5" at /home/vin/workspace/vcs/nixpkgs/master/pkgs/applications/misc/hello/default.nix:8, did you mean "bash" or "bashdb"?'
2023-03-24 14:22:11 -07:00
..
path lib.path.subpath.join: init 2023-02-13 14:01:17 +01:00
systems Merge master into haskell-updates 2023-03-10 00:14:11 +00:00
tests init: lib.foldlAttrs 2023-03-11 10:42:00 +01:00
ascii-table.nix strings: add escapeQuery for url encoding 2023-03-03 20:48:55 +01:00
asserts.nix doc: auto-generate asserts and attrset library docs 2022-12-08 22:58:22 +01:00
attrsets.nix init: lib.foldlAttrs 2023-03-11 10:42:00 +01:00
cli.nix lib/cli: mkKey -> mkOptionName, use generators.mkValueStringDefault 2020-01-23 14:47:38 +01:00
customisation.nix lib/customisation: callPackageWith should abort with errors 2023-03-24 14:22:11 -07:00
debug.nix lib: remove deprecated functions 2023-03-08 03:57:38 +01:00
default.nix init: lib.foldlAttrs 2023-03-11 10:42:00 +01:00
deprecated.nix lib.closePropagation: Remove the quadratic behavior in lib.closePropagation 2022-10-07 18:03:42 +02:00
derivations.nix lib: fix typos 2022-12-17 18:59:29 -05:00
fetchers.nix
filesystem.nix lib: Automatically generate lib.filesytem docs 2022-10-26 15:10:47 +02:00
fixed-points.nix lib: make extender available on self-references 2023-01-15 11:34:05 -08:00
flake.nix Fix import path. 2021-08-14 14:46:00 -05:00
generators.nix treewide: deprecate isNull 2023-03-06 22:40:04 +01:00
kernel.nix Merge pull request #84032 from teto/fix_kernel_merge 2020-05-22 13:32:22 +02:00
licenses.nix Merge pull request #214941 from OPNA2608/init/katawa-shoujo 2023-03-08 11:13:54 +01:00
lists.nix Merge pull request #206611 from h7x4/lib-lists-add-repeat 2023-02-07 06:16:09 +01:00
meta.nix Update lib/meta.nix 2023-01-27 11:16:29 +00:00
minver.nix boostrap fetchurl: Add SRI support 2022-08-24 09:55:45 +02:00
modules.nix lib/modules: Allow an "anonymous" module with key in disabledModules 2023-03-01 15:03:44 +01:00
options.nix lib/options: fix mkPackageOption docs 2023-03-05 01:21:46 +01:00
source-types.nix lib.sourceTypes: simplify implementation 2022-05-30 16:27:34 +08:00
sources.nix lib/sources: make commitIdFromGitRepoOrError internal and use # for comments 2022-11-18 17:17:51 +02:00
strings-with-deps.nix lib: Use Nix's static scope checking, fix error message, optimize 2020-10-22 13:46:47 +02:00
strings.nix lib/strings: hide asciiTable 2023-03-04 13:20:49 +01:00
trivial.nix lib/trival: Bump oldestSupportedRelease to 2211 2023-01-01 14:57:25 +01:00
types.nix lib.strings: isSimpleCoercibleString -> isStringLike 2022-12-31 01:33:46 +01:00
versions.nix lib/versions: add pad 2022-12-21 12:58:21 +01:00
zip-int-bits.nix lib/zip-int-bits: fix typo: bitXOR -> bitXor 2022-06-09 20:04:37 +03:00