googlefonts / glyphsLib

A bridge from Glyphs source files (.glyphs) to UFOs
Apache License 2.0
178 stars 51 forks source link

DesignSpace sources contain duplicate locations #925

Closed clauseggers closed 11 months ago

clauseggers commented 12 months ago

This was using glyphsLib 6.2.3.dev13+gdee4e928 in gftools. Is it related to https://github.com/googlefonts/glyphsLib/issues/851 ? Or perhaps another issue entirely?

INFO:GFBuilder:Creating variable fonts from Playfair-2_1-Roman.glyphs
INFO:fontmake.font_project:Building master UFOs and designspace from Glyphs source
INFO:glyphsLib.parser:Parsing .glyphs file
WARNING:glyphsLib.builder.sources:DesignSpace sources contain duplicate locations; varLib expects each master to define a unique location. Make sure that you used consistent 'brace layer' names in all the glyph layers that share the same location.
  ['7 Jun 23 at 10:23', '7 Jun 23 at 10:12', '7 Jun 23 at 11:44', '7 Jun 23 at 11:57', 'Playfair Needlepoint SemiCondensed ', '7 Jun 23 at 11:04', '7 Jun 23 at 12:03', '7 Jun 23 at 10:42'] => {'Optical size': 1200.0, 'Width': 95.0, 'Weight': 600.0}
  ['7 Jun 23 at 10:52', '7 Jun 23 at 11:50'] => {'Optical size': 1200.0, 'Width': 95.0, 'Weight': 640.0}
  ['7 Jun 23 at 10:45', '7 Jun 23 at 11:50'] => {'Optical size': 1200.0, 'Width': 100.0, 'Weight': 600.0}
  ['7 Jun 23 at 10:23', '7 Jun 23 at 10:18', '7 Jun 23 at 11:45', '7 Jun 23 at 11:58'] => {'Optical size': 1200.0, 'Width': 114.0, 'Weight': 500.0}
  ['Playfair Needlepoint SemiCondensed ', '7 Jun 23 at 11:06', '7 Jun 23 at 12:04'] => {'Optical size': 1200.0, 'Width': 114.0, 'Weight': 600.0}
  ['16 Jun 23 at 15:24', '7 Jun 23 at 10:55'] => {'Optical size': 1200.0, 'Width': 114.0, 'Weight': 640.0}
