1
0
mirror of https://github.com/ryanoasis/nerd-fonts.git synced 2024-12-01 16:55:57 +02:00
nerd-fonts/contributing.md
Ryan L McIntyre d27d9b0404 Update contributing.md
- small fixes and adds some details
2017-07-28 17:27:19 -04:00

4.1 KiB

Contributing Guide

How to contribute

  • Fork the project from the master branch and submit a Pull Request (PR)
    • Explain what the PR fixes or improves
    • Screenshots for bonus points
  • Use sensible commit messages
    • If your PR fixes a separate issue number, include it in the commit message
  • Use a sensible number of commit messages as well
    • e.g. Your PR should not have 100s of commits

Steps for adding a new font or removing an existing font

  • For removal of a font skip to Step #4

1. Verify license

  • Check the license even allows the font to be modified and shared

2. Add original (unpatched) version

  • Add the unpatched version of the font and any readme and/or license files to the unpatched-sample-fonts directory inside a new directory
    • e.g. Adding XYZ Font, create directory src/unpatched-fonts/xyz/{PUT FONT FILES HERE}

3. Execute basic testing

  • Do a basic test with the new font to ensure it patches correctly and generates a new font file, e.g.
    • ./font-patcher src/unpatched-fonts/XYZ/XYZ.ttf --complete
    • Make sure to then delete this new font file if it is in the repository (all patched fonts should be generated in the patched-fonts directory)

4. Run build scripts

  • When fairly satisfied the font patches correctly, run the following scripts in this order:
    • Copy all the unpatched readmes to the patched location with additional info on variations appended:
      • ./standardize-and-complete-readmes.sh
    • Patch all of the variations/options, e.g.
      • ./gotta-patch-em-all-font-patcher\!.sh XYZ

5. Update readme

  • Add the new font to the table of Patched Fonts
  • Update the "counts" in the Features Section
    • You can get this information by simply passing a second param to the "all patcher": ./gotta-patch-em-all-font-patcher\!.sh "" info
      • "X already patched font families" -> Give exact number from 'typefaces' line
      • "Over X unique combinations/variations..." -> round down to nearest hundred from 'variation' line
      • "Over X glyphs/icons combined" -> manual process for now (@todo)
  • Update the "counts" in the Combinations Section
    • Again, get this info from the "all patcher"

Things to keep in mind

  • Smaller Pull Requests are likely to be merged more quickly than bigger changes
  • This project is using a KISS Workflow
    • Pull Requests and bugfixes are directly merged into master after sanity testing
    • master is basically consider the main developer branch
      • We no longer wait to get changes into master when there is a release/milestone/version!
    • the release branches and version tags are considered stable and frozen
  • This project is using Semantic Versioning 2.0.0
    • If a bugfix or PR is not trivial it will likely end up in the next MINOR version
    • If a bugfix or PR is trivial or critical it will likely end up in the next PATCH version
  • Useful Pull Requests will get merged in eventually

Commit messages

  • Squashing to 1 commit is not required at this time
  • Use sensible commit messages (when in doubt: git log)
  • Use a sensible number of commit messages
  • If your PR fixes a specific issue number, include it in the commit message: "Fixes XYZ error (fixes #123)"

Code standards

Shell Scripts

Python

  • Use 4 spaces for indentation
  • Consider PEP8 and other (@todo)