feat: Rename project to 'Athenix'
This commit is contained in:
committed by
Hunter Halloran
parent
d97ece898c
commit
d205211c7d
38
.github/copilot-instructions.md
vendored
38
.github/copilot-instructions.md
vendored
@@ -6,7 +6,7 @@ This repository manages NixOS configurations for the UGA Innovation Factory's fl
|
||||
|
||||
This is a **NixOS system configuration repository** that uses:
|
||||
- **Nix flakes** for dependency management and reproducible builds
|
||||
- **Custom namespace** (`ugaif.*`) for all Innovation Factory-specific options
|
||||
- **Custom namespace** (`athenix.*`) for all Innovation Factory-specific options
|
||||
- **Inventory-based** host generation from `inventory.nix`
|
||||
- **External module support** for user and system configurations
|
||||
- **Multiple hardware types**: desktops, laptops, Surface tablets, LXC containers, WSL
|
||||
@@ -30,18 +30,18 @@ This is a **NixOS system configuration repository** that uses:
|
||||
- **`templates/`**: Templates for external configurations
|
||||
|
||||
### Naming Conventions
|
||||
- Module options: Use `ugaif.*` namespace for all custom options
|
||||
- Module options: Use `athenix.*` namespace for all custom options
|
||||
- Hostnames: `{type}{number}` or `{type}-{name}` (e.g., `nix-laptop1`, `nix-surface-alpha`)
|
||||
- Hardware types: Prefix with `nix-` (e.g., `nix-desktop`, `nix-laptop`)
|
||||
- Software types: Use descriptive names (`desktop`, `tablet-kiosk`, `headless`)
|
||||
|
||||
## Custom Namespace (`ugaif`)
|
||||
## Custom Namespace (`athenix`)
|
||||
|
||||
All Innovation Factory-specific options MUST use the `ugaif` namespace:
|
||||
All Innovation Factory-specific options MUST use the `athenix` namespace:
|
||||
|
||||
### Host Options (`ugaif.host.*`)
|
||||
### Host Options (`athenix.host.*`)
|
||||
```nix
|
||||
ugaif.host = {
|
||||
athenix.host = {
|
||||
filesystem.device = "/dev/sda"; # Boot disk
|
||||
filesystem.swapSize = "32G"; # Swap size
|
||||
buildMethods = [ "iso" ]; # Artifact types
|
||||
@@ -50,9 +50,9 @@ ugaif.host = {
|
||||
};
|
||||
```
|
||||
|
||||
### Software Options (`ugaif.sw.*`)
|
||||
### Software Options (`athenix.sw.*`)
|
||||
```nix
|
||||
ugaif.sw = {
|
||||
athenix.sw = {
|
||||
type = "desktop"; # System type
|
||||
kioskUrl = "https://..."; # Kiosk browser URL
|
||||
python.enable = true; # Python tools (pixi, uv)
|
||||
@@ -64,13 +64,13 @@ ugaif.sw = {
|
||||
};
|
||||
```
|
||||
|
||||
### User Options (`ugaif.users.*`)
|
||||
### User Options (`athenix.users.*`)
|
||||
```nix
|
||||
ugaif.users = {
|
||||
athenix.users = {
|
||||
accounts = { ... }; # User definitions
|
||||
enabledUsers = [ "root" "engr-ugaif" ]; # Enabled users
|
||||
};
|
||||
ugaif.forUser = "username"; # Convenience: enable user + set WSL user
|
||||
athenix.forUser = "username"; # Convenience: enable user + set WSL user
|
||||
```
|
||||
|
||||
## Development Workflow
|
||||
@@ -90,8 +90,8 @@ ugaif.forUser = "username"; # Convenience: enable user + set WSL user
|
||||
### Common Tasks
|
||||
|
||||
#### Adding a New User
|
||||
1. Edit `users.nix` to add user definition under `ugaif.users.accounts`
|
||||
2. Enable user in `inventory.nix` via `ugaif.users.username.enable = true` or use `ugaif.forUser = "username"`
|
||||
1. Edit `users.nix` to add user definition under `athenix.users.accounts`
|
||||
2. Enable user in `inventory.nix` via `athenix.users.username.enable = true` or use `athenix.forUser = "username"`
|
||||
3. Test: `nix flake check`
|
||||
|
||||
#### Adding a New Host
|
||||
@@ -102,7 +102,7 @@ ugaif.forUser = "username"; # Convenience: enable user + set WSL user
|
||||
#### Modifying Software Configuration
|
||||
1. Edit appropriate file in `sw/` directory based on system type
|
||||
2. For system-wide changes: modify `sw/{type}/programs.nix`
|
||||
3. For specific hosts: use `ugaif.sw.extraPackages` in `inventory.nix`
|
||||
3. For specific hosts: use `athenix.sw.extraPackages` in `inventory.nix`
|
||||
4. Test: `nix flake check`
|
||||
|
||||
#### Creating External Modules
|
||||
@@ -114,7 +114,7 @@ ugaif.forUser = "username"; # Convenience: enable user + set WSL user
|
||||
## Important Constraints
|
||||
|
||||
### What NOT to Do
|
||||
- **Never** use options outside the `ugaif` namespace for Innovation Factory-specific functionality
|
||||
- **Never** use options outside the `athenix` namespace for Innovation Factory-specific functionality
|
||||
- **Never** remove or modify working host configurations unless explicitly requested
|
||||
- **Never** break existing functionality when adding new features
|
||||
- **Never** hardcode values that should be configurable
|
||||
@@ -122,7 +122,7 @@ ugaif.forUser = "username"; # Convenience: enable user + set WSL user
|
||||
|
||||
### What to ALWAYS Do
|
||||
- **Always** run `nix flake check` before finalizing changes
|
||||
- **Always** use the `ugaif.*` namespace for custom options
|
||||
- **Always** use the `athenix.*` namespace for custom options
|
||||
- **Always** preserve existing comment styles and documentation
|
||||
- **Always** test that configurations build successfully
|
||||
- **Always** consider impact on existing hosts when making changes
|
||||
@@ -140,7 +140,7 @@ myuser.external = builtins.fetchGit {
|
||||
rev = "abc123..."; # Pin to specific commit
|
||||
};
|
||||
# The external user.nix file contains BOTH user account options
|
||||
# (ugaif.users.myuser) AND home-manager configuration
|
||||
# (athenix.users.myuser) AND home-manager configuration
|
||||
```
|
||||
|
||||
### System Configurations
|
||||
@@ -184,7 +184,7 @@ nix flake show
|
||||
```
|
||||
|
||||
### Artifact Types
|
||||
Set via `ugaif.host.buildMethods`:
|
||||
Set via `athenix.host.buildMethods`:
|
||||
- `"iso"` - Installer ISO with auto-install
|
||||
- `"live-iso"` - Live boot ISO without installer
|
||||
- `"lxc"` - LXC container tarball
|
||||
@@ -231,7 +231,7 @@ Set via `ugaif.host.buildMethods`:
|
||||
## Code Review Checklist
|
||||
|
||||
When reviewing or generating code:
|
||||
- [ ] Uses `ugaif.*` namespace for custom options
|
||||
- [ ] Uses `athenix.*` namespace for custom options
|
||||
- [ ] Runs `nix flake check` successfully
|
||||
- [ ] Follows existing code style and formatting
|
||||
- [ ] Preserves existing functionality
|
||||
|
||||
Reference in New Issue
Block a user