mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 10:59:59 +00:00
Path-style invocation in scripts/system/network/dns/common.sh failed with `ImportError: attempted relative import with no known parent package` because cli/meta/domains/__main__.py uses `from . import PROJECT_ROOT`. The DNS host generator silently fell back to a static 3-host list on every bootstrap run (visible in the test-development CI logs). Switch the caller to `PYTHONPATH=<repo> python3 -m cli.meta.domains` so the package context resolves. Keeps the PROJECT_ROOT SPOT (tests/lint/filesystem/python/test_project_root_import.py) intact — no local redefinition. Also: one-line YAML rewrap in compose/cache.override.yml (formatter).
Compose Configuration 🧩
This directory holds the static configuration assets consumed by the top-level compose.yml of the local development and CI testing stack.
Scope 📋
- The directory MUST contain only files that are bind-mounted into a
service defined in
compose.yml. - The directory MUST NOT host application configuration that belongs to
an Ansible role. Per-role compose payloads live under
roles/<role>/templates/. - The directory MUST NOT host workflow scripts, test fixtures, or
build helpers. Those belong under
scripts/ortests/.
Layout 🗂️
Each compose service that needs static configuration owns a
sub-directory whose name matches the service. New service-specific
config MUST go into the matching sub-directory rather than at the
compose/ root.
For the rules that govern compose.yml itself (env-variable contract,
profile gating, resource caps), see
compose.yml.md.