Skip to content

feat: surface evaluation warnings in CI#457

Merged
stackptr merged 1 commit intomainfrom
feat-surface-eval-warnings
Apr 17, 2026
Merged

feat: surface evaluation warnings in CI#457
stackptr merged 1 commit intomainfrom
feat-surface-eval-warnings

Conversation

@stackptr
Copy link
Copy Markdown
Owner

@stackptr stackptr commented Apr 17, 2026

Capture stderr from nix eval during the CI eval job and emit GitHub Actions warning annotations when evaluation warnings are detected. The step also fails so the build job is blocked, making warnings impossible to miss on PRs.

Closes #274

What changed

  • Refactored the eval loop into an eval_host function
  • Stderr is captured separately from stdout
  • Any evaluation warning: in stderr triggers a ::warning:: annotation (visible in the PR checks summary) and fails the step
  • Multi-line warnings are encoded with %0A so the full text appears in the annotation
  • All hosts are checked before exiting, so all warnings are reported in a single run

Verify

Check that a config with an evaluation warning causes the eval job to fail and shows the warning text as an annotation on the PR.

Copy link
Copy Markdown
Owner Author

stackptr commented Apr 17, 2026

This stack of pull requests is managed by Graphite. Learn more about stacking.

@stackptr stackptr marked this pull request as ready for review April 17, 2026 05:15
@stackptr stackptr force-pushed the feat-surface-eval-warnings branch from 53f3687 to 4331bf1 Compare April 17, 2026 06:09
@stackptr stackptr merged commit 747b7c4 into main Apr 17, 2026
5 checks passed
Copy link
Copy Markdown
Owner Author

Merge activity

stackptr added a commit that referenced this pull request Apr 17, 2026
Addresses all actionable evaluation warnings surfaced by #457.

## Changes

| File | Warning fixed |
|---|---|
| `modules/home/editor.nix` | `programs.neovim.withRuby` and `programs.neovim.withPython3` β€” explicitly adopt new defaults (`false`) |
| `modules/home/gpg.nix` | `programs.git.signing.format` β€” explicitly set to `"openpgp"` to preserve GPG signing on Rhizome |
| `modules/home/scm.nix` | `programs.git.signing.format` β€” set `mkDefault null` as base so hosts without GPG adopt the new default silently |
| `modules/home/development.nix` | `programs.claude-code.memory.source` β†’ `programs.claude-code.context` |
| `hosts/glyph/home.nix` | `programs.opencode.rules` β†’ `programs.opencode.context` |
| `hosts/zeta/hardware.nix` | `linux-rpi series` deprecation β€” removed explicit `linux_rpi4` kernel package; `nixos-hardware.nixosModules.raspberry-pi-4` (already imported) handles the kernel |

## Not fixed

One warning remains on glyph: `'system' has been renamed to/replaced by 'stdenv.hostPlatform.system'`. This originates from the `attic` flake (a transitive dependency via `services.atticd`), not from this repo's code. It requires an upstream fix.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Surface evaluation warnings in CI/PRs

1 participant