INFO:fontmake.font_project:Building variable fonts gftools_ttf/variable/Playfair-2_1-Roman-VF.ttf
Traceback (most recent call last):
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/fontmake/font_project.py", line 1146, in run_from_designspace
    self._run_from_designspace_interpolatable(
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/fontmake/font_project.py", line 1242, in _run_from_designspace_interpolatable
    self.build_variable_fonts(
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/fontmake/font_project.py", line 424, in build_variable_fonts
    fonts = ufo2ft.compileVariableTTFs(
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/ufo2ft/__init__.py", line 636, in compileVariableTTFs
    vfNameToBaseUfo = _compileNeededSources(
                      ^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/ufo2ft/__init__.py", line 841, in _compileNeededSources
    ttfDesignSpace = compileInterpolatableFunc(
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/ufo2ft/__init__.py", line 413, in compileInterpolatableTTFsFromDS
    for source, ttf in zip(result.sources, ttfs):
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/ufo2ft/__init__.py", line 317, in compileInterpolatableTTFs
    glyphSets = call_preprocessor(ufos, **kwargs)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/fontTools/misc/loggingTools.py", line 375, in wrapper
    return func(*args, **kwds)
           ^^^^^^^^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/ufo2ft/__init__.py", line 73, in call_preprocessor
    preProcessor = preProcessorClass(
                   ^^^^^^^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/ufo2ft/preProcessor.py", line 283, in __init__
    self.glyphSets = [
                     ^
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/ufo2ft/preProcessor.py", line 284, in <listcomp>
    _GlyphSet.from_layer(
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/ufo2ft/util.py", line 54, in from_layer
    layer = font.layers[layerName]
            ~~~~~~~~~~~^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/ufoLib2/objects/layerSet.py", line 240, in __getitem__
    layer_object = self._layers[name]
                   ~~~~~~~~~~~~^^^^^^
KeyError: ''

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/claus/.local/bin/gftools", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/gftools/scripts/__init__.py", line 91, in main
    mod.main(args[2:])
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/gftools/builder/__init__.py", line 672, in main
    builder.build()
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/gftools/builder/__init__.py", line 207, in build
    self.build_variable()
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/gftools/builder/__init__.py", line 335, in build_variable
    output_files = self.run_fontmake(source, args)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/gftools/builder/__init__.py", line 389, in run_fontmake
    FontProject().run_from_glyphs(source, **args)
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/fontmake/font_project.py", line 856, in run_from_glyphs
    self.run_from_designspace(
  File "/Users/claus/.local/virtualenv/gftools/venv/lib/python3.11/site-packages/fontmake/font_project.py", line 1161, in run_from_designspace
    raise FontmakeError(
fontmake.errors.FontmakeError: In 'Playfair-2_1-Roman.glyphs' -> 'master_ufo/Playfair.designspace': Generating fonts from Designspace failed: ''
anthrotype commented 12 months ago

yes, I think it's the same issue as https://github.com/googlefonts/glyphsLib/issues/851

clauseggers commented 11 months ago

glyphsLib 6.2.4 did fix the crash, but the error messages still talks about ‘duplicate locations’ like before. After warnings fontmake seems to just give up and not produce fonts.

Glyphs will produce the fonts.

WARNING:glyphsLib.builder.sources:DesignSpace sources contain duplicate locations; varLib expects each master to define a unique location. Make sure that you used consistent 'brace layer' names in all the glyph layers that share the same location.
  ['7 Jun 23 at 10:23', '7 Jun 23 at 10:12', '7 Jun 23 at 11:44', '7 Jun 23 at 11:57', 'Playfair Needlepoint SemiCondensed ', '7 Jun 23 at 11:04', '7 Jun 23 at 12:03', '7 Jun 23 at 10:42'] => {'Optical size': 1200.0, 'Width': 95.0, 'Weight': 600.0}
  ['7 Jun 23 at 10:52', '7 Jun 23 at 11:50'] => {'Optical size': 1200.0, 'Width': 95.0, 'Weight': 640.0}
  ['7 Jun 23 at 10:45', '7 Jun 23 at 11:50'] => {'Optical size': 1200.0, 'Width': 100.0, 'Weight': 600.0}
  ['7 Jun 23 at 10:23', '7 Jun 23 at 10:18', '7 Jun 23 at 11:45', '7 Jun 23 at 11:58'] => {'Optical size': 1200.0, 'Width': 114.0, 'Weight': 500.0}
  ['Playfair Needlepoint SemiCondensed ', '7 Jun 23 at 11:06', '7 Jun 23 at 12:04'] => {'Optical size': 1200.0, 'Width': 114.0, 'Weight': 600.0}
  ['16 Jun 23 at 15:24', '7 Jun 23 at 10:55'] => {'Optical size': 1200.0, 'Width': 114.0, 'Weight': 640.0}
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph h in master Needlepoint SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph k in master Needlepoint SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph f_h.liga in master Needlepoint SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph f_k.liga in master Needlepoint SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph fl in master Needlepoint SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_h.liga in master Needlepoint SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_k.liga in master Needlepoint SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_l.liga in master Needlepoint SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph _f_h.ligature in master Needlepoint SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph _f_ydieresis.ligature in master Needlepoint SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph h in master Needlepoint SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph k in master Needlepoint SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph f_h.liga in master Needlepoint SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph f_k.liga in master Needlepoint SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph fl in master Needlepoint SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_h.liga in master Needlepoint SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_k.liga in master Needlepoint SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_l.liga in master Needlepoint SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph _f_h.ligature in master Needlepoint SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph _f_ydieresis.ligature in master Needlepoint SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph h in master Needlepoint Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph k in master Needlepoint Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph f_h.liga in master Needlepoint Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph f_k.liga in master Needlepoint Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph fl in master Needlepoint Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_h.liga in master Needlepoint Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_k.liga in master Needlepoint Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_l.liga in master Needlepoint Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph _f_h.ligature in master Needlepoint Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph _f_ydieresis.ligature in master Needlepoint Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph h in master Needlepoint Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph k in master Needlepoint Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph f_h.liga in master Needlepoint Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph f_k.liga in master Needlepoint Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph fl in master Needlepoint Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_h.liga in master Needlepoint Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_k.liga in master Needlepoint Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_l.liga in master Needlepoint Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph _f_h.ligature in master Needlepoint Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph _f_ydieresis.ligature in master Needlepoint Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph h in master Agate SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph k in master Agate SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph f_h.liga in master Agate SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph f_k.liga in master Agate SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph fl in master Agate SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_h.liga in master Agate SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_k.liga in master Agate SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_l.liga in master Agate SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph _f_h.ligature in master Agate SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph _f_ydieresis.ligature in master Agate SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph h in master Agate SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph k in master Agate SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph f_h.liga in master Agate SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph f_k.liga in master Agate SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph fl in master Agate SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_h.liga in master Agate SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_k.liga in master Agate SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_l.liga in master Agate SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph _f_h.ligature in master Agate SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph _f_ydieresis.ligature in master Agate SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph h in master Agate Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph k in master Agate Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph f_h.liga in master Agate Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph f_k.liga in master Agate Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph fl in master Agate Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_h.liga in master Agate Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_k.liga in master Agate Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_l.liga in master Agate Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph _f_h.ligature in master Agate Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph _f_ydieresis.ligature in master Agate Black SemiCondensed has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph h in master Agate Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph k in master Agate Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph f_h.liga in master Agate Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph f_k.liga in master Agate Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph fl in master Agate Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_h.liga in master Agate Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_k.liga in master Agate Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph longs_l.liga in master Agate Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph _f_h.ligature in master Agate Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
WARNING:glyphsLib.builder.builders.UFOBuilder:Glyph _f_ydieresis.ligature in master Agate Black SemiExpanded has different alternate layers to components that it uses. We don't currently support this case, so some alternate layers will not be applied. Consider fixing the source instead.
fontmake: Error: In 'Playfair-2_1-Roman.glyphs' -> 'master_ufo/Playfair.designspace': Generating fonts from Designspace failed: ''
anthrotype commented 11 months ago

@clauseggers Thanks for testing and reporting back!

Even after I apply the new fix in https://github.com/googlefonts/glyphsLib/pull/929, your Playfair fonts still fail to compile because apparently you still get duplicate sources in the designspace. This time the reason is not that we assigned the wrong layer name (we should generate it correctly after #929), but rather it looks like you have associated multiple intermediate layers at the same location to distinct master layers: e.g. the brace layer with {1200, 95, 600, 1} coordinates is associated to Playfail-NeedlepointSemiCondensed for some glyphs, whereas to Playfair-NeedlepointBlackSemiExpanded for other glyphs -- can't tell you which ones right now, haven't gotten that far, sorry! I hope this helps..

anthrotype commented 11 months ago

@clauseggers going to push 6.2.5 soon, but feel free to reopen this issue in case you think it is not resolved on our side

clauseggers commented 11 months ago

you have associated multiple intermediate layers at the same location to distinct master layers: e.g. the brace layer with {1200, 95, 600, 1} coordinates is associated to Playfail-NeedlepointSemiCondensed for some glyphs, whereas to Playfair-NeedlepointBlackSemiExpanded for other glyphs

I think I know what this is. Jens talked about it, but I didn’t have fontmake make it to this point yet ;-)

anthrotype commented 11 months ago

if Glyphs.app accepts this situation (intermediate layers at same location in different glyphs gets associated by the font developer to different master layers), fontmake (glyphsLib) should arguably support it as well, or at least provide better error message when this occurs...

clauseggers commented 11 months ago

From the Glyphs Handbook PDF 3.0.4, p. 196

13.6.1 Intermediate Layer Setup Firstly, select the master layer in the Layers palette most similar to the desired Intermediate layer. Then, click the plus button in the Layers palette to add a new layer. …

It is only glyphsLib that cares about the ordering as far as I can gather.

schriftgestalt commented 11 months ago

A brace layer is what is called a sparse master in ufo/designspace. So no connection to the master it is attached to. It just has to be somewhere.

clauseggers commented 11 months ago

I moved all the intermediate layers so that they are all under the first master. Then I created the needed intermediate layers to make the intermediate layers rectangular. That should have been enough to make it build(?), but fontmake still fails, but now with this on the Roman (the Italic similar):

fontmake: Error: In 'Playfair-2_1-Roman.glyphs' -> 'master_ufo/Playfair.designspace': Generating fonts from Designspace failed: '{5, 95, 500}'

I have tried to re-order the sequence of the intermediate layers, but that did not fix it.