Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Map the checking routines performed by third-party tools and how/if they overlap with native FontBakery checks #1541

Open
m4rc1e opened this issue Aug 22, 2017 · 12 comments
Assignees
Milestone

Comments

@m4rc1e
Copy link
Collaborator

m4rc1e commented Aug 22, 2017

I feel the new Font Validator covers these checks better, https://github.com/googlefonts/fontbakery/blob/master/Lib/fontbakery/specifications/googlefonts.py#L1411-L1564

I would like the results of the MS Validator reports to get logged to the cmdline.

Also, the headless Font Forge is a truly ugly dependency


@felipesanches edited this on 2017-Sept-22

The goal here is to come up with a comparative table describing the checks provided by each of the third-party font-linters such as Font-Forge, MSFVal, etc and how do they relate to / overlap with FontBakery explicit suite of font checks.

This table can help us decide whether to keep the dependencies or if we'd be better porting the (few?) additional checks provided by them into native FontBakery python code and ditch the dependencies.

@graphicore
Copy link
Collaborator

I'm not sure. But sometimes I think they report useful stuff.

I would like the results of the MS Validator reports to get logged to the cmdline.

They are logged, or? We could improve that a bit though.

@m4rc1e
Copy link
Collaborator Author

m4rc1e commented Aug 22, 2017

Ah yes, sorry they are logged. I'll look into them in more detail soon.

@HinTak
Copy link

HinTak commented Aug 25, 2017

I am all for people using Font Validator more (and commission/fund me working on it...), but a couple of things that font forge does hasn't got equivalent tests in Font Validator (yet). Also font forge has a rather large memory foot print, so indeed, you might/should use the Font Validator's tests if they are available.

BTW, a 4000-line python file should probably be re-factored :-). The equivalent part to the python code you refered to above is part of the glyf table test and the maxp table tests.

I think you want to have a look at the T.maxp_GlyphStats section (i.e. line 136 to 297) of part of the maxp table related test:
https://github.com/HinTak/Font-Validator/blob/master/OTFontFileVal/val_maxp.cs
what it does and does not do.

Sorry there is no overall view of the glyf test - TODO - the best I could suggest is to look at the chm file https://github.com/HinTak/Font-Validator/blob/master/bin/FontValidatorHelp.chm and have a look at all the E11XX/W11XX/I11XX/P11XX/A11XX status messages. It certainly detects "contour intersects", "Contours have correct directions", but perhaps not "Glyphs have points at extremas" .

Argh, I was wrong about the last part. Font Validator can emit a "W1112: Not all extremes are marked with the on-curve control points" message. Perhaps the best summary on what glyf table test does and does not do , I can give you, is this issue I filed myself:
microsoft/Font-Validator#15 .

@HinTak
Copy link

HinTak commented Aug 25, 2017

BTW, maxp related status codes are E19XX/W19XX/I19XX's. E for error, w for warning, I for information, A for application error [i.e. FontVal itself choked on something], P for pass, then the two digits are organized by table. 11 is glyf and 19 is maxp. They were alphabetical in the beginning, but newer tables are added to the end...

As you see from microsoft/Font-Validator#15 , the documentation for glyf table test is not as organized/centralized as the other tables . The bulk of the content of the chm is generated from https://github.com/HinTak/Font-Validator/blob/master/GenerateFValData/OurData.xml, except the glyf table tests.

@graphicore
Copy link
Collaborator

BTW, a 4000-line python file should probably be re-factored :-).

It's an ongoing effort.

@felipesanches
Copy link
Collaborator

I think that a list of all tests from all tools (native FontBakery, MS FVal, FontForge, etc...) and the equivalences among them would be neat to have if anyone is willing to put the effort into documenting what currently exists...

@davelab6
Copy link
Contributor

@m4rc1e you asked,

I would like the results of [FontVal] to get logged to the cmdline

I believe this is now done. Please confirm and close.

@davelab6 davelab6 modified the milestones: 0.4.0 - Future major release, 0.3.2 - Further improvements on reliability of checks and fixers Sep 19, 2017
@davelab6
Copy link
Contributor

I feel the new Font Validator covers these checks better

100% of them?

The headless Font Forge is a truly ugly dependency, but, if there is a single thing it checks that nothing else checks, we must keep it.

@felipesanches
Copy link
Collaborator

OK. There are a few different issues described here:

  • Whether or not to ditch any of the third-party tools (fontforge, MSFVal, etc)
  • How these tools overlap with FontBakery tests and among themselves
  • The burden of bundling together some of these dependencies

I believe that we can rename this issue so that the goal is to map the equivalency of the test-suites provided by each of the third-party tools and how they relate to the FontBakery native tests. And this can be a long-term issue that may or may not lead to ditching some dependencies in the future.

@felipesanches felipesanches changed the title Do we really need the Font Forge checks? Map the tests provided by all FontBakery dependencies and how they overlap Sep 22, 2017
@davelab6 davelab6 modified the milestones: 0.5.0 Code Is Well Organized, 0.3.3 (upcoming minor release) Nov 7, 2017
@davelab6 davelab6 assigned felipesanches and unassigned m4rc1e Nov 7, 2017
@davelab6
Copy link
Contributor

davelab6 commented Nov 7, 2017

This seems related to #1602 and #1515

@felipesanches
Copy link
Collaborator

felipesanches commented Nov 7, 2017

trying to summarize, these are separate issues because:

@felipesanches felipesanches changed the title Map the tests provided by all FontBakery dependencies and how they overlap Map the testing routines performed by third-party tools and how/if they overlap with native FontBakery tests Nov 7, 2017
@felipesanches
Copy link
Collaborator

This mapping of third-party features is not doable within this week, so I'll move it to a future milestone.

@felipesanches felipesanches modified the milestones: 0.3.3 (upcoming minor release), 0.4.0 - Future major release Nov 7, 2017
@felipesanches felipesanches changed the title Map the testing routines performed by third-party tools and how/if they overlap with native FontBakery tests Map the checking routines performed by third-party tools and how/if they overlap with native FontBakery checks Dec 13, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants