Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

flake.nix: Improve nixosModules.notDetected error location reporting #194763

Conversation

roberth
Copy link
Member

@roberth roberth commented Oct 6, 2022

Description of changes

This is mostly equivalent, but import was hiding the location from the module system, breaking error location reporting and breaking disabledModules support for this module (unlikely).

Things done
  • Built on platform(s)
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
  • Tested, as applicable:
  • Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • Tested basic functionality of all binary files (usually in ./result/bin/)
  • 22.11 Release Notes (or backporting 22.05 Release notes)
    • (Package updates) Added a release notes entry if the change is major or breaking
    • (Module updates) Added a release notes entry if the change is significant
    • (Module addition) Added a release notes entry if adding a new NixOS module
    • (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes
  • Fits CONTRIBUTING.md.

This is mostly equivalent, but `import` was hiding the location
from the module system, breaking error location reporting and
breaking `disabledModules` support for this module (unlikely).
@Artturin
Copy link
Member

Artturin commented Nov 15, 2022

getting this error in nix flake check

$ nix flake check --show-trace
evaluating flake...
warning: unknown flake output 'lib'
warning: unknown flake output 'htmlDocs'
error: module must be a function or an attribute set

       … while checking the NixOS module 'nixosModules.notDetected'

       at /home/artturin/nixgits/my-nixpkgs/flake.nix:59:9:

           58|       nixosModules = {
           59|         notDetected = ./nixos/modules/installer/scan/not-detected.nix;
             |         ^
           60|       };

       … while checking flake output 'nixosModules'

       at /home/artturin/nixgits/my-nixpkgs/flake.nix:58:7:

           57|
           58|       nixosModules = {
             |       ^
           59|         notDetected = ./nixos/modules/installer/scan/not-detected.nix;

https://github.com/NixOS/nix/blob/0efc314d4d1add3215810f9034b6041759d5175b/src/nix/flake.cc#L381-L405

@roberth
Copy link
Member Author

roberth commented Nov 15, 2022

That's a Nix bug. Paths are the best kind of module reference.

@roberth
Copy link
Member Author

roberth commented Nov 15, 2022

Noted by others as well NixOS/nix#6866

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants