Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 9 additions & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,10 @@ jobs:
- name: Set up Python
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
with:
python-version: "3.14"
# 3.13 for afdko (otfautohint), which has no 3.14 wheel; 3.14 is the default.
python-version: |
3.13
3.14

- name: Install system libraries for text shaping in proofs
run: |
Expand All @@ -214,6 +217,11 @@ jobs:
run: |
python -m pip install --upgrade pip
python -m pip install -r sans/requirements.txt
python3.13 -m venv "$RUNNER_TEMP/otf"
"$RUNNER_TEMP/otf/bin/python" -m pip install -r sans/requirements-otf.txt
mkdir -p "$RUNNER_TEMP/otf-bin"
ln -s "$RUNNER_TEMP/otf/bin/otfautohint" "$RUNNER_TEMP/otf-bin/otfautohint"
echo "$RUNNER_TEMP/otf-bin" >> "$GITHUB_PATH"

- name: Get the upstream sources at the pinned commit
run: |
Expand Down
21 changes: 18 additions & 3 deletions .github/workflows/sans.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,17 +38,28 @@ jobs:
- name: Set up Python
uses: actions/setup-python@6d4fd22b20465ccc0f7354476588e8df7c9ca0e0 # v7.1.0
with:
python-version: "3.14"
# 3.13 for afdko (otfautohint), which has no 3.14 wheel; 3.14 (the
# last one) is the default python.
python-version: |
3.13
3.14

- name: Install system libraries for text shaping in proofs
- name: Install system libraries for text shaping in proofs, and Tesseract
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends libraqm0 libfribidi0
sudo apt-get install -y --no-install-recommends libraqm0 libfribidi0 \
tesseract-ocr tesseract-ocr-eng fonts-dejavu-core

- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install -r sans/requirements.txt
# otfautohint in its own Python 3.13 environment; only the command goes on PATH.
python3.13 -m venv "$RUNNER_TEMP/otf"
"$RUNNER_TEMP/otf/bin/python" -m pip install -r sans/requirements-otf.txt
mkdir -p "$RUNNER_TEMP/otf-bin"
ln -s "$RUNNER_TEMP/otf/bin/otfautohint" "$RUNNER_TEMP/otf-bin/otfautohint"
echo "$RUNNER_TEMP/otf-bin" >> "$GITHUB_PATH"

- name: Get the upstream sources at the pinned commit
run: |
Expand All @@ -71,6 +82,9 @@ jobs:
- name: Run tests
run: python -m pytest -q sans/tests

- name: Readability gate (Tesseract OCR)
run: python sans/scripts/readability.py --gate --out build/sans/readability.json

- name: Install Fontspector
run: |
name="fontspector-${FONTSPECTOR_VERSION}-x86_64-unknown-linux-gnu"
Expand Down Expand Up @@ -101,5 +115,6 @@ jobs:
path: |
fonts/sans/
build/sans/proofs/
build/sans/readability.json
reports/sans/
if-no-files-found: warn
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ Each family keeps its own changelog:

Release tags: `weft-vX.Y.Z`, `sans-vX.Y.Z`, `heddle-vX.Y.Z`, `warp-vX.Y.Z`, `site-vX.Y.Z`.

## 2026-10-28: Sans 0.2

- machine-made Sans 0.2.0 (font version 0.200): italic Cyrillic, OTF
hinting, Latin Extended-A, kerning fixes. See `sans/CHANGELOG.md`.

## 2026-10-27: Warp 0.1

