summary refs log tree commit diff
path: root/lib
Commit message (Collapse)AuthorAge
* Clean up some option examplesEelco Dolstra2013-10-30
|
* Strictly check the arguments to mkOptionEelco Dolstra2013-10-30
| | | | And fix various instances of bad arguments.
* Show correct position info for errors in submodulesEelco Dolstra2013-10-30
| | | | | | | | E.g. The unique option `fileSystems./.device' is defined multiple times, in `/etc/nixos/configuration.nix' and `/etc/nixos/foo.nix'. This requires passing file/value tuples to the merge functions.
* Export only the files of the active definitionsEelco Dolstra2013-10-30
|
* Fix environment.checkConfigurationOptionsEelco Dolstra2013-10-29
| | | | | | This requires delaying the declaredness check until later, otherwise we get an infinite recursion querying environment.checkConfigurationOptions.
* fixMergeModules shouldn't check whether options are declaredEelco Dolstra2013-10-29
|
* Add fixMergeModules back inEelco Dolstra2013-10-29
| | | | NixOps uses it.
* Support module keys that are pathsEelco Dolstra2013-10-29
|
* Add option type "str" for unique stringsEelco Dolstra2013-10-29
| | | | | | | | | | | | | | | An annoying and dangerous property of "types.string" is that it merges multiple definitions by concatenating them, which almost never produces a sensible result. (Those options for which it does make sense typically should use "types.lines" instead, and things only work because the option definitions already end in a newline.) Of course, you can use "types.uniq types.string", but that's rather verbose, and inconsistent with other basic types like "types.int". Changing the behaviour of "types.string" to be unique by default is not an option, given the large number of options that use it. So instead, we now have "types.str", which is equivalent to "types.uniq types.string".
* Add a priority level for overrides in VM testsEelco Dolstra2013-10-29
| | | | | | | | | Now that overriding fileSystems in qemu-vm.nix works again, it's important that the VM tests that add additional file systems use the same override priority. Instead of using the same magic constant everywhere, they can now use mkVMOverride. http://hydra.nixos.org/build/6695561
* Fix nixos-optionEelco Dolstra2013-10-28
| | | | | In particular, it no longer produces an "infinite recursion" error when run with no arguments.
* Remove obsolete function addDefaultOptionValuesEelco Dolstra2013-10-28
|
* Show precise error messages in option merge failuresEelco Dolstra2013-10-28
| | | | | | | | | | | | | | For instance, if time.timeZone is defined multiple times, you now get the error message: error: user-thrown exception: The unique option `time.timeZone' is defined multiple times, in `/etc/nixos/configurations/misc/eelco/x11vnc.nix' and `/etc/nixos/configuration.nix'. while previously you got: error: user-thrown exception: Multiple definitions of string. Only one is allowed for this option. and only an inspection of the stack trace gave a clue as to what option caused the problem.
* Support mkOverride in non-leaf nodesEelco Dolstra2013-10-28
|
* Allow imports in plain modulesEelco Dolstra2013-10-28
|
* Remove debug codeEelco Dolstra2013-10-28
|
* Fix evaluation of environment.variablesEelco Dolstra2013-10-28
|
* Fix NixOps evaluationEelco Dolstra2013-10-28
|
* Fix option renamingEelco Dolstra2013-10-28
|
* Remove uses of the "merge" option attributeEelco Dolstra2013-10-28
| | | | | It's redundant because you can (and should) specify an option type, or an apply function.
* Check for undeclared optionsEelco Dolstra2013-10-28
|
* Show error locations in submodulesEelco Dolstra2013-10-28
|
* Fix manual generationEelco Dolstra2013-10-28
|
* Remove dead codeEelco Dolstra2013-10-28
|
* Fix commentEelco Dolstra2013-10-28
|
* Inline some functions on the critical pathEelco Dolstra2013-10-28
|
* Reduce the number of allocations a bitEelco Dolstra2013-10-28
|
* Keep position information for option declarations and definitionsEelco Dolstra2013-10-28
| | | | | | | Also, when an option definition fails to type-check, print the file name of the module in which the offending definition occurs, e.g. error: user-thrown exception: The option value `boot.loader.grub.version' in `/etc/nixos/configuration.nix' is not a integer.
* Use isType instead of typeOfEelco Dolstra2013-10-28
|
* Remove uses of mkFixStrictnessEelco Dolstra2013-10-28
| | | | mkFixStrictness is no longer needed, woohoo!
* Big cleanup of the NixOS module systemEelco Dolstra2013-10-28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The major changes are: * The evaluation is now driven by the declared options. In particular, this fixes the long-standing problem with lack of laziness of disabled option definitions. Thus, a configuration like config = mkIf false { environment.systemPackages = throw "bla"; }; will now evaluate without throwing an error. This also improves performance since we're not evaluating unused option definitions. * The implementation of properties is greatly simplified. * There is a new type constructor "submodule" that replaces "optionSet". Unlike "optionSet", "submodule" gets its option declarations as an argument, making it more like "listOf" and other type constructors. A typical use is: foo = mkOption { type = type.attrsOf (type.submodule ( { config, ... }: { bar = mkOption { ... }; xyzzy = mkOption { ... }; })); }; Existing uses of "optionSet" are automatically mapped to "submodule". * Modules are now checked for unsupported attributes: you get an error if a module contains an attribute other than "config", "options" or "imports". * The new implementation is faster and uses much less memory.
* maintainers: add vlstill.Vladimir Still2013-10-27
|
* Small cleanupEelco Dolstra2013-10-24
|
* Manual: When building from the channel, link to the exact Git revisionEelco Dolstra2013-10-24
|
* Slightly improve option type error messagesEelco Dolstra2013-10-23
|
* Manual: Don't show obsolete/deprecated optionsEelco Dolstra2013-10-23
|
* Allow options to be marked as "internal"Eelco Dolstra2013-10-23
| | | | | This means they're not for end users. Currently they're filtered from the manual, but we could include them in a separate section.
* Adding SlimerJS — script-driven Gecko browserMichael Raskin2013-10-21
|
* mkEnableOption: Add a period at the end of the descriptionEelco Dolstra2013-10-17
|
* Rename newOptionAttrSetToDocList -> optionAttrSetToDocListEelco Dolstra2013-10-17
|
* Move pkgs/lib/ to lib/Eelco Dolstra2013-10-10