Automattic / Automattic/node-canvas

FreeType changes version according to Node version instead of node-canvas version.

Open
#1,964 0 comments 0 reactions 0 assignees View on GitHub
Text & Fonts
Dominant language
JavaScript
Stars
10.7k
Forks
1.2k
Avg merge
4d 8h
Merged PRs (30d)
1

Description

## Issue

Changing node version (not node-canvas) will update FreeType too.
This seems like an odd decision:

Node 12 + Canvas 2.7 = FreeType 2.9.1
Node 12 + Canvas 2.8 = FreeType 2.10.4
**Node 16 + Canvas 2.7 = FreeType 2.10.4** (!!!) :warning:
Node 16 + Canvas 2.8 = FreeType 2.10.4

We need to upgrade Node but also maintain text rendering compatibility, but a change (probably an improvement) in FreeType introduces a visual change for some fonts' rendering and also different metrics (width, bounding box, alpha baseline) that's affecting us.

Is this version upgrade intended for a reason? Is there a way to avoid using `FreeType 2.10.4` for `Node 16 + Canvas 2.7.0`?

Thank you for your time.

## Steps to Reproduce
```
const { version: canvasVersion, freetypeVersion} = require('canvas');
console.log(' node version' + process.version);
console.log(' canvas version' + canvasVersion);
console.log('freetype version' + freetypeVersion);
```
To change environments I use nvm (example for Node 12 canvas 2.7.0):
```
nvm use 12
npm i canvas@2.7.0
npm ci
node example.js
```

## Your Environment
Multiple:
* canvas `canvas@2.7.0` and `canvas@2.8.0`
* Node `v12.22.1` and `v16.13.0`
* OS `Ubuntu 20.04.3 LTS`

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.