ufo-spec icon indicating copy to clipboard operation
ufo-spec copied to clipboard

Make contents.plist optional

Open justvanrossum opened this issue 5 years ago • 3 comments

I felt some consensus in the meeting that we should make contents.plist optional. I think it may even be considered for UFO 3.1.

Related to #114.

justvanrossum avatar Jul 31 '20 18:07 justvanrossum

While I agree this would be a step in the right direction, discretionary elements of a format spec always end up being pain points. Who would benefit from the spec having this optional list rather than just leaving any tooling that needs it to build their own cache in whatever serialized format is expedient using whatever update trigger they want without worrying about who else is using the data and may be affected? If the file is optional and exists, do you have to rescan the directory anyway or just blindly trust that whatever tooling created it also kept it up to date?

I can see the utility of such a list for some tooling, but what does the UFO ecosystem gain from having it as a complex 'maybe' (maybe it's there, maybe you can trust it) element at all? If it's optional then SPEC compliant tooling must function without it, so we're not leaving a shortcut of 'optionally' not bothering with being able to scan the directory to regenerate the info in memory/cache.

At most maybe specify a 'cache' directory or similar where tooling can put things like this with an explicit note that it should not be included in VCS or any other import/exports/transfers. At which point just letting tooling keep that info wherever it's other temporary cache data is would be more beneficial.

Perhaps this should actually be transitioned to a lib key ala #118 — with a formalized mini-spec based on the old (current) UFO behavior that would be an logical transition for exciting tooling (although they would still need to recode the implementation to not trust it as canonical).

alerque avatar Jul 31 '20 19:07 alerque

Example related issue in tooling: https://github.com/source-foundry/ufolint/issues/77

belluzj avatar Oct 21 '20 08:10 belluzj

Here is a real-world example why making contents.plist optional would be great: https://github.com/adobe-fonts/source-serif/commit/b5a33a6127dedac0eaf2f9b5779d53780fbffdd4

frankrolf avatar Feb 01 '21 17:02 frankrolf