Skip to content

Commit 6dc1652

Browse files
committed
Migrate to Iosevka Charon
1 parent d0008a2 commit 6dc1652

36 files changed

Lines changed: 1998 additions & 148903 deletions

.github/workflows/build.yaml

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -9,25 +9,16 @@ jobs:
99
runs-on: ubuntu-latest
1010
steps:
1111
- uses: actions/checkout@v4
12-
- name: Set up Python 3.11
13-
uses: actions/setup-python@v6
1412
with:
15-
python-version: "3.11"
13+
submodules: recursive
14+
- name: Install Nix
15+
uses: DeterminateSystems/nix-installer-action@v14
16+
- name: Nix cache
17+
uses: DeterminateSystems/magic-nix-cache-action@v7
1618
- name: Setup fontspector
1719
uses: fonttools/setup-fontspector@main
1820
env:
1921
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
20-
- name: Install toolset
21-
run: |
22-
sudo apt-get update
23-
sudo apt-get install ttfautohint libcairo2-dev python3-cairo-dev pkg-config python3-dev
24-
sudo snap install yq
25-
- uses: actions/cache@v4
26-
with:
27-
path: ./venv/
28-
key: ${{ runner.os }}-venv-${{ hashFiles('**/requirements*.txt') }}
29-
restore-keys: |
30-
${{ runner.os }}-venv-
3122
- name: Set artifact file name
3223
id: zip-name
3324
shell: bash
@@ -48,11 +39,17 @@ jobs:
4839
# done
4940

5041
- name: Build font
42+
env:
43+
NIX_CONFIG: "experimental-features = nix-command flakes"
5144
run: make build
5245
- name: Check with fontspector
46+
env:
47+
NIX_CONFIG: "experimental-features = nix-command flakes"
5348
run: make test
5449
continue-on-error: true
5550
- name: Generate proofs
51+
env:
52+
NIX_CONFIG: "experimental-features = nix-command flakes"
5653
run: make proof
5754
- name: Set up test result site
5855
run: cp scripts/index.html out/index.html

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,10 @@ venv-test
44
build.stamp
55
proof
66
fonts
7+
.venv
8+
out
9+
sources/output
10+
__pycache__/
711
node_modules
812
package-lock.json
913
package.json

.gitmodules

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
[submodule "sources/iosevka"]
2+
path = sources/iosevka
3+
url = https://github.com/jul-sh/Iosevka.git
4+
branch = gf

AUTHORS.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
# This is the official list of project authors for copyright purposes. The first name in the list (if there are several authors), will appear as "Principal design" in the "about" section of the font specimen on Google Fonts.
1+
# This is the official list of project authors for copyright purposes.
22
# This file is distinct from the CONTRIBUTORS.txt file.
33
# See the latter for an explanation.
44
#
55
# Names should be added to this file as:
66
# Name or Organization <email address>
77

8+
Renzhi Li aka. Belleve Invis, <belleve@typeof.net>
9+
Juliette Pluto <git@jul.sh>

Makefile

