source {
repository_url: "https://github.com/googlefonts/dm-fonts"
commit: "d0520ba03bd780f5dccb3024854463d44f699b78"
- config_yaml: "Sans/Source/config.yaml"
files {
source_file: "Sans/OFL.txt"
dest_file: "OFL.txt"
--- /dev/null
+# Override config.yaml for ofl/dmsans
+# The upstream config (Sans/Source/config.yaml in googlefonts/dm-fonts) has
+# valid content but every line is indented 4 spaces with no top-level key,
+# so it cannot be parsed ("no config file was found"). This override is the
+# same config de-indented to valid top-level YAML, with the source paths
+# made relative to the repository root.
+sources:
+ - Sans/Source/DMSans.glyphs
+ - Sans/Source/DMSans-Italic.glyphs
+axisOrder:
+ - opsz
+ - wght
+ - ital
+familyName: DM Sans
+stat:
+ DMSans[opsz,wght].ttf:
+ - name: Optical size
+ tag: opsz
+ values:
+ - name: 9pt
+ value: 9
+ - name: 14pt
+ value: 14
+ - name: 18pt
+ value: 18
+ - name: 24pt
+ value: 24
+ - name: 36pt
+ value: 36
+ - name: 40pt
+ value: 40
+ - name: Weight
+ tag: wght
+ values:
+ - name: Thin
+ value: 100
+ - name: ExtraLight
+ value: 200
+ - name: Light
+ value: 300
+ - name: Regular
+ value: 400
+ linkedValue: 700
+ flags: 2
+ - name: Medium
+ value: 500
+ - name: SemiBold
+ value: 600
+ - name: Bold
+ value: 700
+ - name: ExtraBold
+ value: 800
+ - name: Black
+ value: 900
+ - name: ExtraBlack
+ value: 1000
+ - name: Italic
+ tag: ital
+ values:
+ - name: Roman
+ value: 0
+ linkedValue: 1
+ flags: 2
+ DMSans-Italic[opsz,wght].ttf:
+ - name: Optical size
+ tag: opsz
+ values:
+ - name: 9pt
+ value: 9
+ - name: 14pt
+ value: 14
+ - name: 18pt
+ value: 18
+ - name: 24pt
+ value: 24
+ - name: 36pt
+ value: 36
+ - name: 40pt
+ value: 40
+ - name: Weight
+ tag: wght
+ values:
+ - name: Thin
+ value: 100
+ - name: ExtraLight
+ value: 200
+ - name: Light
+ value: 300
+ - name: Regular
+ value: 400
+ linkedValue: 700
+ flags: 2
+ - name: Medium
+ value: 500
+ - name: SemiBold
+ value: 600
+ - name: Bold
+ value: 700
+ - name: ExtraBold
+ value: 800
+ - name: Black
+ value: 900
+ - name: ExtraBlack
+ value: 1000
+ - name: Italic
+ tag: ital
+ values:
+ - name: Italic
+ value: 1
## Issues Found
-None. The tracking data is accurate and complete. The METADATA.pb on main already has the correct commit hash, config_yaml, and branch.
+The METADATA.pb commit hash and branch are correct. However, the upstream `Sans/Source/config.yaml` is malformed (see fontc_crater fix below).
+
+## fontc_crater Build Fix (2026-05-21)
+
+**Model**: Claude Opus 4.7
+
+### Initial state
+fontc_crater failed with `no config file was found`, even though `Sans/Source/config.yaml` exists at the recorded commit.
+
+### Investigation
+The upstream `Sans/Source/config.yaml` has valid content, but every one of its lines is indented by 4 spaces with no top-level key — the whole YAML document is nested under an empty/implicit root. A parser finds no top-level `sources`/`recipe`, so the config is rejected. The defect is still present at upstream HEAD. The recorded commit and the `.glyphs` sources are otherwise correct.
+
+### Actions taken
+A corrected override `config.yaml` was added to the family directory: the upstream config de-indented to valid top-level YAML, with the source paths made repo-root-relative (`Sans/Source/DMSans.glyphs`, `Sans/Source/DMSans-Italic.glyphs`). The `config_yaml` field was removed from METADATA.pb so the override is auto-detected. An upstream fix to the indentation of `Sans/Source/config.yaml` should be filed separately.
+
+### Final state
+The family directory carries a valid gftools-builder config with a parseable top-level `sources` list pointing at the existing `.glyphs` sources.