Developer's Corner

From DejaVu

Jump to: navigation, search


General Information

Project-related information can be seen on Github: dejavu-fonts. Git commits can be tracked on Github (Watch the project), dejavu-fonts-commits mailing list or CIA, or (see also list of committers).

You can get the source from snapshots or from Github.

The project used to be on on and used Subversion until May 2015.

New developer?

If you're completely new to font developing and FontForge, read the Beginner's guide article to get you started.

If you know how to work with FontForge, then still go to Beginner's guide to make you familiar with how we work with it...

Some useful commands

After you’ve forked the project on Github:

In your local git directory, e.g., /home/me/git

  • Get the source once from Github: git clone<your username>/dejavu-fonts.git
  • Synchronize local copy with Github: cd dejavu-fonts; git pull
  • Add the project’s fork as a second remote: git remote add upstream

In the local DejaVu copy, e.g., /home/me/git/dejavu-fonts

  • Make a branch to work on: git checkout -b mybranch
  • Check for problems: make check
  • Pick the changes to be committed: git add filepath
  • Prepare for making the patch: make pre-patch
  • Commit your changes: git commit -m"Description of the commit"
  • Push your branch to your fork on Github: git push origin mybranch
  • Open a merge request for that branch on Github

Developer's Notes

Remember! All DejaVu changes are placed into public domain. In case of dislike license can be changed for future versions.

The tools

  • Use SFD files and not TTF files as a base for your changes. The SFD files can be found in the "src" directory.
  • Use either Github, snapshots or latest release to make your patches. It's recommended to work with Github.
  • Edit fonts with FontForge version 20080330 or higher.
  • Generate TTF by running make full-ttf. The fonts can be found in the "build" directory. Font-TTF has to be installed for this command.
  • Run make check and examine its output. All type 0 problems it reports should be fixed before making patches.
  • Run make pre-patch before generating patches. Failing to do this will make too big patches with a lot of unnecessary changed data.
  • Committers should always check the merge request if the patch looks clean.

What you need to know before editing

  • Fonts follow the latest Unicode version.
  • The Plans page has a list of the glyphs that are work-in-progress - avoid making those glyphs.
  • Send a notice to dejavu-fonts mailing list what you want to do, why and when do you expect it to be done, if you're planning to do big things.
  • New glyphs won't be committed unless they exist in all four main typefaces (Regular, Bold, Oblique and Bold Oblique). It is not a problem if they are created only for Sans, Serif or Sans Mono. There is an exception that some glyphs have no oblique or italic variant in which case they are either duplicated in Oblique (like some symbols) or are omitted (like Arabic). Extra Light typeface stands on its own.
  • Adding new glyphs to Condensed typefaces is not needed - committers will take care of it (by using utility).
  • It is not necessary to add glyphs to Extra Light typefaces, but not discouraged.

About font editing

  • Altering existing characters is not discouraged however original Bitstream Vera characters (see Current status) should not be altered.
  • Follow the font style.
  • Reuse existing glyphs - references are your friends, but don't overuse them. Never transform references (scaling, rotating, flipping...) because Windows users will have problems seeing your glyph correctly. Instead of referencing small glyphs (like dot) you should also just copy the outlines.
  • Have some reusable shape? Create new glyph outside the fonts standard glyph range (unmapped glyph on position 110000 and more).
  • Build your fonts and look at your new glyphs in real life.
  • Updating and extending kerning information is a good thing.
  • Updating or creating hinting is always good, but, please, consult it on dejavu-fonts mailing list or IRC.

Other things

Committer Notes

Wiki Notes

Management Notes

  • How to make new release.
  • New version is released in every 4 to 6 weeks with release on Sunday and the first release candidate on Wednesday before the release.
Personal tools