Developer's Corner
From DejaVuWiki
Contents |
[edit]
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.
[edit]
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...
[edit]
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
[edit]
Developer's Notes
Remember! All DejaVu changes are placed into public domain. In case of dislike license can be changed for future versions.
[edit]
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.
[edit]
What you need to know before editing
- Fonts follow Unicode 5.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.
[edit]
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.
[edit]
Other things
- Use Find Problems feature of FontForge.
- Knowledge is good - read Typography page (especially if you create new combining diacritical marks).
- If you plan to make major changes, like making a new script, please consult our mailing list first
[edit]
Committer Notes
- Anyone can commit anything.
- Uncertain or controversial patches should be discussed on dejavu-fonts mailing list.
- Before commit run make check and make pre-patch.
- Review changes before commit.
- Update Plans and News after each commit.
- During RC period Subversion is closed and all patches must undergo public review on dejavu-fonts mailing list
[edit]
Wiki Notes
- Anonymous edits are not allowed - ask for account on dejavu-fonts mailing list.
- Good changes are always welcome. Don't ask, just do it.
- For tests we have Sandbox.
- Please see documentation on customizing the interface and the User's Guide for usage and configuration help.
- See Changes to MediaWiki for list of changes done to MediaWiki in order to be able to use it with SourceForge.net's web services.
- Sidebar is changed by editing sidebar/navigation page.
[edit]
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.
