1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-12-08 01:51:04 +01:00
home-manager/tests/modules/services/podman-linux
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
..
build-expected.service podman: added volume, image, and build quadlets (#6137) 2025-03-09 23:02:05 -05:00
build.nix treewide: Prevent IFD by default 2025-05-07 10:34:18 -05:00
configuration-containers-expected.conf podman: install package and create config files 2024-11-23 22:36:33 +01:00
configuration-policy-expected.json podman: install package and create config files 2024-11-23 22:36:33 +01:00
configuration-registries-expected.conf podman: install package and create config files 2024-11-23 22:36:33 +01:00
configuration-storage-expected.conf podman: install package and create config files 2024-11-23 22:36:33 +01:00
configuration.nix treewide: reformat nixfmt-rfc-style 2025-04-08 08:50:05 -07:00
container-expected.service podman: include systemd in quadlet service path 2025-03-19 14:09:57 -05:00
container.nix treewide: Prevent IFD by default 2025-05-07 10:34:18 -05:00
default.nix podman: added volume, image, and build quadlets (#6137) 2025-03-09 23:02:05 -05:00
image-expected.service podman: added volume, image, and build quadlets (#6137) 2025-03-09 23:02:05 -05:00
image.nix treewide: Prevent IFD by default 2025-05-07 10:34:18 -05:00
integration-build-expected.service podman: link dependent quadlets during build 2025-03-19 14:08:12 -05:00
integration-container-bld-expected.service podman: include systemd in quadlet service path 2025-03-19 14:09:57 -05:00
integration-container-expected.service podman: include systemd in quadlet service path 2025-03-19 14:09:57 -05:00
integration-image-expected.service podman: added volume, image, and build quadlets (#6137) 2025-03-09 23:02:05 -05:00
integration-network-expected.service podman: use type in attr name of built quadlets 2025-03-19 14:08:12 -05:00
integration-volume-expected.service podman: use type in attr name of built quadlets 2025-03-19 14:08:12 -05:00
integration.nix treewide: Prevent IFD by default 2025-05-07 10:34:18 -05:00
manifest.nix treewide: Prevent IFD by default 2025-05-07 10:34:18 -05:00
network-expected.service tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
network.nix treewide: Prevent IFD by default 2025-05-07 10:34:18 -05:00
podman-stubs.nix tests: rework derivation stubbing 2025-02-04 23:58:20 +01:00
volume-expected.service podman: added volume, image, and build quadlets (#6137) 2025-03-09 23:02:05 -05:00
volume.nix treewide: Prevent IFD by default 2025-05-07 10:34:18 -05:00