Commit Graph
30 Commits
Author SHA1 Message Date
Environment TestandClaude Sonnet 4.6 9ea2ad6ff1 refactor(docker): introduce utils/docker/image_discovery as single SPOT for image enumeration
- Move iter_role_images + all helpers + ImageRef from cli/mirror/util.py and
  cli/mirror/model.py into utils/docker/image_discovery.py; add source_file field
  to ImageRef to distinguish config/main.yml vs vars/main.yml entries
- Delete cli/mirror/util.py; update all callers to import from utils.docker.image_discovery
- Move utils into subpackages: utils/docker/ (image_ref, paths_utils, hadolint) and
  utils/roles/ (dependency_resolver, resource_validation); update all imports
- Reorganise tests into subpackages: tests/lint/docker/dockerfile/, tests/integration/docker/,
  tests/unit/utils/docker/, tests/unit/utils/roles/; fix parents[N] offsets after relocation
- tests/lint/docker/test_image_versions.py now uses iter_role_images (same SPOT as mirror)
- Add vars/main.yml images.<name>.{image,version} support for non-application roles
  (test-e2e-playwright, sys-ctl-hlth-csp); eliminate hardcoded duplicates in defaults/tasks
- Add web-app-matrix matrix-chatgpt-bot and web-app-mini-qr mini-qr entries in config/main.yml;
  replace hardcoded image strings in vars/templates with lookup('config', ...) references
- Fix sync/__main__.py log line to use correct registry prefix for non-Docker-Hub images
- Update docs/contributing/code/role/dockerfile.md with image declaration rules and SPOT reference

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 19:32:31 +02:00
Environment TestandClaude Sonnet 4.6 fa43addbb5 docs(role): rename readme.md to readme_base.md and update link
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 12:49:31 +02:00
Environment TestandClaude Sonnet 4.6 f7eb675432 feat(lint): fail on Dockerfile.j2 without Jinja2 control-flow logic; add dockerfile.md
- test_dockerfile_templates.py: emit warning for all Dockerfile.j2 files;
  fail for files without {% %} control-flow logic (must migrate to files/Dockerfile)
- Add docs/contributing/code/role/dockerfile.md as SPOT for Dockerfile placement,
  ARG variable handling, and lint behaviour

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 12:41:41 +02:00
Environment TestandClaude Sonnet 4.6 f1b7825455 docs(roles): add role README standard and refactor affected READMEs
Add docs/contributing/code/role/readme.md defining the required section
order, formatting rules, and the explicit prohibition of emojis in role
README headings. Reference the new guide from documentation.md.

Apply the standard to the four roles touched in the previous commit:
remove emojis from all headings, fix duplicate paragraph in WordPress,
correct typo in OpenProject compose template (crom/cental → from/central),
and align Credits sections to the canonical format.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 12:13:36 +02:00
kevinveenbirkenbach b906f6869a docs(tests): forbid text-presence regression guards 2026-04-01 22:26:03 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 eb75859905 docs: extract testing rules into docs/agents/action/testing.md and add TEST_PATTERN examples
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 12:55:54 +02:00
kevinveenbirkenbach 9ccdde2b5b refactor(services): extract shared frontend service loader role 2026-04-01 04:05:44 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 a2d844e798 refactor: move frontend service loading out of sys-front-inj-all into global stage
Extracts the shared frontend service loader from sys-front-inj-all into
tasks/utils/load_services.yml and tasks/utils/_load_frontend_service.yml,
called once from tasks/stages/02_server.yml before web-svc and web-app
roles. This decouples service loading from per-app injection and makes
load order explicit via SERVICE_REGISTRY entry order. Updates docs,
comments, and adds an integration test enforcing the new SPOT.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 03:30:19 +02:00
kevinveenbirkenbach 00193b4a23 Rename the canonical services map to SERVICE_REGISTRY 2026-03-31 21:43:29 +02:00
kevinveenbirkenbach dbc4dc7485 documentation/update contributing guide links and sphinx index 2026-03-30 23:03:47 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 10b889e76f refactor(deploy): single deploy-fresh-purged-apps target with FULL_CYCLE flag
Consolidates into one target. FULL_CYCLE defaults to false (deploy only);
set FULL_CYCLE=true for deploy + update pass. Extracts run_pass function
in fresh-purged-app.sh to eliminate duplicated init+deploy logic. Updates
makefile.md, playwright.md, iteration.md, and environment.sh with correct
FULL_CYCLE usage.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 17:14:44 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 ce27e05e3d docs(services): document css/javascript services, canonical field, and CDN loading
Updates services.md to cover shared-role entries (cdn/css/javascript),
the canonical field rules, bidirectional lookup behaviour, and links to
the new integration/lint tests.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 16:01:33 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 9eab315577 fix(matomo): disable inj_enabled.matomo when token unavailable, remove redundant CDN task
Sets inj_enabled.matomo=false when the Matomo token is empty so the NGINX
template skips body/head snippets and avoids 'matomo_site_id is undefined'.
Removes the explicit CDN load task — CDN is now covered by the generic
frontend service loader in 01_services.yml (loaded only when needed).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 11:33:57 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 2457d0e13c docs(playwright): add recording section and remove duplicated requirements
- Add Recording Tests section: Playwright codegen (built-in) and
  playwright-recorder (Docker/X11-based) with usage examples
