Git Product home page Git Product logo

Comments (14)

marekjez86 avatar marekjez86 commented on August 26, 2024

Same error happens when:
==== building src/NotoSerif-ItalicMM.glyphs ====
==== building src/NotoSerif-RomanMM.glyphs ====

Inputs also for these two additional builds are attached.
NotoSerif.zip

from fontmake.

jamesgk avatar jamesgk commented on August 26, 2024

I think the problem here is that the Glyphs source contains conflicting kerning rules, which are rejected on UFO load by defcon. We didn't have this problem with RoboFab (the conflicting kerning rules are removed when the feature is written), but interpolation via MutatorMath uses defcon so we have to deal with this earlier than on feature write.

@adrientetar do you know of some tool that can remove conflicting kerning in defcon or elsewhere?

from fontmake.

adrientetar avatar adrientetar commented on August 26, 2024

I don't.

Btw kerning is normally loaded lazily but needs to be processed on open when converting from a legacy ufo version.

from fontmake.

jamesgk avatar jamesgk commented on August 26, 2024

Hm. This is still a bit of a pain to deal with because robofab doesn't support ufo3.

FYI @behdad it's starting to look like we need to scrap use of robofab universally in favor of defcon, if only for compatibility with MutatorMath (this would also apply to Roboto, if we want to use it there).

from fontmake.

marekjez86 avatar marekjez86 commented on August 26, 2024

Sounds like more work than we previously planned. However, I'm all for
doing "the right thing".

On Wed, Feb 17, 2016 at 3:06 PM, James Godfrey-Kittle <
[email protected]> wrote:

Hm. This is still a bit of a pain to deal with because robofab doesn't
support ufo3.

FYI @behdad https://github.com/behdad it's starting to look like we
need to scrap use of robofab universally in favor of defcon, if only for
compatibility with MutatorMath (this would also apply to Roboto, if we want
to use it there).

β€”
Reply to this email directly or view it on GitHub
#13 (comment).

Marek Z Jeziorek [ 老马 ] | [email protected] | 312 725-6958

from fontmake.

adrientetar avatar adrientetar commented on August 26, 2024

Great idea (cc @graphicore), ufo3 has things like layers standardized so you don't need to use robofont extensions to the spec anywhere. defcon itself has many refinements in the ufo3 branch and, as you found out, validates data.
If you're doing this I'll work on getting our patches upstreamed.

from fontmake.

anthrotype avatar anthrotype commented on August 26, 2024

πŸ‘ for dropping robofab in favour of defcon+ufo3!

from fontmake.

behdad avatar behdad commented on August 26, 2024

FYI @behdad it's starting to look like we need to scrap use of robofab universally in favor of defcon, if only for compatibility with MutatorMath (this would also apply to Roboto, if we want to use it there).

Correct.

I'll take a look into this issue. I'm new to defcon, but see what I can figure out.

from fontmake.

jamesgk avatar jamesgk commented on August 26, 2024

But, kerning is still validated by defcon on UFO save so using defcon doesn't really help us here. It's looking to me like we have no choice but to remove the duplicate kerning earlier if we use MutatorMath. Of course we can still switch to defcon since it seems like the right thing to do.

from fontmake.

behdad avatar behdad commented on August 26, 2024

So, is the kerning data in one of the masters invalid? Then that's a source bug. @jamesgk can you make defcon report the invalid pairs? validateKerning definitely generates those, but they are lost in the exception.

It also occurs to me that:

  1. defcon's validateKerning can be improved a bit. I'll send PR for that separately,
  2. mathFont.mathKerning._processMathOne() needs to be more sophisticated to handle adding two kernsets with differing groups, half-class exceptions, etc. I'll send a PR for that as well as I work it out this week.

from fontmake.

jamesgk avatar jamesgk commented on August 26, 2024

So, is the kerning data in one of the masters invalid? Then that's a source bug.

So, is it OK if fontmake chokes on invalid kerning? My concern is that Glyphs does not.

@jamesgk can you make defcon report the invalid pairs? validateKerning definitely generates those, but they are lost in the exception.

They are passed on by defcon via an attribute of the exception object; we can print that out in glyphs2ufo where mutatorMath is called.

from fontmake.

jamesgk avatar jamesgk commented on August 26, 2024

BTW, there are quite a lot (948) of these conflicting rules in Noto Sans Ethiopic. The first 10:

public.kern1.@MMK_L_li_ethiopic, qa_ethiopic (-140) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
public.kern1.@MMK_L_li_ethiopic, qu_ethiopic (-140) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
public.kern1.@MMK_L_li_ethiopic, qi_ethiopic (-140) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
public.kern1.@MMK_L_li_ethiopic, qee_ethiopic (-140) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
public.kern1.@MMK_L_li_ethiopic, qe_ethiopic (-140) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
public.kern1.@MMK_L_li_ethiopic, qo_ethiopic (-60) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
public.kern1.@MMK_L_li_ethiopic, qwa_ethiopic (-140) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
public.kern1.@MMK_L_li_ethiopic, qwi_ethiopic (-140) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
public.kern1.@MMK_L_li_ethiopic, qwe_ethiopic (-70) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
public.kern1.@MMK_L_li_ethiopic, qho_ethiopic (-73) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
...

from fontmake.

behdad avatar behdad commented on August 26, 2024

Thanks. I'll take a look.

On Tue, Mar 1, 2016 at 8:27 AM, James Godfrey-Kittle <
[email protected]> wrote:

BTW, there are quite a lot (948) of these conflicting rules in Noto Sans
Ethiopic. The first 10:

public.kern1.@MMK_L_li_ethiopic, qa_ethiopic (-140) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
public.kern1.@MMK_L_li_ethiopic, qu_ethiopic (-140) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
public.kern1.@MMK_L_li_ethiopic, qi_ethiopic (-140) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
public.kern1.@MMK_L_li_ethiopic, qee_ethiopic (-140) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
public.kern1.@MMK_L_li_ethiopic, qe_ethiopic (-140) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
public.kern1.@MMK_L_li_ethiopic, qo_ethiopic (-60) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
public.kern1.@MMK_L_li_ethiopic, qwa_ethiopic (-140) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
public.kern1.@MMK_L_li_ethiopic, qwi_ethiopic (-140) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
public.kern1.@MMK_L_li_ethiopic, qwe_ethiopic (-70) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
public.kern1.@MMK_L_li_ethiopic, qho_ethiopic (-73) conflicts with hhi_ethiopic, public.kern2.@MMK_R_qa_ethiopic (-62)
...

β€”
Reply to this email directly or view it on GitHub
#13 (comment).

behdad
http://behdad.org/

from fontmake.

jamesgk avatar jamesgk commented on August 26, 2024

The original issue here should be fixed. New issues can be spun off e.g. for migration to defcon (one already exists in ufoLib for updating validateKerning).

from fontmake.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.