Skip to content

chore: merge master into develop - #1482

Merged
Garbee merged 6 commits into
developfrom
chore/merge-master-into-develop
Oct 15, 2026
Merged

Garbee merged 6 commits into
developfrom
chore/merge-master-into-develop

Conversation

@Garbee

@Garbee Garbee commented Oct 15, 2026

Copy link
Copy Markdown
Member

Brings the v4.14.0 release from master back into develop.

pnpm-lock.yaml conflicted between the two branches. Regenerating the lockfile for the merged result gives a file identical to develop's, so this branch takes develop's pnpm-lock.yaml and pnpm-workspace.yaml (the @parcel/watcher allowBuilds entry the lockfile needs). The merge into develop is now clean, with no extra merge commit on the branch.

No QA required

attest-team-ci and others added 6 commits October 6, 2026 20:03
#
[4.14.0](v4.13.0...v4.14.0)
(2026-10-06)

### Bug Fixes

* exempt axe-core from the pnpm release-age cooldown
([#1441](#1441))
([0bcb185](0bcb185)),
closes [#1346](#1346)
[#1346](#1346)
[#1442](#1442)
[#1346](#1346)

### Features

* Update axe-core to v4.14.0
([#1456](#1456))
([dccfe7a](dccfe7a))
`@axe-core/cli` prereleases built since #1430 install without an `axe`
bin, and `require('@axe-core/cli')` fails. This fixes the cause and adds
a CI check for every published package, so a broken package layout fails
a pull request instead of reaching a prerelease.

## Cause

#1430 set `"rootDir": "./src"` in `packages/cli/tsconfig.json` to
silence TS5011 under TypeScript 6. When the tests run through ts-node,
the program pulls in `../webdriverjs/dist`, which moves the inferred
common source directory outside the package. Setting the root to `./src`
moved the build output from `dist/src/` to `dist/`. `main`, `typings`
and `bin.axe` in `package.json` still pointed at `dist/src/`, so npm
skipped the bin.

## Change

- **CLI:** `rootDir` is now `"."`. TypeScript 6 still gets an explicit
root, and the `dist/src/` layout that every published path expects comes
back. No published path changes.
- **Package linting in CI:** `publint` and `@arethetypeswrong/cli` are
root devDependencies. Each published package has three new scripts:
- `pack:lint`: `pnpm pack` with lifecycle scripts disabled, written to
`node_modules/.cache/package-lint/`.
  - `lint:package`: `publint --strict` on that tarball.
  - `lint:types`: `attw` on that tarball.

Each job in `tests.yml` runs both lint scripts right after its build.
The `cli` job had no build step before and gains one.
- **ESM types (playwright, puppeteer, react, reporter-earl, webdriverio,
webdriverjs):** `exports["."].types` pointed ESM consumers at the CJS
`.d.ts`, which attw reports as "Masquerading as CJS". Each exports map
now has separate `import` and `require` conditions, each with its own
types (`.d.mts` and `.d.ts`). tsup already produced the `.d.mts` files.
- **react:** `files` now includes `dist/index.d.mts`. Before this, React
never published its ESM types.
- **reporter-earl:** adds `"files": ["dist"]`. It previously published
`src/`, `tests/` and its config files, 24 files in all. It now publishes
7.

### Why pack with pnpm and `ignore-scripts`

`attw --pack` uses `npm pack`, and publint's own packing runs `pnpm
pack` with scripts. Both run `prepare`, which reinstalls Playwright's
browsers and rebuilds `dist` in several packages. `npm pack` also leaves
the `workspace:` protocol in place, so the tarball would not match what
pnpm publishes. The CLI's attw call passes `--entrypoints .` because the
CLI has no `exports` map, and without one attw guesses a nonexistent
`@axe-core/cli/dist` subpath from `files`.

## Verification

| Check | Before | After |
| --- | --- | --- |
| CLI tarball: `.bin/axe` created, `npx axe --version` | missing / fails
| created / exit 0 |
| `publint --strict`, 7 packages | 7 fail | 7 pass |
| `attw`, 7 packages | 7 fail | 7 pass |
| `test:export`, 6 tsup packages | — | pass |
| CLI tests / coverage | — | 82 passing, branches 91.8% |

I also confirmed the checks catch both original bugs. Putting back the
old `rootDir` or a single top-level `types` in `exports` makes both lint
scripts fail.

Closes: #1465
(cherry picked from commit 839553f)
… (#1468)

## Details

Cherry-picks 839553f (#1467) from `develop` onto `release` so v4.14.0
ships with a working `axe` bin for `@axe-core/cli` and the
package-layout lint checks in CI. Applied cleanly with no conflicts; see
#1467 for the full change description.

Verified on this branch: `pnpm -r build`, `lint:package` and
`lint:types` pass for all 7 packages, CLI tests 82 passing.

Ref: #1465
## Changelog Additions:

#
[4.14.0](v4.13.0...v4.14.0)
(2026-10-06)

### Bug Fixes

* exempt axe-core from the pnpm release-age cooldown
([#1441](#1441))
([0bcb185](0bcb185)),
closes [#1346](#1346)
[#1346](#1346)
[#1442](#1442)
[#1346](#1346)

### Features

* Update axe-core to v4.14.0
([#1456](#1456))
([dccfe7a](dccfe7a))

_This PR was automatically created by a 🤖_
@Garbee
Garbee requested a review from a team as a code owner October 15, 2026 16:08
Copilot AI lite review requested due to automatic review settings October 15, 2026 16:08
@Garbee
Garbee enabled auto-merge October 15, 2026 16:13

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Critical package lint and ESM declaration build issues remain unresolved.

8 open findings
What changed in this PR

Merges the v4.14.0 release updates from master into develop.

Changes:

  • Updates package versions, exports, and changelogs.
  • Adds package and type validation.
  • Aligns CLI output and workspace build configuration.
File Description
test/​wdio/​package.json Updates test package version.
test/​wdio/​CHANGELOG.md Adds v4.14.0 entry.
test/​axe-core/​package.json Updates test package version.
test/​axe-core/​CHANGELOG.md Adds v4.14.0 entry.
pnpm-workspace.yaml Allows required package builds.
packages/​webdriverjs/​package.json Updates exports and package checks.
packages/​webdriverjs/​CHANGELOG.md Adds release notes.
packages/​webdriverio/​package.json Updates exports and package checks.
packages/​webdriverio/​CHANGELOG.md Adds release notes.
packages/​reporter-earl/​package.json Updates exports, files, and package checks.
packages/​reporter-earl/​CHANGELOG.md Adds release notes.
packages/​react/​package.json Updates exports, declarations, and package checks.
packages/​react/​CHANGELOG.md Adds release notes.
packages/​puppeteer/​package.json Updates exports and package checks.
packages/​puppeteer/​CHANGELOG.md Adds release notes.
packages/​playwright/​package.json Updates exports and package checks.
packages/​playwright/​CHANGELOG.md Adds release notes.
packages/​cli/​tsconfig.json Aligns build output paths.
packages/​cli/​package.json Updates version and package checks.
packages/​cli/​CHANGELOG.md Adds release notes.
package.json Adds package validation tooling.
lerna.json Updates repository version.
CHANGELOG.md Adds aggregate v4.14.0 notes.
.github/​workflows/​tests.yml Runs package and type validation.

🧠 Review effort: Lite


💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread packages/cli/package.json
"coverage": "nyc pnpm run test",
"lint:package": "pnpm run pack:lint && publint --strict ../../node_modules/.cache/package-lint/cli.tgz",
"lint:types": "pnpm run pack:lint && attw ../../node_modules/.cache/package-lint/cli.tgz --entrypoints .",
"pack:lint": "pnpm pack --config.ignore-scripts=true --out ../../node_modules/.cache/package-lint/cli.tgz"
"import": "./dist/index.mjs",
"require": "./dist/index.js"
"import": {
"types": "./dist/index.d.mts",
"prepare": "pnpm exec playwright install && pnpm run build",
"lint:package": "pnpm run pack:lint && publint --strict ../../node_modules/.cache/package-lint/playwright.tgz",
"lint:types": "pnpm run pack:lint && attw ../../node_modules/.cache/package-lint/playwright.tgz",
"pack:lint": "pnpm pack --config.ignore-scripts=true --out ../../node_modules/.cache/package-lint/playwright.tgz"
"import": "./dist/index.mjs",
"require": "./dist/index.js"
"import": {
"types": "./dist/index.d.mts",
"import": "./dist/index.mjs",
"require": "./dist/index.js"
"import": {
"types": "./dist/index.d.mts",
"import": "./dist/axeReporterEarl.mjs",
"require": "./dist/axeReporterEarl.js"
"import": {
"types": "./dist/axeReporterEarl.d.mts",
"import": "./dist/index.mjs",
"require": "./dist/index.js"
"import": {
"types": "./dist/index.d.mts",
"import": "./dist/index.mjs",
"require": "./dist/index.js"
"import": {
"types": "./dist/index.d.mts",
@Garbee
Garbee merged commit 55245d5 into develop Oct 15, 2026
23 checks passed
@Garbee
Garbee deleted the chore/merge-master-into-develop branch October 15, 2026 16:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants