Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
58eef2d
Move prebuildify to dev dependencies
miafan23 Jun 10, 2025
9bacb79
Changelog
AlexanderBelokon Jul 1, 2025
f7f6f46
Bumo ubuntu
AlexanderBelokon Jul 1, 2025
b6e195b
Bump MacOS runners
AlexanderBelokon Jul 1, 2025
bbb31c9
Macos 13
AlexanderBelokon Jul 1, 2025
64e4c1e
MacOS 12?
AlexanderBelokon Jul 1, 2025
962045b
Install python too
AlexanderBelokon Jul 1, 2025
c6810d5
MacOS 13
AlexanderBelokon Jul 1, 2025
4fece2e
Node 16
AlexanderBelokon Jul 1, 2025
342ccd1
Update gyp
AlexanderBelokon Jul 1, 2025
9738c78
Add standard defines
AlexanderBelokon Jul 1, 2025
6c269f5
More includes
AlexanderBelokon Jul 1, 2025
3975e4b
Update LLVM
AlexanderBelokon Jul 1, 2025
aef548d
LLVM 12
AlexanderBelokon Jul 1, 2025
d01cad0
env
AlexanderBelokon Jul 1, 2025
e23125d
Only mac gyp
AlexanderBelokon Jul 1, 2025
ac7356a
Fixed the Mason repository 403 error by adding support for using the …
AlexanderBelokon Jul 1, 2025
bf84001
Fix gpp
AlexanderBelokon Jul 1, 2025
f4d630a
Bump upload artifacts
AlexanderBelokon Jul 1, 2025
db335dd
Why no ci build?
AlexanderBelokon Jul 1, 2025
62afa39
Bump node
AlexanderBelokon Jul 1, 2025
f137d10
Unify settings
AlexanderBelokon Jul 2, 2025
d35af07
Overwrite
AlexanderBelokon Jul 2, 2025
526b151
Name artifact
AlexanderBelokon Jul 2, 2025
7daf5aa
merge prebuilds folders
miafan23 Jul 4, 2025
11e3ac4
add prepublish hook
miafan23 Jul 4, 2025
a19a4e9
clean prebuilds
miafan23 Jul 4, 2025
d530fd3
changelog
miafan23 Jul 4, 2025
9f565bf
Update .github/workflows/builds.yml
miafan23 Jul 4, 2025
ed67262
improve script
miafan23 Jul 4, 2025
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
49 changes: 37 additions & 12 deletions .github/workflows/builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,28 @@ on:
pull_request:
branches: [master]

env:
CC: clang
CXX: clang++
MASON_LLVM_RELEASE: system
PYTHON_VERSION: 3.11
NODE_VERSION: 16

jobs:
test:
runs-on: ${{ matrix.os.host }}
strategy:
matrix:
node: [14, 16, 18]
node: [16, 18]
build_type: ["debug", "release"]
os:
- name: darwin
architecture: x86-64
host: macos-10.15
host: macos-13

- name: linux
architecture: x86-64
host: ubuntu-20.04
host: ubuntu-22.04

name: ${{ matrix.os.name }}-${{ matrix.os.architecture }}-node${{ matrix.node }}-${{ matrix.build_type }} test
steps:
Expand All @@ -29,16 +36,25 @@ jobs:
with:
node-version: ${{ matrix.node }}

- uses: actions/setup-python@v4
if: matrix.os.name == 'darwin'
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Gyp
if: matrix.os.name == 'darwin'
run: npm install node-gyp@latest

- name: Test
run: |
npm ci
npm install node-gyp@latest
./scripts/setup.sh --config local.env
source local.env
make ${{ matrix.build_type }}
npm test

asan-build-test:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
name: ASAN toolset test
env:
BUILDTYPE: debug
Expand All @@ -47,7 +63,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "14"
node-version: ${{ env.NODE_VERSION }}

- name: Test
run: |
Expand All @@ -63,7 +79,7 @@ jobs:
unset LD_PRELOAD

g-build-test:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
name: G++ build test
env:
BUILDTYPE: debug
Expand All @@ -74,7 +90,7 @@ jobs:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "14"
node-version: ${{ env.NODE_VERSION }}

- name: Test
run: |
Expand All @@ -92,20 +108,29 @@ jobs:
os:
- name: darwin
architecture: x86-64
host: macos-10.15
host: macos-13