- Replace duplicated spec/env requirement blocks with links to their
  SPOT pages in docs/agents/files/role/
- Extend Development Procedure to include optional recording step

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 10:55:19 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 33eebcae7c fix(matomo): skip injection gracefully when token is not yet available
Splits injection logic into inject.yml and guards execution via main.yml
when the Matomo API token is empty (e.g. first deployment or bootstrap not
yet run). Documents the exception and its retry behaviour in
docs/contributing/code/exceptions.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 10:00:40 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 c533d9a6fb docs(architecture): add hyperlinks, RFC 2119 keywords, and services.md reference
Convert backtick path references to clickable hyperlinks, apply MUST/SHOULD
language where appropriate, and link to services.md and workflow.md as SPOTs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 08:39:12 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 96649d8c9b refactor(services): centralize frontend service loading with generic lookup plugin
Introduces a SPOT for all frontend service loading in sys-front-inj-all/tasks/01_services.yml,
driven by a new generic `service` lookup plugin that resolves services by key or role name
and returns {id, role, enabled, shared, needed}. Needed = enabled AND shared (direct or
transitive). The canonical key→role mapping moves to group_vars/all/20_services.yml
(previously scattered hardcoded rules). Removes per-role service loads from bigbluebutton,
nextcloud, and dashboard. Renames 01_dependencies.yml→01_services.yml and
08_services.yml→08_daemons.yml. Adds flush_handlers after each service load.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 08:27:21 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 dca1eb69c7 docs: remove README.md files under docs/ and add lint check
Replace per-directory README.md index files with automatic glob toctree
in root index.rst (docs/**). Add lint test that fails if any README.md
appears under docs/. Document the no-README rule in documentation.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 21:16:15 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 139084359e docs: strengthen MUST wording for APP_BASE_URL dashboard start rule
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 23:19:51 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 ccb8ed76af docs: remove backlinks from all .md files
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 22:58:12 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 0a8a113bd6 fix: replace --color-XX-rgb-* with canonical --color-rgb-XX-* token format
The colorscheme-generator produces --color-rgb-XX-YY tokens. All role style
files were using the non-canonical --color-XX-rgb-YY alias format. Taiga had
a local alias block mapping the old format to the correct one; that block is
now removed as it is no longer needed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 22:43:44 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 d72ed74f16 docs: apply RFC 2119 requirement keywords across all docs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 21:39:56 +01:00
kevinveenbirkenbach 46fc790fdb docs: add playwright role file guidance 2026-03-28 18:30:13 +01:00
kevinveenbirkenbach 7df3c09472 docs: add role file guidance for css and javascript 2026-03-28 18:18:56 +01:00
kevinveenbirkenbach 6d98ca4cd0 refactor: normalize local deploy layout 2026-03-28 06:20:06 +01:00
kevinveenbirkenbach e9d0d207a9 docs: add local inspect wrapper 2026-03-28 03:07:24 +01:00
kevinveenbirkenbach 275c1c89b9 Document lint repo rules 2026-03-27 23:33:57 +01:00
kevinveenbirkenbach 50bde25f58 docs: move environment guides 2026-03-27 23:10:33 +01:00
kevinveenbirkenbach f2e8d99ff5 docs: move contributing tools guides 2026-03-27 22:57:42 +01:00
kevinveenbirkenbach 1af46d2d7f docs: split contributing guides by domain 2026-03-27 22:39:31 +01:00