Developer's Corner

From DejaVu

Jump to: navigation, search

Contents


General Information

Project-related information can be seen on Project Info page on SourceForge.net. Subversion commits can be tracked on dejavu-fonts-commits mailing list or CIA (see also list of committers).

You can get the source from snapshots or from svn.

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

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

  • Get the source once from SVN: svn co https://dejavu.svn.sourceforge.net/svnroot/dejavu/trunk dejavu
  • Synchronize local copy with SVN: svn up dejavu

In the local Dejavu copy, e.g., /home/me/svn/dejavu/dejavu-fonts

  • Check for problems: make check
  • Prepare for making the patch: make pre-patch
  • Make patch against copy on server: svn diff > patchname.patch

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 Subversion, snapshots or latest release to make your patches. It's recommended to work with Subversion.
  • Edit fonts with FontForge version 20080330 or higher.
  • Generate TTF by running make full-ttf. The fonts can be found in the "build" directory.
  • 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 with svn diff if the patch looks clean.
  • Send your patches (unified diffs are most welcome - use svn diff for Subversion or diff -u for others; also, please, compress them with bzip2, gzip or zip) to dejavu-fonts mailing list. Along with the patch send an information what was changed.

What you need to know before editing

  • Fonts follow Unicode 6.0.0.
  • 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 narrowmerge.sh utility). However if glyph is changed in original version it must be edited in Condensed too.
  • 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