Automattic / Automattic/node-canvas
FreeType changes version according to Node version instead of node-canvas version.
- 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.