Skip to content

Git workflow for forking/customizing single glyphs #189

Closed

Description

@woerndl

Hey,

first, let me say: This is a great project, chapeau especially to @rsms Inter is already a very solid grotesk typeface and since being open source it could become a go-to tool for many projects and really become a sans-serif big player.

This is a question: I'd like to edit some glyphs to fit my personal preference better using GlyphsApp (talking about taste, not enhancement per se). How could a workflow possibly look like for src/Inter.glyphs to be able to merge changes/updates on the main project back while keeping my customizations. And at the same time keeping the possibility to participate.

Does someone have a workflow in place for such changes or suggestions on the smoothest possible way? I fear that it could be quite troublesome impossible to check for changes in the source file, since relatively small changes result in quite a lot of changed lines (timestamps and so on).

What I thought of so far: Splitting out the glyphs for editing or using stylistic sets/alternates? Stylistic sets being the easy way of course with the downside that some tools I use might have trouble with OpenType features. So being able to freely edit would be my preferred solution.

I'm thankful for any suggestions 😊

Activity

  1. changed the title [-]Git workflow for forking inter[/-] [+]Git workflow for forking/customizing single glphys[/+] on Aug 12, 2019
  2. changed the title [-]Git workflow for forking/customizing single glphys[/-] [+]Git workflow for forking/customizing single glyphs[/+] on Aug 12, 2019
  3. added
    AddEnhancement, Improvement, addition or new feature
    on Sep 4, 2019
  4. rsms commented on Sep 4, 2019

    @rsms
    Owner

    I’ll make this a todo for adding documentation.

    In the meantime, the cleanest way to contribute:

    For contributions meant for upstream:

    1. Fork the repo
    2. Edit src/Inter.glyphs
    3. Create one commit for every logical change you make. For instance, if you want to make changes to two different glyphs, change one and commit the changes, then change the other and commit again.
    4. Submit a Pull Request here on GitHub

    For forking: (no intention to get contribute back)

    1. Clone or fork the repo, or just download a snapshot
    2. Edit src/Inter.glyphs
    3. Use the “export” function in Glyphs to generate font files. You can also use the Inter toolchain to build “production” font files, but that requires a bit of work in a terminal.

    There are ways to convert the glyphs file to UFO for exporting to other font editor formats. For instance glyphsLib.

  5. added
    docDocumentation & project maintenance
    on Sep 4, 2019
  6. madig commented on Sep 12, 2019

    @madig

    The .glyphs format has not been designed for version control workflows like other source code, you will most likely end up having a bad time there. Consider using glyphsLib to convert the .glyphs files into UFOs, where each glyph is put into a separate file. Sourcing upstream changes would then require you to fetch a fresh .glyphs file and glyphs2ufo-ing it onto your UFOs.

  7. rsms commented on Oct 23, 2019

    @rsms
    Owner

    A shortcut for generating UFOs:

    make

    This will generate all UFO files into build/ufo/ together with .designspace files.

    You can also manually generate master UFOs into any directory like this:

    misc/fontbuild glyphsync -o my-inter-ufos src/Inter.glyphs

    To manually generate instance UFOs, run fontbuild instancegen <designspace> <style>. Example:

    misc/fontbuild instancegen build/ufo/Inter.designspace ExtraLightItalic

    (Note: Instance UFOs are always written to build/ufo/)

  8. Repository owner locked and limited conversation to collaborators on Nov 19, 2024
  9. converted this issue into a discussion #768 on Nov 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    AddEnhancement, Improvement, addition or new featuredocDocumentation & project maintenance

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions