2.home-manager/tests/modules/programs
Andrew Marshall 708074ae6d treewide: Prevent IFD by default
Import-from-derivation (IFD) has problematic performance, and is disabled in
Nixpkgs by policy. It is arguably good practice for libraries to avoid
it whenever possible, as it has poor ergonomics in some cases,
especially with dry builds, as it requires multiple eval+build phases.

As such, prevent its use in Home Manager by default by putting existing
tests that use IFD behind a config. In CI, run a first pass with IFD
disabled, skipping tests without the config. Then run a second pass with
IFD enabled and including tests with the config. This second pass will
also run tests without the config, but they should be cached from the
previous run, so the cost is not double (only eval time should be paid
twice). It’s necessary to change from using NMT’s `run` to `build` as
`run` itself uses IFD.

Of the tests that have the config:

- kitty/theme-to-themeFile: this is a test for deprecated config, and so
  should be removed eventually anyway
- podman: the implementation relies on IFD to create individual systemd
  units from the derivation output, and so it is not straightforward to
  remove the IFD; doing so would require rethinking how the module works
  to instead have the systemd unit files included as-is rather than as
  individually configured units in the Nix config.
2025-05-07 10:34:18 -05:00
..
abook tests: remove with lib (#6511) 2025-02-21 23:20:07 -06:00
aerc treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
aerospace aerospace: revert flattening on-window-detected rules (#6803) 2025-04-11 08:17:15 -05:00
alacritty treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
alot treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
antidote treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
anyrun anyrun: init module (#6804) 2025-04-11 09:06:03 -05:00
aria2 treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
atuin tests/atuin: add theme test 2025-04-17 11:03:18 -07:00
autojump tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
autorandr treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
awscli treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
bacon treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
bash treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
bat treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
beets tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
bemenu tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
borgmatic treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
bottom treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
boxxy treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
broot tests/broot: stub broot 2025-04-18 15:56:09 -07:00
browserpass treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
btop btop: add themes option (#6777) 2025-04-08 09:08:40 -05:00
carapace treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
cava treewide: remove unused code (#6985) 2025-05-07 10:03:21 -05:00
cavalier treewide: remove unused code (#6985) 2025-05-07 10:03:21 -05:00
clock-rs clock-rs: add module 2025-04-20 20:02:06 -07:00
cmus treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
comodoro tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
darcs treewide: remove unused code (#6985) 2025-05-07 10:03:21 -05:00
dircolors treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
direnv direnv: add tests for silent option 2025-04-14 13:51:24 -07:00
distrobox distrobox: add module (#6528) 2025-03-21 10:07:00 -05:00
earthly earthly: init module (#6265) 2025-02-22 01:04:35 -06:00
element-desktop element-desktop: add module (#6935) 2025-05-02 08:17:24 -05:00
emacs treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
eww treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
eza eza: add tests 2025-04-27 14:30:15 -05:00
fastfetch treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
feh treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
firefox tests: enable all firefox tests on darwin (plus derivations) (#6960) 2025-05-03 10:51:18 -05:00
fish treewide: remove unused code (#6985) 2025-05-07 10:03:21 -05:00
foot foot: enable duplicate key-bindings (#6815) 2025-04-13 17:46:54 -05:00
freetube tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
fuzzel treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
gallery-dl tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
getmail treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
gh gh: add hosts option (#6925) 2025-04-28 10:12:47 -05:00
gh-dash treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
ghostty treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
git treewide: substituteAll -> replaceVars/substitute 2025-04-24 13:40:11 +02:00
git-cliff treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
git-credential-oauth treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
git-worktree-switcher treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
gnome-shell treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
gnome-terminal treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
go treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
gpg treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
gradle treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
granted granted: support fish shell (#6549) 2025-03-07 13:29:16 -06:00
helix helix: fix str + path theme (#6816) 2025-04-14 08:29:24 -05:00
hexchat treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
himalaya treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
htop treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
hyfetch tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
hyprlock treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
i3bar-river i3bar-river: add module (#6967) 2025-05-03 19:12:02 -05:00
i3blocks treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
i3status treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
i3status-rust treewide: remove unused code (#6985) 2025-05-07 10:03:21 -05:00
imv imv: add module (#4032) 2023-06-07 14:51:05 +02:00
inori inori: init module (#6289) 2025-04-19 09:05:58 -05:00
irssi treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
joplin-desktop tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
jqp treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
jujutsu jujutsu: evaluate the settings after merging with other options (#6775) 2025-04-11 10:34:17 +02:00
k9s treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
kakoune treewide: remove unused code (#6985) 2025-05-07 10:03:21 -05:00
keepassxc keepassxc: add module 2025-04-18 11:35:36 -07:00
khal treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
khard khard: add option to set mutiple subdirs (#6823) 2025-04-18 09:38:13 -05:00
kickoff kickoff: add module (#6918) 2025-04-28 09:47:38 -05:00
kitty treewide: Prevent IFD by default 2025-05-07 10:34:18 -05:00
kodi treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
kubecolor treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
lapce treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
lazydocker treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
ledger tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
less treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
lesspipe tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
lf treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
lieer treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
looking-glass-client treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
lsd lsd: enableAliases -> enableShellIntegration 2025-04-27 22:15:34 -05:00
man tests/man: index.bt -> index.db 2025-05-07 10:02:56 -05:00
mangohud treewide: remove unused code (#6985) 2025-05-07 10:03:21 -05:00
mbsync treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
mergiraf treewide: remove unused code (#6985) 2025-05-07 10:03:21 -05:00
micro tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
mise treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
mods treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
mpv treewide: remove unused code (#6985) 2025-05-07 10:03:21 -05:00
mpvpaper mpvpaper: add module (#6926) 2025-04-28 11:49:19 -05:00
mu treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
mujmap treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
ncmpcpp treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
ncmpcpp-linux tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
ne treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
neomutt treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
neovide tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
neovim treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
newsboat treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
nh tests/nh: init tests (#6819) 2025-04-14 12:07:02 -05:00
nheko treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
nix-index treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
nix-init nix-init: add module (#6864) 2025-04-21 12:25:56 -05:00
nix-your-shell treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
nnn treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
nushell treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
oh-my-posh treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
onagre onagre: add module (#6958) 2025-05-02 22:09:45 -05:00
onedrive onedrive: add module (#6907) 2025-04-26 16:40:10 -05:00
onlyoffice onlyoffice: add module (#6667) 2025-03-20 11:34:43 -05:00
openstackclient treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
pandoc treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
papis tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
pay-respects treewide: nushell build time configs suffixed 2025-04-02 10:26:07 -05:00
pet treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
pistol treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
pls pls: enableAliases -> enableShellIntegration (#6932) 2025-04-29 20:37:20 -05:00
poetry treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
powerline-go treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
pqiv treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
pubs tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
pyenv tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
qcal treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
qutebrowser treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
ranger tests/ranger: null package 2025-04-20 20:10:07 -07:00
rbw treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
readline treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
rio treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
ripgrep treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
ripgrep-all treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
rmpc rmpc: add module (#6910) 2025-04-27 09:32:40 -05:00
rofi treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
rofi-pass treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
ruff treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
sagemath tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
sapling treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
sbt treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
scmpuff treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
senpai treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
sesh sesh: add module (#5789) 2025-03-29 09:32:11 -05:00
sftpman treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
sioyek treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
sm64ex treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
smug treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
spotify-player treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
ssh treewide: remove unused code (#6985) 2025-05-07 10:03:21 -05:00
starship treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
streamlink treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
superfile superfile: initial support (#6610) 2025-04-14 14:36:40 -05:00
sway-easyfocus sway-easyfocus: add module (#6976) 2025-05-04 21:46:28 -05:00
swayimg treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
swaylock treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
swayr treewide: remove unused code (#6985) 2025-05-07 10:03:21 -05:00
taskwarrior treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
tealdeer treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
television television: add module (#6866) 2025-04-21 12:26:20 -05:00
terminator treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
tex-fmt treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
texlive treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
thefuck thefuck: Add alias option (#6909) 2025-04-25 19:39:49 -05:00
thunderbird thunderbird: deprecate darwinSetupWarning option (#6531) 2025-05-03 10:40:34 -05:00
tmate treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
tmux treewide: substituteAll -> replaceVars/substitute 2025-04-24 13:40:11 +02:00
todoman treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
tofi tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
topgrade treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
translate-shell treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
uv uv: init module 2025-04-20 14:32:29 -07:00
vesktop treewide: remove unused code (#6985) 2025-05-07 10:03:21 -05:00
vifm treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
vim-vint treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
vinegar treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
visidata visidata: add module (#6956) 2025-05-02 11:14:19 -05:00
vscode treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
wallust wallust: add module 2025-04-20 13:16:28 -07:00
watson treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
waybar waybar: systemd cleanup 2025-04-11 12:43:20 -07:00
wezterm wezterm: don't create config if extraConfig is empty, and don't create one by default (#6908) 2025-04-25 10:11:18 -05:00
wlogout treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
wofi wofi: allow path to style.css (#6966) 2025-05-03 19:11:10 -05:00
xmobar treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
yambar treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
yazi treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
yt-dlp treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
zed-editor zed-editor: add themes option (#6832) 2025-04-20 00:29:44 -05:00
zellij treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
zk treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
zplug treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
zsh treewide: remove unused code (#6985) 2025-05-07 10:03:21 -05:00