Lines changed: 17 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,30 @@
1-
SOURCES=$(shell python3 scripts/read-config.py --sources )
2-
FAMILY=$(shell python3 scripts/read-config.py --family )
3-
DRAWBOT_SCRIPTS=$(shell ls documentation/*.py)
4-
DRAWBOT_OUTPUT=$(shell ls documentation/*.py | sed 's/\.py/.png/g')
1+
ENV_RUNNER := ./scripts/run-in-nix.sh
2+
FONTS_DIR := fonts/ttf
3+
REPORT_DIR := out/fontbakery
4+
PROOF_DIR := out/proof
55

66
help:
77
@echo "###"
8-
@echo "# Build targets for $(FAMILY)"
8+
@echo "# Build targets for Iosevka Charon"
99
@echo "###"
1010
@echo
11-
@echo " make build: Builds the fonts and places them in the fonts/ directory"
12-
@echo " make test: Tests the fonts with fontspector"
13-
@echo " make proof: Creates HTML proof documents in the proof/ directory"
14-
@echo " make images: Creates PNG specimen images in the documentation/ directory"
11+
@echo " make build: Builds the fonts inside the Nix+uv environment"
12+
@echo " make test: Runs FontBakery checks on the built TTFs"
13+
@echo " make proof: Generates HTML proofs via diffenator2"
1514
@echo
1615

17-
build: build.stamp
16+
build:
17+
$(ENV_RUNNER) bash sources/build.sh
1818

19-
venv: venv/touchfile
19+
test: build
20+
$(ENV_RUNNER) bash sources/scripts/check_fonts.sh $(FONTS_DIR) $(REPORT_DIR)
2021

21-
customize: venv
22-
. venv/bin/activate; python3 scripts/customize.py
22+
proof: build
23+
$(ENV_RUNNER) bash -lc 'TTF=$$(find $(FONTS_DIR) -type f -name "*.ttf"); [ -n "$$TTF" ] || { echo "No TTF files found in $(FONTS_DIR)"; exit 1; }; mkdir -p $(PROOF_DIR); gftools gen-html $$TTF --out $(PROOF_DIR)'
2324

24-
build.stamp: venv sources/config.yaml $(SOURCES)
25-
rm -rf fonts
26-
(for config in sources/config*.yaml; do . venv/bin/activate; gftools builder $$config; done) && touch build.stamp
27-
28-
venv/touchfile: requirements.txt
29-
test -d venv || python3 -m venv venv
30-
. venv/bin/activate; pip install -Ur requirements.txt
31-
touch venv/touchfile
32-
33-
test: build.stamp
34-
which fontspector || (echo "fontspector not found. Please install it with 'cargo install fontspector'." && exit 1)
35-
TOCHECK=$$(find fonts/variable -type f 2>/dev/null); if [ -z "$$TOCHECK" ]; then TOCHECK=$$(find fonts/ttf -type f 2>/dev/null); fi ; mkdir -p out/ out/fontspector; fontspector --profile googlefonts -l warn --full-lists --succinct --html out/fontspector/fontspector-report.html --ghmarkdown out/fontspector/fontspector-report.md --badges out/badges $$TOCHECK || echo '::warning file=sources/config.yaml,title=fontspector failures::The fontspector QA check reported errors in your font. Please check the generated report.'
36-
37-
proof: venv build.stamp
38-
TOCHECK=$$(find fonts/variable -type f 2>/dev/null); if [ -z "$$TOCHECK" ]; then TOCHECK=$$(find fonts/ttf -type f 2>/dev/null); fi ; . venv/bin/activate; mkdir -p out/ out/proof; diffenator2 proof $$TOCHECK -o out/proof
39-
40-
images: venv $(DRAWBOT_OUTPUT)
41-
42-
%.png: %.py build.stamp
43-
. venv/bin/activate; python3 $< --output $@
25+
update-uv-lock:
26+
$(ENV_RUNNER) bash sources/scripts/update_uv_lock.sh
4427

4528
clean:
46-
rm -rf venv
29+
rm -rf fonts out build.stamp .venv
4730
find . -name "*.pyc" -delete
48-
49-
update-project-template:
50-
npx update-template https://github.com/googlefonts/googlefonts-project-template/
51-
52-
update: venv
53-
venv/bin/pip install --upgrade pip-tools
54-
# See https://pip-tools.readthedocs.io/en/latest/#a-note-on-resolvers for
55-
# the `--resolver` flag below.
56-
venv/bin/pip-compile --upgrade --verbose --resolver=backtracking requirements.in
57-
venv/bin/pip-sync requirements.txt
58-
59-
git commit -m "Update requirements" requirements.txt
60-
git push

OFL.txt

Lines changed: 69 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
1-
Copyright 20** The My Font Project Authors (https://github.com/googlefonts/googlefonts-project-template)
1+
Copyright 2025, the Iosevka Project authors (https://github.com/be5invis/Iosevka)
22

33
This Font Software is licensed under the SIL Open Font License, Version 1.1.
4+
45
This license is copied below, and is also available with a FAQ at:
5-
https://openfontlicense.org
6+
http://scripts.sil.org/OFL
7+
8+
--------------------------
9+
610

11+
SIL Open Font License v1.1
12+
====================================================
713

8-
-----------------------------------------------------------
9-
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
10-
-----------------------------------------------------------
1114

12-
PREAMBLE
15+
Preamble
16+
----------
17+
1318
The goals of the Open Font License (OFL) are to stimulate worldwide
1419
development of collaborative font projects, to support the font creation
1520
efforts of academic and linguistic communities, and to provide a free and
@@ -18,76 +23,88 @@ with others.
1823

1924
The OFL allows the licensed fonts to be used, studied, modified and
2025
redistributed freely as long as they are not sold by themselves. The
21-
fonts, including any derivative works, can be bundled, embedded,
26+
fonts, including any derivative works, can be bundled, embedded,
2227
redistributed and/or sold with any software provided that any reserved
2328
names are not used by derivative works. The fonts and derivatives,
2429
however, cannot be released under any other type of license. The
2530
requirement for fonts to remain under this license does not apply
2631
to any document created using the fonts or their derivatives.
2732

28-
DEFINITIONS
29-
"Font Software" refers to the set of files released by the Copyright
33+
34+
Definitions
35+
-------------
36+
37+
`"Font Software"` refers to the set of files released by the Copyright
3038
Holder(s) under this license and clearly marked as such. This may
3139
include source files, build scripts and documentation.
3240

33-
"Reserved Font Name" refers to any names specified as such after the
41+
`"Reserved Font Name"` refers to any names specified as such after the
3442
copyright statement(s).
3543

36-
"Original Version" refers to the collection of Font Software components as
44+
`"Original Version"` refers to the collection of Font Software components as
3745
distributed by the Copyright Holder(s).
3846

39-
"Modified Version" refers to any derivative made by adding to, deleting,
47+
`"Modified Version"` refers to any derivative made by adding to, deleting,
4048
or substituting -- in part or in whole -- any of the components of the
4149
Original Version, by changing formats or by porting the Font Software to a
4250
new environment.
4351

44-
"Author" refers to any designer, engineer, programmer, technical
52+
`"Author"` refers to any designer, engineer, programmer, technical
4553
writer or other person who contributed to the Font Software.
4654

47-
PERMISSION & CONDITIONS
55+
56+
Permission & Conditions
57+
------------------------
58+
4859
Permission is hereby granted, free of charge, to any person obtaining
4960
a copy of the Font Software, to use, study, copy, merge, embed, modify,
5061
redistribute, and sell modified and unmodified copies of the Font
5162
Software, subject to the following conditions:
5263

53-
1) Neither the Font Software nor any of its individual components,
54-
in Original or Modified Versions, may be sold by itself.
55-
56-
2) Original or Modified Versions of the Font Software may be bundled,
57-
redistributed and/or sold with any software, provided that each copy
58-
contains the above copyright notice and this license. These can be
59-
included either as stand-alone text files, human-readable headers or
60-
in the appropriate machine-readable metadata fields within text or
61-
binary files as long as those fields can be easily viewed by the user.
62-
63-
3) No Modified Version of the Font Software may use the Reserved Font
64-
Name(s) unless explicit written permission is granted by the corresponding
65-
Copyright Holder. This restriction only applies to the primary font name as
66-
presented to the users.
67-
68-
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
69-
Software shall not be used to promote, endorse or advertise any
70-
Modified Version, except to acknowledge the contribution(s) of the
71-
Copyright Holder(s) and the Author(s) or with their explicit written
72-
permission.
73-
74-
5) The Font Software, modified or unmodified, in part or in whole,
75-
must be distributed entirely under this license, and must not be
76-
distributed under any other license. The requirement for fonts to
77-
remain under this license does not apply to any document created
78-
using the Font Software.
79-
80-
TERMINATION
64+
1. Neither the Font Software nor any of its individual components,
65+
in Original or Modified Versions, may be sold by itself.
66+
67+
2. Original or Modified Versions of the Font Software may be bundled,
68+
redistributed and/or sold with any software, provided that each copy
69+
contains the above copyright notice and this license. These can be
70+
included either as stand-alone text files, human-readable headers or
71+
in the appropriate machine-readable metadata fields within text or
72+
binary files as long as those fields can be easily viewed by the user.
73+
74+
3. No Modified Version of the Font Software may use the Reserved Font
75+
Name(s) unless explicit written permission is granted by the corresponding
76+
Copyright Holder. This restriction only applies to the primary font name as
77+
presented to the users.
78+
79+
4. The name(s) of the Copyright Holder(s) or the Author(s) of the Font
80+
Software shall not be used to promote, endorse or advertise any
81+
Modified Version, except to acknowledge the contribution(s) of the
82+
Copyright Holder(s) and the Author(s) or with their explicit written
83+
permission.
84+
85+
5. The Font Software, modified or unmodified, in part or in whole,
86+
must be distributed entirely under this license, and must not be
87+
distributed under any other license. The requirement for fonts to
88+
remain under this license does not apply to any document created
89+
using the Font Software.
90+
91+
92+
93+
Termination
94+
-----------
95+
8196
This license becomes null and void if any of the above conditions are
8297
not met.
8398

84-
DISCLAIMER
85-
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
86-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
87-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
88-
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
89-
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
90-
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
91-
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
92-
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
93-
OTHER DEALINGS IN THE FONT SOFTWARE.
99+
100+
DISCLAIMER
101+
102+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
103+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
104+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
105+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
106+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
107+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
108+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
109+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
110+
OTHER DEALINGS IN THE FONT SOFTWARE.

0 commit comments

Comments
 (0)