Files
nix/PHASE1_TEST.md

2.8 KiB

Phase 1 Complete - Git Hooks Fix and Test

What Was Fixed

Issues Found

  1. astyanax: Two services = { blocks (invalid syntax)
    • First had git-hooks with wrong flake-path = self
    • Second was real services block
  2. andromache: git-hooks with wrong flake-path = self

Solution

Fixed all hosts:

  • Removed duplicate services blocks
  • Fixed flake-path (removed, uses default from module)
  • Added git-hooks to existing services blocks

📁 Files Fixed

File Changes
hosts/astyanax/default.nix Fixed duplicate services, removed wrong flake-path
hosts/andromache/default.nix Fixed wrong flake-path

🧪 Test Instructions

Now that the files are correct, test:

# 1. Rebuild astyanax
sudo nixos-rebuild switch --flake .#astyanax

# Expected output:
# 🪝 Installing git hooks for /home/h/nix...
# (nix build output...)
# ✅ Git hooks installed successfully

# 2. Verify hooks installed
ls -la /home/h/nix/.git/hooks/

# Should show:
# pre-commit
# (and potentially other hooks)

# 3. Test hooks work
# Create a file with bad formatting
echo "broken { }" > /home/h/nix/test.nix

# Try to commit (should fail)
git add test.nix
git commit -m "test"

# Should fail with 3 errors:
# - nixfmt: formatting error
# - statix: antipattern warning
# - deadnix: dead code warning

# Clean up
rm /home/h/nix/test.nix

🎯 What's Now Fixed

Feature Status Method
Hook definitions Done flake.nix checks
nixfmt Done Runs on commit/CI
statix Done Lints on commit/CI
deadnix Done Checks on commit/CI
Auto-install on rebuild Ready Activation script
Manual install app Ready nix run .#install-git-hooks
All hosts enabled Done Fixed syntax errors
flake-path Fixed No more flake-path = self

🚀 Next Steps

  1. Test locally (rebuild astyanax):

    sudo nixos-rebuild switch --flake .#astyanax
    
  2. Verify hooks installed:

    ls -la /home/h/nix/.git/hooks/
    
  3. Test hooks catch errors:

    echo "broken { }" > /home/h/nix/test.nix
    git add test.nix
    git commit -m "test"  # Should fail
    rm /home/h/nix/test.nix
    
  4. Commit Phase 1 changes:

    git add .
    git commit -m "Phase 1: Enhanced code quality (statix, deadnix, all hosts, fixed syntax)"
    git push
    
  5. Check CI: https://github.com/hektor/nix/actions

Phase 1 Complete!

All Phase 1 tasks done:

  • Add statix hook
  • Add deadnix hook
  • Enable git-hooks on all hosts
  • Fix activation script to use nix build
  • Create manual installation app
  • FIXED Duplicate services blocks and wrong flake-path

See IMPLEMENTATION_PLAN.md for Phase 2 (CI/CD Enhancements).