- Update workshop name from 'CODE CRISPIES' to 'SCIENCE IN THE CITY' - Remove all Hetzner cloud deployment references and commands - Focus documentation on local USB/VM workshop environment - Remove cloud server connection functionality - Update WiFi credentials for workshop network - Clean up AGENTS.md to reflect local-only development workflow - Remove misleading cloud infrastructure references - Update help commands and learning flow for local practice only This commit prepares the workshop materials for the Science in the City event, focusing exclusively on local Co-op Cloud deployment practice without cloud infrastructure dependencies.
2.9 KiB
2.9 KiB
AGENTS.md
This file provides guidelines for AI coding agents operating within this repository.
Build, Lint, and Test Commands
- Build:
make usb-build(Builds the NixOS workshop ISO) - Local VM:
make vm(Starts local VM that simulates USB environment) - Test:
make usb-test(Test USB environment in QEMU) - Deploy:
make usb-build(Build workshop USB ISO) - Format:
make format(Format Nix files)
Code Style Guidelines
- Imports: Organize imports alphabetically. Avoid unused imports.
- Formatting: Adhere to Nixpkgs formatting conventions. Use
nixpkgs-fmtfor consistency. - Types: Use Nix's type system rigorously. Define types explicitly where possible.
- Naming Conventions:
- Variables and functions:
camelCasefor Nix expressions - Container/server names:
lowercase(hopper, curie, lovelace, etc.) - Script names:
kebab-casefor executables
- Variables and functions:
- SSH Keys: Always use Ed25519 keys (
~/.ssh/id_ed25519.pub) - Domain: Use
codecrispi.esconsistently across all environments - Password Policy: Minimize password usage; prefer key-based authentication
- Error Handling: Handle errors explicitly. Use Nix's error reporting mechanisms.
- Commit Messages: Use conventional commit style (
type: subject). Avoid scopes like(makefile). The subject should be in lowercase.
Container Architecture
- Local VM: Provides self-contained workshop environment
- Container Names: workshop-local (single container environment)
- Networking: Local networking with DNS resolution
- DNS:
*.workshop.localdomain resolution for testing
Available Scripts
setup- Initialize local workshop environmentdeploy <recipe>- Deploy Co-op Cloud applicationsbrowser [app]- Open applications in Firefoxrecipes- Display available Co-op Cloud recipeshelp- Show command help
Development Workflow
- Use
make vmfor local development testing - Test workshop environment with
make usb-test - Use
make usb-buildfor workshop USB drives (outputs to ./build/iso/) - Focus on local deployment and learning
General Guidelines
- Keep code concise and readable
- Prefer declarative over imperative approaches
- Document complex logic with comments
- Test locally in VM before USB deployment
- Maintain feature parity between USB/VM environments where possible
- ALWAYS check package existence on search.nixos.org before adding new packages
Build Locations
- USB ISOs:
./build/iso/result/iso/*.iso(custom build directory) - VM builds:
./result/(Nix default symlink) - Clean command: Removes both
./build/and./result/directories
⚠️ Critical Warnings
- NEVER RUN
nix-env- This can break your Nix environment. Usenix-shell,nix develop, or declarative approaches instead.
⚠️ Critical Warnings
- NEVER RUN
nix-env- This can break your Nix environment. Usenix-shell,nix develop, or declarative approaches instead.