instructions files
This commit is contained in:
@@ -37,6 +37,26 @@ Naming in this tree is not perfectly uniform, so preserve existing interfaces un
|
||||
- Some hosts export from `default.nix`, while others keep the main definition in a differently named file such as `soteria.nix`.
|
||||
- Do not normalize names or move files just for consistency unless the user asks for that structural change.
|
||||
|
||||
Naming rules for new hosts:
|
||||
|
||||
- Treat the host directory name as the canonical host slug for new work.
|
||||
- Prefer `modules/hosts/<slug>/default.nix` as the main entrypoint for a host directory.
|
||||
- Use the same slug for the primary `hostname` binding, `flake.nixosConfigurations.<slug>`, and `networking.hostName` unless the task explicitly requires a different deployed hostname.
|
||||
- If the host exports a host-local Home Manager module, name it `flake.modules.homeManager.<slug>`.
|
||||
- For standalone Home Manager configurations, prefer `flake.homeConfigurations."<username>@<slug>"` so the exported key still carries the host slug.
|
||||
- Name host-local helper modules with the same slug as a prefix, for example `flake.modules.nixos.<slug>-hardware` or `flake.modules.nixos.<slug>-configuration`, to make ownership obvious and avoid collisions with shared modules.
|
||||
- Keep host-local secrets and auxiliary files under the same host slug directory. Do not point a new host at another host's path just because the contents are similar.
|
||||
|
||||
Allowed exception for immutable deployed hostnames:
|
||||
|
||||
- If the deployed hostname is externally constrained and cannot change, use that deployed hostname as the canonical slug for exported keys and `hostname` bindings, even if the directory name differs.
|
||||
- In that case, keep the exception explicit in comments or reports so future cleanup work does not accidentally rename a live hostname contract.
|
||||
|
||||
When working in existing hosts that predate these rules:
|
||||
|
||||
- Preserve the current public names by default.
|
||||
- If the user asks for a rename or cleanup, update the directory slug, exported flake keys, host-local module names, and `networking.hostName` together in one change so the host identity stays coherent.
|
||||
|
||||
Use nearby hosts as composition examples:
|
||||
|
||||
- `john-p14s` splits the reusable machine logic into `configuration.nix` and `hardware.nix`, exports `flake.modules.nixos.p14sConfiguration` and `flake.modules.nixos.p14sHardware`, and assembles them from `default.nix`.
|
||||
|
||||
Reference in New Issue
Block a user