mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-09 12:17:13 +00:00
Reason: ruff parses every `# noqa: <code>` marker as a flake8 directive and warns on every non-flake8 rule key. Every catalog rule in `docs/contributing/actions/testing/suppression.md` is project-specific (kebab-case), so `# noqa:` markers fired the warning on every parse. `# nocheck:` is the project synonym ruff ignores. Scope: - 41 `roles/*/meta/services.yml` + 1 task + 1 .cfg.j2 template: pure noqa→nocheck swap for catalog rules. Mixed flake8 markers (`# noqa: E402, X`) preserved verbatim. - 5 production .py + 2 production scripts: same swap. - All catalog-rule lints' docstrings updated; redundant "or # nocheck:" parentheticals collapsed to a single nocheck form. - `utils/annotations/suppress.py`: docstring rewritten to spell out the new convention. Parser still accepts both keywords as synonyms. - `docs/contributing/actions/testing/suppression.md`: convention rewritten to mandate `nocheck:`; missing `domain-spot` and `literal-protocol-lookup` rows added; "enforced by" pointer added. New guard: - `tests/lint/repository/test_noqa_only_ruff_codes.py`: meta-lint failing any `# noqa: <code>` whose codes don't match `[A-Z]+\d+` (real ruff/flake8 shape). Allowlists the impl, its unit test, the catalog page, the direct-yaml lint, and itself. - `tests/lint/repository/test_no_direct_yaml_calls.py`: hardened to reject the `noqa:` form via inlined regex (no longer routed through `utils.annotations.suppress`). Tangential cleanups carried in this same commit: - `utils/cache/yaml.py`, `utils/handler/yaml.py`: 6 `direct-yaml` markers swapped. - `utils/cache/base.py`: `from . import PROJECT_ROOT, ROLES_DIR` moved up to the import block (E402). - `cli/create/role/__init__.py`: reordered so PROJECT_ROOT is defined before `__main__` is imported (also fixed a latent circular import). - PROJECT_ROOT migration tail: 2 new `__init__.py` modules + 10 test files swapped from `def repo_root()` to `from . import PROJECT_ROOT`. - ~20 ruff auto-fix removals of unused `from pathlib import Path`. Verification: - `ruff check .` clean. - 23 suppression-related tests pass. - The new lint detects all three regression shapes (project rule alone, mixed with real ruff code, lowercase-only). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
🌐 DNS Setup Scripts
This directory contains platform-specific scripts for setting up local DNS resolution for the infinito.example domain (and subdomains) on the development machine.
All scripts map *.infinito.example → 127.0.0.1 so that local deployments are reachable via their expected hostnames.
📄 Scripts
🐧 linux.sh
General-purpose DNS setup for Linux systems. Supports multiple strategies depending on the environment:
- NetworkManager + dnsmasq. preferred path when NetworkManager is active; configures the NM dnsmasq plugin with a wildcard zone entry.
- System dnsmasq. fallback when NetworkManager is not running; configures a standalone dnsmasq service.
/etc/hostsfallback. used in non-systemd environments (e.g. Docker containers, LXC) where service management is unavailable; writes a managed block of host entries directly into the hosts file.
Shared helper functions are sourced from ../common.sh.
🪟 wsl.sh
WSL2-specific DNS setup. Only executes when running inside a WSL2 environment (detected via /proc/version). Configures:
- dnsmasq with the discovered WSL2 upstream DNS gateway as forwarder.
- systemd-resolved stub listener disabled to avoid port conflicts.
/etc/resolv.confpointed at the local dnsmasq instance (127.0.0.1)./etc/wsl.confset togenerateResolvConf=falseto prevent WSL from overwriting the resolver config on restart.
🔗 Related
- Makefile Commands. canonical Make target index for this area
../remove.sh. teardown script that undoes the DNS configuration../common.sh. shared variables and helper functions used bylinux.sh