nerd-fonts/contributing.md

64 lines
3.3 KiB
Markdown
Raw Normal View History

# Contributing Guide
## How to contribute
Work In Progress, for now the minimum:
* 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
## Adding a new font or removing an existing font
* Check the license even allows the font to be modified and shared
* Add the original (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}`
* 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)
* 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`
* Add the new font to the README table of supported 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)
## Things to keep in mind
* Smaller PRs are likely to be merged more quickly than bigger changes
* If it is a useful PR it **will** get merged in eventually
* [E.g. see how many have already been merged vs. still open](https://github.com/ryanoasis/nerd-fonts/pulls)
* This project is using [Semantic Versioning 2.0.0](http://semver.org/)
* I try to group fixes into milestones/versions
* If your bug or PR is *not* trivial it will likely end up in the next **MINOR** version
* If your bug or PR *is* trivial *or* critical it will likely end up in the next **PATCH** version
* Most of the time PRs and fixes are *not* merged directly into master without being present on a new versioned branch
* Sometimes for small items I will make exceptions to get the fix or readme change on master sooner but even after there will *always* be a versioned branch to keep track of each release
## Commit messages
* squash or not to squash into 1 commit ? (@todo)
* require a specific format for commit messages for consistency ? (@todo)
2017-04-11 03:31:10 +02:00
## Code standards
2017-04-11 03:31:10 +02:00
### Shell Scripts
* Follow [ShellCheck](https://github.com/koalaman/shellcheck) - A shell script static analysis tool
* Try to follow [Google's Shell Style Guide](https://google.github.io/styleguide/shell.xml)
### Python
* Use 4 spaces for indentation
* Consider PEP8 and other (@todo)
<!-- link references -->
[Features Section]: https://github.com/ryanoasis/nerd-fonts/blob/master/readme.md#features