Branch: refs/heads/master
  Home:   https://github.com/NixOS/nixpkgs
  Commit: 5f077e229625583072ebf63ea48b11170771b0ed
      
https://github.com/NixOS/nixpkgs/commit/5f077e229625583072ebf63ea48b11170771b0ed
  Author: Eelco Dolstra <[email protected]>
  Date:   2015-10-14 (Wed, 14 Oct 2015)

  Changed paths:
    M lib/modules.nix
    M nixos/modules/config/users-groups.nix
    M nixos/modules/rename.nix
    M nixos/modules/system/boot/loader/grub/grub.nix
    M nixos/modules/system/boot/systemd.nix

  Log Message:
  -----------
  Factor out option renaming

Option aliases/deprecations can now be declared in any NixOS module,
not just in nixos/modules/rename.nix. This is more modular (since it
allows for example grub-related aliases to be declared in the grub
module), and allows aliases outside of NixOS (e.g. in NixOps modules).

The syntax is a bit funky. Ideally we'd have something like:

  options = {
    foo.bar.newOption = mkOption { ... };
    foo.bar.oldOption = mkAliasOption [ "foo" "bar" "newOption" ];
  };

but that's not possible because options cannot define values in
*other* options - you need to have a "config" for that. So instead we
have functions that return a *module*: mkRemovedOptionModule,
mkRenamedOptionModule and mkAliasOptionModule. These can be used via
"imports", e.g.

  imports = [
    (mkAliasOptionModule [ "foo" "bar" "oldOption" ] [ "foo" "bar" "newOption" 
]);
  ];

As an added bonus, deprecation warnings now show the file name of the
offending module.

Fixes #10385.


_______________________________________________
nix-commits mailing list
[email protected]
http://lists.science.uu.nl/mailman/listinfo/nix-commits

Reply via email to