- machine-made Warp 0.1.0 (font version 0.100): machine-made Warp
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Specimen site: <https://machine-made.github.io/type/>
| Family | Release | Contents |
| --- | --- | --- |
| machine-made Weft 0.1 | [weft-v0.1.0](https://github.com/machine-made/type/releases/tag/weft-v0.1.0) | Variable TTF, 9 static TTF and OTF, WOFF2, readability report |
| machine-made Sans 0.1 | [sans-v0.1.0](https://github.com/machine-made/type/releases/tag/sans-v0.1.0) | 2 variable TTF, 14 static TTF and OTF, WOFF2 |
| machine-made Sans 0.2 | [sans-v0.2.0](https://github.com/machine-made/type/releases/tag/sans-v0.2.0) | 2 variable TTF, 14 static TTF and OTF (hinted), WOFF2 |
| machine-made Heddle 0.1 | [heddle-v0.1.0](https://github.com/machine-made/type/releases/tag/heddle-v0.1.0) | Variable TTF, 11 static TTF, WOFF2 |
| machine-made Warp 0.1 | [warp-v0.1.0](https://github.com/machine-made/type/releases/tag/warp-v0.1.0) | 6 static TTF and OTF (text and Display), WOFF2, readability report |

Expand All @@ -52,7 +52,7 @@ checks that FRAG 0 and 15 read as well as DejaVu Sans Mono
Straight (Lurus) forms of a, j, p, q, r, y are the defaults. Stylistic
set ss02 gives the sharp (Lancip) forms, ss01 the original Plus
Jakarta Sans forms, ss03 the swirl (Lingkar) forms. Details:
`sans/README.md` and `sans/RELEASE-NOTES-0.1.md`.
`sans/README.md` and `sans/RELEASE-NOTES-0.2.md`.

## machine-made Heddle

Expand Down Expand Up @@ -99,6 +99,7 @@ Sans (from the repository root):

```sh
python -m pip install -r sans/requirements.txt
# OTF hinting also needs otfautohint (afdko, Python 3.13): see sans/README.md
sans/scripts/build.sh # fonts/sans/{variable,ttf,otf,webfonts}
sans/scripts/check.sh fontspector # Fontspector and varLib.interpolatable
git clone https://github.com/tokotype/PlusJakartaSans /tmp/pjs
Expand Down
2 changes: 1 addition & 1 deletion STATUS.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
| Visibility | public after the 0.1 release (founder approved) |
| Stage | released 0.1: machine-made Weft 0.1.0, machine-made Sans 0.1.0, specimen site 0.1.0, machine-made Heddle 0.1.0. machine-made Warp 0.1 built on branch `warp/v0.1` |
| Gate now | Warp: Jac reviews the PR from `warp/v0.1`; the founder reviews the proofs; then the tags `warp-v0.1.0` and a new `site-v*` |
| Next task | Warp 0.2: the OpenType MATH table; Warp 0.3: the variable font (see `warp/STATUS.md`). Heddle 0.2 (see `heddle/STATUS.md`). Weft: polish (look-alikes l/1, I/1, O/0; heavy accented capitals), width axis, Thread style. Sans 0.2: redraw in the style of Weft and match Weft's x-height (see `sans/STATUS.md`). npm packages for both families. |
| Next task | Warp 0.2: the OpenType MATH table; Warp 0.3: the variable font (see `warp/STATUS.md`). Heddle 0.2 (see `heddle/STATUS.md`). Weft: polish (look-alikes l/1, I/1, O/0; heavy accented capitals), width axis, Thread style. Sans 0.2 (italic Cyrillic, OTF hinting, Latin Extended-A, kerning) on branch `sans/v0.2`; Sans 0.3: redraw in the style of Weft (see `sans/STATUS.md`). npm packages for both families. |
| Blocked by | none |
| Last green CI | none yet (first runs are on the release PR). Local end-to-end run of all steps on 2026-10-26: green |
| Owner model | to assign |
Expand Down
Binary file modified fonts/sans/otf/MachineMadeSans-Bold.otf
Binary file not shown.
Binary file modified fonts/sans/otf/MachineMadeSans-BoldItalic.otf
Binary file not shown.
Binary file modified fonts/sans/otf/MachineMadeSans-ExtraBold.otf
Binary file not shown.
Binary file modified fonts/sans/otf/MachineMadeSans-ExtraBoldItalic.otf
Binary file not shown.
Binary file modified fonts/sans/otf/MachineMadeSans-ExtraLight.otf
Binary file not shown.
Binary file modified fonts/sans/otf/MachineMadeSans-ExtraLightItalic.otf
Binary file not shown.
Binary file modified fonts/sans/otf/MachineMadeSans-Italic.otf
Binary file not shown.
Binary file modified fonts/sans/otf/MachineMadeSans-Light.otf
Binary file not shown.
Binary file modified fonts/sans/otf/MachineMadeSans-LightItalic.otf
Binary file not shown.
Binary file modified fonts/sans/otf/MachineMadeSans-Medium.otf
Binary file not shown.
Binary file modified fonts/sans/otf/MachineMadeSans-MediumItalic.otf
Binary file not shown.
Binary file modified fonts/sans/otf/MachineMadeSans-Regular.otf
Binary file not shown.
Binary file modified fonts/sans/otf/MachineMadeSans-SemiBold.otf
Binary file not shown.
Binary file modified fonts/sans/otf/MachineMadeSans-SemiBoldItalic.otf
Binary file not shown.
Binary file modified fonts/sans/ttf/MachineMadeSans-Bold.ttf
Binary file not shown.
Binary file modified fonts/sans/ttf/MachineMadeSans-BoldItalic.ttf
Binary file not shown.
Binary file modified fonts/sans/ttf/MachineMadeSans-ExtraBold.ttf
Binary file not shown.
Binary file modified fonts/sans/ttf/MachineMadeSans-ExtraBoldItalic.ttf
Binary file not shown.
Binary file modified fonts/sans/ttf/MachineMadeSans-ExtraLight.ttf
Binary file not shown.
Binary file modified fonts/sans/ttf/MachineMadeSans-ExtraLightItalic.ttf
Binary file not shown.
Binary file modified fonts/sans/ttf/MachineMadeSans-Italic.ttf
Binary file not shown.
Binary file modified fonts/sans/ttf/MachineMadeSans-Light.ttf
Binary file not shown.
Binary file modified fonts/sans/ttf/MachineMadeSans-LightItalic.ttf
Binary file not shown.
Binary file modified fonts/sans/ttf/MachineMadeSans-Medium.ttf
Binary file not shown.
Binary file modified fonts/sans/ttf/MachineMadeSans-MediumItalic.ttf
Binary file not shown.
Binary file modified fonts/sans/ttf/MachineMadeSans-Regular.ttf
Binary file not shown.
Binary file modified fonts/sans/ttf/MachineMadeSans-SemiBold.ttf
Binary file not shown.
Binary file modified fonts/sans/ttf/MachineMadeSans-SemiBoldItalic.ttf
Binary file not shown.
Binary file modified fonts/sans/variable/MachineMadeSans-Italic[wght].ttf
Binary file not shown.
Binary file modified fonts/sans/variable/MachineMadeSans[wght].ttf
Binary file not shown.
Binary file modified fonts/sans/webfonts/MachineMadeSans-Italic[wght].woff2
Binary file not shown.
Binary file modified fonts/sans/webfonts/MachineMadeSans[wght].woff2
Binary file not shown.
Loading