Release Workflow - nb5p/nerd-fonts GitHub Wiki
- Merge latest Pull Requests into the default branch that are for the latest milestone
- Pull Requests and Bug Fixes go directly into the default branch after basic testing
- Change to scripts dir (@todo fix reliance on dir)
# todo fixme cd bin/scripts
- Execute script
./release.sh <version>
- Manually update the
changelog.md
with all changes- see most recent release for example of the format: https://github.com/ryanoasis/nerd-fonts/releases
- make sure to credit each Pull Request by referencing the person with @ followed by their GitHub id
- the following is a template example:
## v<version>
### New Features
- Added xyz (fixes #101)
- Added ...
### Updates / Improvements
- Updated xyz (fixes #101) (PR #101 @someone)
- ...
### Fixes
- Fixed xyz (fixes #101) (PR #101 @someone)
- ...
- see diff comparison from last release vs default branch to ensure nothing is missed:
https://github.com/ryanoasis/nerd-fonts/compare/latest-release-branch...HEAD
- Navigate to http://sankeymatic.com/build/
- Enter the list of Flows, in the correct format. e.g.
Nerd Fonts [#] Glyph Set Name
Nerd Fonts [7] Powerline Symbols
Nerd Fonts [30] Powerline Extra Symbols
Nerd Fonts [675] Font Awesome
Nerd Fonts [170] Font Awesome Extension
Nerd Fonts [197] Devicons
Nerd Fonts [228] Weather Icons
Nerd Fonts [53] Seti UI + Custom
Nerd Fonts [172] Octicons
Nerd Fonts [29] Font Linux
Nerd Fonts [5] IEC Power Symbols
Nerd Fonts [8] Pomicons
Nerd Fonts [2119] Material Design
- Use the following settings
- for 'Size, Spacing & Shape:'
- Use all defaults, except
- for 'curviness': max "("
- for 'Vertical Space between Nodes': 20px
- for 'node width': '20px'
- Use all defaults, except
- for 'Colors:'
- for 'Node Colors: Use theme:' "A"
- "Labels & Units..."
- Use all defaults (used to use 'mono')
- 'Units: suffix' Use (with a leading space): ' icons'
- "Advanced"
- Select "Reverse the graph (flow right-to-left)"
- Export as 1x (basic) for PNG or just SVG
- for 'Size, Spacing & Shape:'
- Update the
readme.md
- If a new font was added, add it to the table of Patched Fonts
- If any new glyphs or glyph sets were added
- Update individual glyph tables
- Use an updated Sankey Diagram
- 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)
- "
- You can get this information by simply passing a second param to the "all patcher":
- Update the "counts" in the Combinations Section
- Again, get this info from the "all patcher"
- Update the
font-patcher
help output section under "Patch Your Own Font" if needed
- verify
master
branch has all changes commited and pushedgit status -s
- update
master
from remotegit pull origin master
- create the new branch
- verify what the version should be by double checking remote branches
git branch -r | grep '[0-9]\+\.[0-9]\+\.[0-9]\+$'
git checkout -b <semver_based_branch_name>
- verify what the version should be by double checking remote branches
- push the new branch
git push -u origin <semver_based_branch_name>
- create tag
- "vMAJOR.MINOR.PATCH"
- i.e. same as branch name but with prefixed with a 'v'
- e.g.
git tag v1.5.3
- push latest tags
git push --tags
- Create new release on GitHub
- copy and paste latest release details from
changelog.md
into release notes
- copy and paste latest release details from
- Execute
upload-archives.sh
to upload font archives to the latest release- with no parameter given it will upload to the 'latest' release via GitHub API
- Verify font archives are showing for latest release
Update
All Contributors
- run:
all-contributors check
- ignore bots and compare differences between this release and the last, for example or if that does not work a good process is to check the release milestone and add the user to the CLI with appropriate contributions (e.g. code,doc,translation,... etc.)
- add or update the contributors with, e.g.:
all-contributors add <user> code,doc
- Spot check the changeset difference for issues
- Update the NerdFonts.com Website
Update the
Website
(GitHub pages)
- Checkout branch:
gh-pages
- Update the download links
- If there are new fonts add the new links
- Update the release notes
- Insert new release notes from changelog to the top
- Remove 'open' attribute from previous release container div
./font-patcher -ext ttf -out ./src/glyphs/ --complete ./src/glyphs/Symbols\ Template\ 1000\ em.ttf
./font-patcher -ext ttf -out ./src/glyphs/ --complete ./src/glyphs/Symbols\ Template\ 2048\ em.ttf