Skip to content

Commit b4acb0e

Browse files
committed
chore: add CI workflow and update roadmap
Runs typecheck/lint/lint:comments/format:check/test/test:visual on every push and PR via GitHub Actions -- free and unlimited for this public repo. Pins Node via .nvmrc + package.json engines so CI and local dev stay on the same version. docs/roadmap.md: mark the remaining "Not yet supported" gaps (<mask>, filter) as blocked on external constraints rather than open work, and add a spec-audit pass before npm publish.
1 parent 2f55d99 commit b4acb0e

4 files changed

Lines changed: 40 additions & 3 deletions

File tree

.github/workflows/ci.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
ci:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v7
16+
17+
- uses: actions/setup-node@v7
18+
with:
19+
node-version-file: '.nvmrc'
20+
cache: 'npm'
21+
22+
- run: npm ci
23+
24+
- run: npm run typecheck
25+
- run: npm run lint
26+
- run: npm run lint:comments
27+
- run: npm run format:check
28+
- run: npm run test
29+
- run: npm run test:visual

.nvmrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
24

docs/roadmap.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,14 @@
44

55
Not just "worker-safe" — every package should run in all three environments. Any new adapter should be designed against this requirement from the start, not patched in afterward.
66

7-
## Feature gaps to close
7+
## Feature gaps
88

9-
See `docs/supported-features.md`'s "Not yet supported" list.
9+
`<mask>` and `filter="url(#...)"` (see `docs/supported-features.md`'s "Not yet supported" list) are both blocked on external constraints, not svg-pdf's own work — `<mask>` needs `@libpdf/core` to expose soft-mask support first, and `filter` is a hard PDF-format limitation. Nothing actionable remains here for now.
10+
11+
## Before npm publish: spec audit
12+
13+
Go feature-by-feature through `docs/supported-features.md`'s "Supported" list, checking each one against the relevant SVG2/PDF spec section plus its existing tests/fixtures — re-verifying what's already claimed as supported, not searching for net-new features. (A full read of the SVG2/PDF specs from scratch is out of scope; that's a much bigger, open-ended effort than this project needs right now.)
1014

1115
## After that
1216

13-
CI, npm publish.
17+
npm publish.

package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
"name": "svg-pdf",
33
"private": true,
44
"type": "module",
5+
"engines": {
6+
"node": ">=24"
7+
},
58
"workspaces": [
69
"packages/*"
710
],

0 commit comments

Comments
 (0)