Configuration Reference¶
This page is the map for repository configuration files. Use it when a runbook mentions a config path and you need to know whether that file is source, generated output, workflow template, or public-repository data.
All paths below are repository-relative references.
Source Configs¶
File |
Owner |
Purpose |
Main Commands |
|---|---|---|---|
Tool repo |
Declares the proven DSW server, document worker, and |
|
|
Tool repo |
Base complete-fixture regression template. Upstream config generation writes an equality comparison; translated-package config generation writes a single-package render assertion. |
|
|
Tool repo |
Pins immutable Knowledge Model provenance and assigns one fixture to every DSW runtime. Config generation verifies its checksum and package metadata before DSW starts; the final evidence gate combines it with regression, coverage, and PDF results. |
|
|
Tool repo |
Local preview regression config for a manually controlled DSW instance. It expects API token auth. |
|
|
Tool repo |
Released-template document regression config. Use it when both baseline and candidate are already installed in DSW and referenced by released template id. |
|
|
Tool repo |
Python package metadata, dependencies, development extras, and installed |
|
|
Tool repo |
Formatting and linting rules for Python source, scripts, tests, and Sphinx config. |
|
The three regression configs use the strict loader in
yaml_config.py. Duplicate
or unknown fields fail before a DSW request runs, so a misspelled option cannot
silently fall back to its default.
regression.assertion is either equal or render_success. Equality requires
baseline and candidate subjects. Render success rejects a baseline and is used
with a local_package candidate so translated-package CI validates the actual
ZIP without a meaningless cross-language or self-comparison.
generated_fixtures in config/regression.ci.yml
uses these coverage controls:
Field |
Meaning |
|---|---|
|
Maximum number of selected cases that may become DSW projects and render comparisons. |
|
Number of deterministic candidates evaluated locally before selecting cases. It must be at least |
|
Fail when the selected cases do not cover every reachable answer and supported collection shape. CI keeps this enabled for every planned version. |
Increase selection_pool_size before increasing count: searching more local
candidates is much cheaper than rendering more DSW projects.
config/regression-evidence.yml deliberately separates document-template and
Knowledge Model metamodels. Each runtime_knowledge_models key must match a
metamodel_key in config/dsw-compat.yml. A Knowledge Model entry records:
repository-relative bundle path
exact DSW package ID and version
Knowledge Model
metamodelVersionauthoritative source URL
lowercase SHA-256 checksum
Adding a runtime without an assignment, replacing a bundle without updating its checksum, or declaring metadata that differs from the bundle fails before any render work begins.
The compatibility probe may update only the assignment lines between the
BEGIN/END GENERATED RUNTIME KNOWLEDGE MODEL ASSIGNMENTS comments. For a new
metamodel it copies the closest previous runtime’s pinned fixture as a testable
assumption. The knowledge_models catalog, provenance, and checksums remain
maintainer-owned and are never invented by automation.
Workflow and Stack Configs¶
File |
Owner |
Purpose |
Main Commands |
|---|---|---|---|
Tool repo |
Main CI workflow for checks, upstream discovery, clean scaffold artifacts, release assets, and DSW render regression. Its runtime matrix is generated from |
|
|
Tool repo |
GitHub Pages deployment for this documentation site. |
|
|
Tool repo |
Ephemeral DSW stack used by local and CI render tests. |
|
|
|
Tool repo example |
Template workflow copied into public repository |
|
Tool repo example |
Copy-ready README and docs templates for the public translated-template repository. Active public-repository copies are repository-owned. |
Manual copy after |
Generated Configs¶
Path |
Created By |
Purpose |
Commit? |
|---|---|---|---|
|
|
Active single-version CI regression config. |
No |
|
|
Per-version regression config generated from the compatibility ledger plan. |
No |
|
|
Single-package full render config using the pinned KM for the package metamodel. |
No |
|
|
Runtime, KM provenance, complete branch coverage, regression result, and strict PDF proof for every planned version. |
No |
Generated configs are ignored by git. If a generated config looks wrong, fix the source config or generator instead of committing the generated file.
Public Repository Translation Config¶
The public translated-template repository owns translation-config.yml; this
tool only validates and consumes it. The schema is implemented by
dsw_document_template_tool.translation_repository and validated with:
make validate-translation-config TRANSLATION_REPO=/path/to/science-europe-template-zh_Hant
The current schema is schema_version: 2. Validation rejects duplicate and
unknown fields so ambiguous values, misspellings, and retired settings cannot
remain as inert configuration.
Important fields:
Field |
Meaning |
|---|---|
|
Upstream versions known to the public repository. A version can be known without being actively translated. |
|
Public DSW metadata written to |
|
Per-version lifecycle policy: whether automation may refresh, migrate into, or publish release assets. |
|
Operations branch that owns repository-level config and docs. |
|
Prefix for translator-facing branches, usually |
|
Tool repository and revision used by public-repository workflows. Keep both as one-line YAML scalars: operations needs them before it can check out the tool and run full config validation. |
|
Canonical user-facing template README copied into generated version branches. |
|
Optional XLIFF export/import settings. The default workflow still treats |
Common Version Policy Snippets¶
Use these snippets under version_policy.overrides when a version needs an
explicit lifecycle. The default policy should usually stay scaffold-only, so new
upstream tags do not silently become translation work.
Scaffold exists, but translation has not started:
version_policy:
overrides:
vX.Y.Z:
state: available
refresh: false
migrate_into: false
publish_release: false
reason: scaffold available; translation not started
Actively translated and allowed to update automatically:
version_policy:
overrides:
vX.Y.Z:
state: active
refresh: artifact
migrate_into: auto
publish_release: true
reason: actively translated
Maintenance branch that can be refreshed only by an operator:
version_policy:
overrides:
vX.Y.Z:
state: maintenance
refresh: manual
migrate_into: manual
publish_release: true
reason: maintenance changes require operator action
Published and frozen:
version_policy:
overrides:
vX.Y.Z:
state: published
refresh: false
migrate_into: false
publish_release: true
reason: published; do not rebuild from newer scaffold artifacts
Archived and fully frozen:
version_policy:
overrides:
vX.Y.Z:
state: archived
refresh: false
migrate_into: false
publish_release: false
reason: archived; keep historical branch and release assets unchanged
refresh controls whether sync/v* branches are created or refreshed.
migrate_into controls cross-version synchronization membership. auto
versions may act as source and target during normal fan-out, manual versions
participate only when explicitly selected by an operator, and false versions
do not participate. For an allowed target, blank units are filled and existing
translations are updated only when the source structure is identical.
publish_release controls translated release asset generation. state and
reason are maintainer-facing labels that make CI summaries and reviews easier
to understand.
state must be one of available, active, maintenance, published, or
archived. Validation rejects spelling variants rather than treating them as a
new state with undefined lifecycle behavior.
Policy precedence is defaults, then matching rules in file order, then the
exact version override. Rules and overrides change only fields they explicitly
declare; omitted fields keep the value inherited from the previous layer. Use
the domain values artifact and auto when enabling automation. The ambiguous
shortcuts refresh: true and migrate_into: true are rejected.
Use refresh: artifact only for versions that should be rebuilt from the latest
tooling clean scaffold artifact. Published and archived versions must use both
refresh: false and migrate_into: false; the loader rejects frozen versions
that could still mutate from artifact refreshes or cross-version sync.
Use Public Template Repository Integration for the operational sequence and Translation Workflow for translator-facing behavior.