- name: linux
architecture: x86-64
host: ubuntu-20.04
host: ubuntu-22.04

steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: "16"
node-version: ${{ env.NODE_VERSION }}

- uses: actions/setup-python@v4
if: matrix.os.name == 'darwin'
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Gyp
if: matrix.os.name == 'darwin'
run: npm install node-gyp@latest

- name: Build
run: |
npm ci
./scripts/setup.sh --config local.env
source local.env
make release
Expand All @@ -114,8 +139,8 @@ jobs:
run: npm run prebuildify -- --platform=${{ matrix.os.name }} --arch=x64

# Upload the end-user binary artifact
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: prebuilds
name: prebuilds-${{ matrix.os.name }}-${{ matrix.os.architecture }}
path: prebuilds
retention-days: 14
45 changes: 27 additions & 18 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,26 @@
# 0.7.2
# CHANGELOG

## 0.7.4
- Fix publish with new CI

## 0.7.3

- Moves `prebuildify` to dev dependencies. [#193](https://github.com/mapbox/node-fontnik/pull/193)

## 0.7.2

- Removes `node-pre-gyp` in favor of `prebuildify` to package binaries. [#184](https://github.com/mapbox/node-fontnik/pull/184)

# 0.7.1
## 0.7.1

- Fixes issue with `point-in-polygon` algorithm being used in `sdf-glyph-foundary`

# 0.7.0
## 0.7.0

- Adds node v16 support
- Updates vulnerable dependencies

# 0.6.0
## 0.6.0

- Adds node v12 and v14 support
- Dropped node v4 and v6 support
Expand All @@ -20,17 +29,17 @@
- Requires c++14 compatible compiler
- Binaries are published using clang++ 10.0.0

# 0.5.2
## 0.5.2

- Adds .npmignore to keep downstream node_modules small.

# 0.5.1
## 0.5.1

- Stopped bundling node-pre-gyp
- Added support for node v8 and v10
- Various performance optimizations and safety checks

# 0.5.0
## 0.5.0

- Fixed crash on font with null family name
- Optimized the code to reduce memory allocations
Expand All @@ -43,50 +52,50 @@
- Upgraded from protobuf 2.6.1 -> 3.2.0
- Moved coverage reporting to codecov.io

# 0.4.8
## 0.4.8

- Bundles `mkdirp` to avoid an npm@2 bug when using `bundledDependencies` with `devDependencies`.

# 0.4.7
## 0.4.7

- Upgrades to a modern version of Mason.

# 0.4.6
## 0.4.6

- Adds prepublish `npm ls` script to prevent publishing without `bundledDependencies`.

# 0.4.5
## 0.4.5

- Fixes Osaka range segfault.

# 0.4.4
## 0.4.4

- Fix initialization of `queue-async` in `bin/build-glyphs`.

# 0.4.3
## 0.4.3

- Handle `ft_face->style_name` null value in `RangeAsync`.

# 0.4.2
## 0.4.2

- Handle `ft_face->style_name` null value in `LoadAsync`.

# 0.4.1
## 0.4.1

- Publish Node.js v5.x binaries.
- Autopublish binaries on git tags.

# 0.4.0
## 0.4.0

- Fixes bounds for short ranges.
- Fixes Travis binary publishing.
- Adds Node.js v4.x support.

# 0.2.6
## 0.2.6

- Truncate at Unicode point 65535 (0xFFFF) instead of 65533.

# 0.2.3
## 0.2.3

- Calling .codepoints() on an invalid font will throw a JavaScript
error rather than running into an abort trap.
2 changes: 1 addition & 1 deletion DEV.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ git push --tags
# test published binary (should install from remote)
npm install && npm test

# Make sure that the GHA workflow is successfull. Download the artifacts
# Make sure that the GHA workflow is successful. Download the artifacts
npm run download-binaries

# publish to npm
Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ make

See the `Makefile` for additional tasks you can run, such as `make coverage`.

## Release
See the [Dev doc](./DEV.md)

## Background reading
- [Drawing Text with Signed Distance Fields in Mapbox GL](https://www.mapbox.com/blog/text-signed-distance-fields/)
- [State of Text Rendering](http://behdad.org/text/)
Expand Down
Loading