My immediate issue is solved, and I’m partly making this issue in case others come across it in the future. Also, though, there may be an opportunity for the builder to eliminate this issue entirely, or else to provide a more clear error message, here.
Situation
I have a project using the GF Builder to build a designspace + UFOs into static and variable fonts. It’s a relatively simple setup of two sources, interpolating into four weights (for romans and for italics).
I was having no issue creating variable fonts with a custom recipe. However, I could not get static fonts to build.
I eventually found that the instantiateUFO operation was not creating instance UFOs, for... some reason. However, when I ran the equivalent / reported fontmake command, it would build instance UFOs with no issue. This was baffling, and I tried a bunch of experiments to get things working.
Eventually, I saw in the Builder docs that "instantiateUFO: Creates an interpolated UFO for a given instance_name." I finally realized my problem: my designspace was set up without name attributes for each instance.
They were missing name="Familyname Regular", and I guess instantiateUFO requires that to process the instances.
Possible improvements to the Builder
Just to brainstorm, I think the builder might be eliminate this problem in one of two ways:
If an instance record doesn’t include a name attribute, the builder could compose one, e.g. from the familyname and stylename attributes.
If composing an instance name isn’t feasible, the builder could perhaps include a clearer error message when and why instantiateUFO has failed. Something like, instantiateUFO missing required 'name' attribute in instance "Familyname Regular" would have been super helpful.
The error logs
To make this issue more easily searchable, here’s how the console looked while I was experiencing this issue:
My immediate issue is solved, and I’m partly making this issue in case others come across it in the future. Also, though, there may be an opportunity for the builder to eliminate this issue entirely, or else to provide a more clear error message, here.
Situation
I have a project using the GF Builder to build a designspace + UFOs into static and variable fonts. It’s a relatively simple setup of two sources, interpolating into four weights (for romans and for italics).
I was having no issue creating variable fonts with a custom recipe. However, I could not get static fonts to build.
I eventually found that the instantiateUFO operation was not creating instance UFOs, for... some reason. However, when I ran the equivalent / reported fontmake command, it would build instance UFOs with no issue. This was baffling, and I tried a bunch of experiments to get things working.
Eventually, I saw in the Builder docs that "instantiateUFO: Creates an interpolated UFO for a given
instance_name
." I finally realized my problem: my designspace was set up withoutname
attributes for each instance.That is, my instances started with this:
...rather than this:
They were missing
name="Familyname Regular"
, and I guess instantiateUFO requires that to process the instances.Possible improvements to the Builder
Just to brainstorm, I think the builder might be eliminate this problem in one of two ways:
name
attribute, the builder could compose one, e.g. from thefamilyname
andstylename
attributes.name
isn’t feasible, the builder could perhaps include a clearer error message when and why instantiateUFO has failed. Something like,instantiateUFO missing required 'name' attribute in instance "Familyname Regular"
would have been super helpful.The error logs
To make this issue more easily searchable, here’s how the console looked while I was experiencing this issue:
Thanks!
Thanks for reading, and thanks for all your help as I figure out how to be productive with the Builder!