- [x] refactor lib into separate files, similar to NixOS/nixpkgs/lib.
- [x] refactor ci to automatically generate derivations from flake outputs
- [x] remove cluttered indirection statements throughout the codebase
- [x] refactor hosts to allow for upcoming integration tests
- [x] improve ambiguity in the existing docs
- [x] add [BORS](https://bors.tech) support
- [x] add initial integration test
- [x] write tests documentation
- [x] test lib
- [x] improve version string generation, and do so automatically for pkgs/flake.nix sources
Clean up the codebase as best we can in preparation for #152 and add tests. From now on, all PRs will be merged with BORS.
Continuing the work from 487fa7ea26,
simplify the registry entries a bit more by simply refering to the
input flakes. Also add alias `orch` for easy search `override`.
* Leave importing to nixpkgs module implentation. Provide a path
instead; resolves#136.
* Allow profiles which are not lambdas but simple attribute sets,
relaxing the constraints a bit.
* Update profile README.md
* defaultImports -> mkProfileAttrs: allow importing subprofiles even
if parent directory does not contain a default.nix.
Users may wish to change the default value of override and nixos
inputs. If they do so, we want the registry listing to reflect the
proper ref names afterwards.
Also create a shell alias to easily search every flake in nix.registry.
* Move extern lists to their own folder
* Move unstable package and module imports to their own folder
* Create a genPkgs function to avoid using legacyPackages for the whole
package set
* Move hmActivationPackages to legacyPackages
This core will be used as the new base for the reuse branch, which is
essentiall the same as the existing template branch, except that it is
rebased from this core, simplifying future rebasing.
* Import attrs of profiles automatically with `defaultImport`.
* Refactor profiles to ensure all are functions returning a module.
* Add a suites.nix with collections of profiles.
* Add suites as `specialArgs` to modules.
* Add suite import to NixOS host.
* Build a nixos configuration with all profiles available as part of ci
pipeline.
* Remove darwin packages as we do not have a ci agent for them.
* Build shell as part of ci
* fix nixos-option
* use flake-compat for all backward compat concerns
* rebuild devshell after any nix file changes
* reexport system pkgs as legacyPackages
* provide lib flake output
* provide flake lib to nixos configs via `lib.flk`
* clean up flake.nix
- add nixos-hardware flake.
- configuration in hosts/default.nix to be able to include hardware
specifics per host.
- add corresponding documentation in readme
In some occasions the module path was renamed.
To avoid conflicts, the old path must be disabled manually.
E.g.
```nix
{
unstableModules = [
"services/ttys/getty.nix"
];
addToDisabledModules = [
"services/ttys/agetty.nix"
];
}
```
home-manager's readme specifies that, at a bare minimum,
`useUserPackages` should be used in addition to `useGlobalPkgs`, when
using a flakes configuration.
Now you can add packages to the list in pkgs/override.nix and they will
be pulled in from nixpkgs master instead of the default NixOS flake
when installed.
The `specialArgs` defined in `hosts` has kept some modules from working
in external flakes. Instead, we simply enumerate packages in `hosts`
which should be pulled from `unstablePkgs`.
Keep the README.md lean and use DOC.md for more detailed explanations. While
revising user documentation, a default `nixos` user profile was created, which
serves as a goood base example.
The flake inputs can now be arbitrarily referenced from
hosts/default.nix as they are all passed into it. Any input not
declared at the top of hosts/default.nix can still be referenced
as args.<input>.