Coder Social home page Coder Social logo

Integrate with Fontship about fontsource HOT 8 CLOSED

fontsource avatar fontsource commented on May 18, 2024
Integrate with Fontship

from fontsource.

Comments (8)

alerque avatar alerque commented on May 18, 2024 1

Thanks for the detailed response @DecliningLotus. I see I was under some misunderstanding about how fontsource works under the hood. I'll be getting back to this eventually with a more detailed proposal of how I envision closer integration could work.

from fontsource.

alerque avatar alerque commented on May 18, 2024 1

Yes. Personal and local concerns have demanded that I clear out some FOSS time and I've been dodging all font related stuff for a while now. I'll jump back in as soon as I have the bandwidth and this is definitely still on my radar.

from fontsource.

ayuhito avatar ayuhito commented on May 18, 2024 1

No worries then! Just a checkup while doing some repo cleanup. Thanks!

from fontsource.

ayuhito avatar ayuhito commented on May 18, 2024

The idea to integrate Fontship with Fontsource is an interesting concept but I'm not wholly sure how that will pan out practically.
Exactly what would we be directly integrating?

Workflow

At first glance at least Fontsource appears to rely on upstream font projects committing font build artifacts to their Git repositories. This is a serious anti-pattern that I consider anathema, is finally starting to be discouraged by Google Fonts (one of the primary early drivers of this terrible workflow), and isn't even too kosher by GitHub TOS.

For Google Fonts, we rely on Google Font Metadata that automatically parses the Google Fonts Developer API and generates even more necessary datapoints by fetching their CSS API as well before aggregating it all into one file. This is automatically updated and checked on a weekly basis.

For all other fonts, it is manual implementation. I grab the latest release on their repository and after chucking their files through Fontsource's packagers to standardise it with the rest of our fonts, it is then published. Updating the fonts is also a manual process. You may consider that an anathema, but what do you suggest to change in our workflow that resolves that?

In the long term, I do want to look into automating as much of this process as I can - but every repository seems to do things a little differently, needing a manual touch. Fontship running on all League fonts may prove to be beneficial as it would standardise how those fonts are published, although of course, I'd want to see a bit more widespread use of that before building automated scripts dedicated to that process.

Versioning

Versioning is an issue. I'm not too keen on the NPM packages being a miss-match for the actual font versions. I'm a firm SemVer supporter, but the font ecosystem is kind of limited by the OFF/M$OT specs that specify a two segment version string. For Fontship I am mandating the use of OpenFV compatible versioning. This is a lot better than many current font projects do, but still doesn't make to SemVer very consistently.

Versioning is an interesting topic with Fontsource. We follow a semblance of Semver but not a perfect rendition of it. A quick look at our changelog shows that major and minor updates are dependent on whether Fontsource updates its packaging methods. Patch updates, on the other hand, might be a mix of either Fontsource or an update from the source itself, which may potentially be a big change that we have no notice or control over.

However, we always also link the source version at the bottom of each package README as well, as seen here. I think that is the best compromise between managing Fontsource's and each individual source's versioning.

Packaging

What we don't do yet is generate any CSS templates to ease use as a webfont. I would be interested in hearing your suggestions on how that should be done, and also on generating NPM packaging.

Arguably... that is the whole purpose of Fontsource. We use lodash's template function to build the CSS whilst stuff like package.json is simply just exporting and writing an object. I do want to research that a little and see if there are better solutions for the sake of reliability and future maintenance, but it isn't a too high priority task currently.

from fontsource.

stale avatar stale commented on May 18, 2024

This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 14 days if no further activity occurs. Thank you for your contributions.
Use the 'not stale' label to prevent the issue from automatically closing.

from fontsource.

alerque avatar alerque commented on May 18, 2024

Nope not stale, still working on this.

from fontsource.

ayuhito avatar ayuhito commented on May 18, 2024

Hiya @alerque, are you still interested in pursuing this? Just checking in as it's been around 6 months since the last discussion.

from fontsource.

ayuhito avatar ayuhito commented on May 18, 2024

Appreciate the original issue, but I think I'll close this issue to clean up some of the stale issues in this repository. If this ever comes to fruition, feel free to reopen or create a new issue!

from fontsource.

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.