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

Publish mini-specifications for the various "semi-public" lib keys #118

Open
belluzj opened this issue Jul 16, 2020 · 9 comments
Open

Publish mini-specifications for the various "semi-public" lib keys #118

belluzj opened this issue Jul 16, 2020 · 9 comments
Labels
considering Specification change under consideration. proposal Proposed specification change. ufo3 UFO 3 issues.

Comments

@belluzj
Copy link

belluzj commented Jul 16, 2020

The lib mechanism to add custom data to UFOs is widely used, and while some keys are "private" implementation details of some UFO editors, some of these lib keys are "semi-public" in the sense that they're used by several programs that agree on the meaning for the keys, or are put in the UFOs on purpose by users in order for other UFO tools to pick them up and do something with that data. (I wrote "semi-public" to avoid confusion with proper "public" keys that are included in the official spec)

There is also a proposal for new spec additions to start as lib keys and then be included in the official specification once they've gained traction and maturity.

For both semi-public lib keys and draft specifications, I believe that it would be very useful to publish, alongside the official specification, a series of "mini-specifications" for the various proposals, with accompanying example UFOs ready for inclusion in the validation suite proposed in #117, and matching lines in the tool compatibility tables (even if only 1 tool out of all them currently supports that lib key/feature). Those mini-specification would follow the same format as the main specification, and maybe even a common template (that would facilitate the writing of these if they could start with "fill in the blanks" of the template).

Having one reference source of documentation and UFO examples for the key would facilitate discussion and interoperability; all vendors and tools could look into supporting the extra features themselves, and once the feature has gained traction and reached maturity, it's easy to fold into the main specification (half of the work will already be done).

@belluzj belluzj changed the title Publish mini-specifications for the various lib keys in existence Publish mini-specifications for the various "semi-public" lib keys Jul 16, 2020
@alerque
Copy link

alerque commented Jul 16, 2020

CSS vendor prefixes.

Ducks for cover.

@benkiel
Copy link
Contributor

benkiel commented Jul 16, 2020

@belluzj A good idea

@typesupply
Copy link
Contributor

would be very useful to publish, alongside the official specification, a series of "mini-specifications" for the various proposals

This is a great idea. My initial idea was "you publish your key" but that was because I didn't want to be responsible for keeping the site updated. At that point it was a huge pain because the "source" was a bunch of .textile files on my drive that were compiled with a homemade tool that spit out HTML files that I had to FTP. It's much easier to update the spec now, so this is a very good idea for interoperability and a lot of other stuff.

@benkiel
Copy link
Contributor

benkiel commented Jul 31, 2020

Meeting consensus is that we should do this.

@typemytype
Copy link
Contributor

typemytype commented Jul 31, 2020

as I converted the static html to jekyll on github, I can propose a system to build mini specs.

add a folder _miniSpecifications in the root of this repo, containing <reversed.domain.name.lib.key>.md files with the following setup:

---
layout: default
title: reversed.domain.name.lib.key
ufo-version: 
    - 3
    - 3.1
    - 4
---

# any mark down 

* my tool
* your tool
* data z
* data y
* data x

Each UFO version (except 1 and 2) will have a page forhttp://unifiedfontobject.org/versions/ufo<versionNumber>/mini-specifications with a list of all mini specs (based on ufo-version) + some "how-to-write-spec-info" related to the UFO process and design philosophy.

@justvanrossum
Copy link
Contributor

It's probably implied, but I'd like to explicitly add that the *.ufo/data folder should be part of this, too.

(Ideally, also designspace.lib.)

@typemytype
Copy link
Contributor

@justvanrossum each mini spec will need to specify where it will be stored: glyph lib, font lib, font data...

@belluzj
Copy link
Author

belluzj commented Aug 6, 2020

I started some work in this pull request: #124

@typesupply typesupply mentioned this issue Aug 11, 2020
6 tasks
@typesupply typesupply added considering Specification change under consideration. proposal Proposed specification change. ufo3 UFO 3 issues. labels Aug 12, 2020
@Alhadis
Copy link

Alhadis commented Aug 29, 2020

Stupid question: Is this more-or-less analogous to a JSON schema? (Sans requirements over a file's name and/or physical location).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
considering Specification change under consideration. proposal Proposed specification change. ufo3 UFO 3 issues.
Projects
None yet
Development

No branches or pull requests

7 participants