fonttools / fontbakery

🧁 A font quality assurance tool for everyone
https://fontbakery.readthedocs.io
Apache License 2.0
558 stars 103 forks source link

`Many simple checks` versus `fewer larger checks` #4735

Open felipesanches opened 6 months ago

felipesanches commented 6 months ago

@simoncozens made a suggestion at https://github.com/fonttools/fontbakery/issues/4418#issuecomment-2024676780 and then also hinted at the idea when posting https://github.com/fonttools/fontbakery/issues/4729#issue-2303588008

When we think of some new thing which needs checking, our response is normally to add another check for it. This means we have a large number of small, discrete checks, which individually are easy to understand and reason about but which don't necessarily "communicate" with one another. I would prefer to move towards a smaller number of checks which tell you everything about a particular topic - i.e. license URLS in all the different places they can appear - because then they can ensure consistency together.

felipesanches commented 6 months ago

I agree, in principle, but I fear clarity of rationale for each check validation may be lost.

There are some checks that really validate the same kind of thing in multiple places, with the exact same rationale. For those it would be fine to clump everything in a single check.

But there are also small checks that have different reasoning each, such as the many aspects that we validate on different fields of the METADATA.pb file. Clumping those together would make it more complicated to convey to users what's the reasoning for each specific thing being checked. And it would also result in multiple "proposed" links to issue tracker entries.

felipesanches commented 6 months ago

I suggest we start with one initial proposal of clumping together a given set of checks, and we see how we feel about it. If we like the result, we can move on to refactor additional sets of checks.

@simoncozens, which ones would you like to propose clumping together at first?

simoncozens commented 6 months ago

Description/article. It's a GF-only thing so it only affects our process, and it's not as sprawling as metadata.pb.

m4rc1e commented 6 months ago

I'd personally like to do away with the little checks tbh. However, this isn't a hill I'm willing to die on.

I'd much prefer it is there was a single check for METADATA.pb that simply compares the current metadata.pb against a generated one, since we shouldn't be editing these by hand anyway (apart from the designer name, stroke etc).

simoncozens commented 3 months ago

Just to keep track of a few checks I have been merging as I look at porting them: