Visitar URL original
Inconsistently gftools-gen-stat and "compress" swap position in the build order · Issue #1015 · googlefonts/gftools · GitHub
Skip to content

Inconsistently gftools-gen-stat and "compress" swap position in the build order #1015

Open

Description

@aaronbell

A client running one of my builder scripts has been encountering an inconsistent issue where the "gftools-gen-stat" command and "compress" commands switch places in the build order. This causes a fail as the variable font has not been saved to the output location before builder tries to compress it to a webfont.

build.ninja:

# buildVariable: Build a variable font from a source file
rule buildVariable
  command = $
      /Users/aaronbell/Documents/CJK/venv/bin/python3.12 $
      -m gftools.builder.jobrunner fontmake --output-path $out -o variable $
      $fontmake_type $in $args $stamp
  description = buildVariable

# fix: Run gftools-fix
rule fix
  command = $
      /Users/aaronbell/Documents/CJK/venv/bin/python3.12 $
      -m gftools.builder.jobrunner gftools-fix-font -o $out $args $in $stamp
  description = fix

# buildStat: Build a STAT table from one or more source files
rule buildSTAT-operation
  command = gftools-gen-stat --out $tempdir $args -- $in && mv $finalfile $
      $out $stamp
rule buildSTAT-postprocess
  command = gftools-gen-stat --inplace $args -- $in $stamp

# compress: Compress to webfont
rule compress
  command = $
      /Users/aaronbell/Documents/CJK/venv/bin/python3.12 $
      -m gftools.builder.jobrunner fonttools ttLib.woff2 compress -o $out $
      $in $stamp
  description = compress

Activity

  1. aaronbell commented on Aug 5, 2024

    @aaronbell
    ContributorAuthor
    . venv/bin/activate; gftools builder sources/traditional/configFF.yaml; 
    [1/34] instantiateUfo 
    fontmake -i CJK FF Bold -o ufo -m merged_ufo/CJKFF.designspace --ufo-structure=json --output-dir merged_ufo/instance_ufos 
    [2/34] instantiateUfo 
    fontmake -i CJK FF Regular -o ufo -m merged_ufo/CJKFF.designspace --ufo-structure=json --output-dir merged_ufo/instance_ufos 
    [3/34] instantiateUfo 
    fontmake -i CJK FF Medium -o ufo -m merged_ufo/CJKFF.designspace --ufo-structure=json --output-dir merged_ufo/instance_ufos 
    [4/34] instantiateUfo 
    fontmake -i CJK FF Light -o ufo -m merged_ufo/CJKFF.designspace --ufo-structure=json --output-dir merged_ufo/instance_ufos 
    [5/34] instantiateUfo 
    fontmake -i CJK FF Black -o ufo -m merged_ufo/CJKFF.designspace --ufo-structure=json --output-dir merged_ufo/instance_ufos 
    [6/34] buildVariable 
    fontmake --output-path /var/folders/5p/x3cfp8q94wb3f6x9m4076sf40000gq/T/tmpfv6p2yep -o variable -m merged_ufo/CJKFF.designspace --filter ... --filter FlattenComponentsFilter --filter DecomposeTransformedComponentsFilter 
    [7/34] fix 
    gftools-fix-font -o ../../fonts/FF/traditional/variable/CJKFF[wght].ttf /var/folders/5p/x3cfp8q94wb3f6x9m4076sf40000gq/T/tmpfv6p2yep 
    [8/34] compress 
    FAILED: ../../fonts/FF/traditional/webfonts/CJKFF[wght].woff2  
    /Users/aaronbell/Documents/CJK-latin-update_20240802TestMakeFile2/venv/bin/python3.12 -m gftools.builder.jobrunner fonttools ttLib.woff2 compress -o '../../fonts/FF/traditional/webfonts/CJKFF[wght].woff2' '../../fonts/FF/traditional/variable/CJKFF[wght].ttf'  
     
    Command failed: 
    fonttools ttLib.woff2 compress -o ../../fonts/FF/traditional/webfonts/CJKFF[wght].woff2 ../../fonts/FF/traditional/variable/CJKFF[wght].ttf 
     
    Processing ../../fonts/FF/traditional/variable/CJKFF[wght].ttf => ../../fonts/FF/traditional/webfonts/CJKFF[wght].woff2 
    Traceback (most recent call last): 
      File "/Users/aaronbell/Documents/CJK-latin-update_20240802TestMakeFile2/venv/bin/fonttools", line 8, in <module> 
        sys.exit(main()) 
                 ^^^^^^ 
      File "/Users/aaronbell/Documents/CJK-latin-update_20240802TestMakeFile2/venv/lib/python3.12/site-packages/fontTools/__main__.py", line 31, in main 
        runpy.run_module(mod, run_name="__main__") 
      File "<frozen runpy>", line 229, in run_module 
      File "<frozen runpy>", line 88, in _run_code 
      File "/Users/aaronbell/Documents/CJK-latin-update_20240802TestMakeFile2/venv/lib/python3.12/site-packages/fontTools/ttLib/woff2.py", line 1683, in <module> 
        sys.exit(main()) 
                 ^^^^^^ 
      File "/Users/aaronbell/Documents/CJK-latin-update_20240802TestMakeFile2/venv/lib/python3.12/site-packages/fontTools/ttLib/woff2.py", line 1677, in main 
        subcommand(**options) 
      File "/Users/aaronbell/Documents/CJK-latin-update_20240802TestMakeFile2/venv/lib/python3.12/site-packages/fontTools/ttLib/woff2.py", line 1516, in compress 
        font = TTFont(input_file, recalcBBoxes=False, recalcTimestamp=False) 
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
      File "/Users/aaronbell/Documents/CJK-latin-update_20240802TestMakeFile2/venv/lib/python3.12/site-packages/fontTools/ttLib/ttFont.py", line 150, in __init__ 
        file = open(file, "rb") 
               ^^^^^^^^^^^^^^^^ 
    FileNotFoundError: [Errno 2] No such file or directory: '../../fonts/FF/traditional/variable/CJKFF[wght].ttf' 
     
    [9/34] gftools-gen-stat --inplace  -- '../../fonts/...4wb3f6x9m4076sf40000gq/T/tmpnib8ejj2.buildStatstamp 
    Saving font to ../../fonts/FF/traditional/variable/CJKFF[wght].ttf 
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions