Skip to content
Merged
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
18 changes: 18 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,24 @@ updates:
update-types:
- minor
- patch
ignore:
# Two TypeScripts live here and they are not free to move together. The build
# runs 7; `tools/docs` pins 6.0.3 because typedoc's peer range stops at 6.0.x,
# and 6.0.3 is the newest version that range allows. Dependabot matches by
# dependency name and cannot tell the two apart, so it proposed 6.0.3 → 7.0.2
# for the docs package the day this repository went public — an upgrade that
# would leave typedoc unable to load.
#
# Majors are blocked here as a result, which also means the build's own
# TypeScript major is a deliberate, manual bump. The question to answer first
# is always the same: has typedoc's peer range moved?
#
# npm view typedoc version peerDependencies
#
# If it accepts the new major, raise both together. If it does not, the pin
# stays and this rule is why. Minors and patches are unaffected.
- dependency-name: typescript
update-types: ["version-update:semver-major"]

# One PR for all action bumps — they are independent of each other and of the npm
# tree. Pinned at the current majors here, so the first weekly run should be quiet.
Expand Down
15 changes: 15 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,21 @@ Node 22 and pnpm 11 (`corepack enable` picks up the pinned version).
| `config/` | Shared tool configuration; `api-extractor-base.json` is the API gate's |
| `tools/docs` | TypeDoc, in a package of its own because it needs a TypeScript the build does not use |

**Two TypeScripts, and they do not move together.** The build runs 7; `tools/docs` pins
6.0.3, because typedoc's peer range stops at `6.0.x` and 6.0.3 is the newest version it
accepts. Dependabot matches by name and cannot tell the two apart, so majors are ignored
for `typescript` — which makes the build's own major a manual decision.

Before touching either pin, ask what decides it:

```sh
npm view typedoc version peerDependencies # has the range moved?
```

If typedoc accepts the newer major, raise both and drop the ignore. If it has not, the
pin stays — and a "typescript is out of date" report is answered by that command rather
than by bumping.

Where a test goes follows from what it can see. Logic that can be checked without a
canvas belongs in a package's own suite, because it runs in a second. Anything about what
is *painted* — geometry, continuity, whether a click lands on the byte that was drawn —
Expand Down