Commit Graph
1526 Commits
Author SHA1 Message Date
Zoltan Kochan d2c5ecbb63 chore(ci): run checks through pnpm pipelines (#14690)
Declare CI pipelines and root task scripts, and invoke them from the
TypeScript, Rust, reusable test, and pnpr build workflows. Let pipelines
perform frozen installs and order TypeScript compilation before linting.

Keep existing test runners responsible for affected-package selection,
file-level sharding, and summary generation. Read shard settings from the
workflow environment, with explicit command-line arguments taking precedence.

Run root tasks with --include-workspace-root --full: the scripts live in the
root manifest only, and the test runners already select their own scope. Pass
--no-cache so a task that later declares outputs cannot skip a check.

Keep the dependency install in its own step in the two jobs whose commands are
timed for Bencher, so the reported duration stays a test duration. Preserve
existing job gates and artifact handoffs.
2026-09-10 21:05:01 +02:00
Zoltan Kochanandgithub-actions[bot] a75be2f56d chore: update dependencies, Node.js, pnpm, and GitHub Actions (#14806)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-10 19:11:38 +02:00
Zoltan Kochanandgithub-actions[bot] c52f5d3686 chore: update dependencies, Node.js, pnpm, and GitHub Actions (#14762)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-10 08:33:20 +02:00
Zoltan Kochanandgithub-actions[bot] 2a762b7d53 chore: update dependencies, Node.js, pnpm, and GitHub Actions (#14681)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-08 13:29:35 +02:00
Zoltan Kochan 9440b519f3 feat(versioning): band package versions via the release engine and add pnpm change check (#13190)
Move pnpm's version banding and lockstep off the .meta-updater hacks and onto
the integrated versioning engine, then restore the PR-time drift guard the move
removed.

- versioning.epics bands every pnpm11/ library major to the pnpm CLI's major;
  versioning.fixed keeps [pnpm, @pnpm/exe, ...artifacts] in exact-version
  lockstep. Both live in pnpm-workspace.yaml. Removes the
  smallestAllowedLibVersion rewrite, the @pnpm/exe/artifact version forcing,
  the EXPERIMENTAL_PKGS set, and the semver dependency from .meta-updater.
- Adds `pnpm change check` (both stacks): a static counterpart to
  `pnpm change status` that validates committed versions against the epic bands
  and fixed-group lockstep, failing with every violation listed. Backed by
  checkVersioningInvariants / check_versioning_invariants in the versioning
  engine. Wired into CI via the check:versioning lint step so drift is caught at
  PR time, the way meta-updater --test used to catch it.
2026-09-05 11:59:37 +02:00
Zoltan Kochanandgithub-actions[bot] 024ec3b82d chore: update dependencies, Node.js, pnpm, and GitHub Actions (#14546)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-04 16:22:59 +02:00
Zoltan Kochanandgithub-actions[bot] abeac7a2f3 chore: update dependencies, Node.js, pnpm, and GitHub Actions (#14525)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-04 04:14:03 +02:00
Zoltan Kochanandgithub-actions[bot] ce66a532d4 chore: update dependencies, Node.js, pnpm, and GitHub Actions (#14491)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-03 02:48:21 +02:00
Zoltan Kochan d031affe00 fix: downgrade pnpm (#14489) 2026-09-03 01:18:53 +02:00
Zoltan Kochan d34902d5a6 chore: update dependencies, Node.js, pnpm, and GitHub Actions (#14400) 2026-09-02 18:35:33 +02:00
Zoltan Kochanandgithub-actions[bot] 7a0ccfb5ee chore: update dependencies, Node.js, pnpm, and GitHub Actions (#14395)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-09-01 03:03:33 +02:00
Zoltan Kochan 1d355de3b8 revert: "chore: adopt workspace task scheduler (#14331)" (#14339)
This reverts commit d1eed55e4c.
2026-08-29 22:37:25 +02:00
Zoltan Kochan d1eed55e4c chore: adopt workspace task scheduler (#14331)
* chore: adopt workspace task scheduler

Run package tests through the workspace scheduler with a concurrency limit matched to Jest workers.

Keep the one-shot compile artifact as the build barrier so test jobs do not repeat builds.

Use workspace-relative Jest cache paths so packages with the same basename cannot share output.

* fix: keep Jest caches inside workspace cache directory

Reject project directories outside the workspace before constructing Jest cache paths.
2026-08-29 18:15:56 +02:00
Zoltan Kochanandgithub-actions[bot] a3f44249db chore: update dependencies, Node.js, pnpm, and GitHub Actions (#14328)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-29 16:36:52 +02:00
Zoltan Kochan 03436d6880 fix: repair TS CI compile and lint after the dependency and Node.js update (#14206)
The dependency update (pnpm/pnpm#14205) broke TS CI / Compile & Lint in
two independent ways.

streamx 2.28.1 declares the 'data' event payload as unknown, so the five
tar-stream data handlers in the releasing commands that annotated the
chunk as Buffer no longer typechecked. They now take the chunk as
unknown and cast at the use site; tar-stream emits Buffers at runtime,
so the emitted JavaScript is unchanged.

The Node.js v26.8.0 binaries on nodejs.org were built with a bogus
version string and self-report as 26.8.0-alpha.0.0.0 (Node.js shipped
26.8.1 the next day to correct it). That prerelease-looking version made
cspell's engine guard reject the runtime during lint and made node-gyp
request a nonexistent v26.8.0-alpha.0.0.0 headers tarball for native
builds. The pinned runtime is bumped to 26.8.1 in the root devEngines,
the compile-only script, the CI test matrix, and the benchmark and
release workflows.
2026-08-27 00:49:41 +02:00
Zoltan Kochanandgithub-actions[bot] 2bd58ac4d4 chore: update dependencies, Node.js, pnpm, and GitHub Actions (#14205)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-27 00:16:37 +02:00
Zoltan Kochanandgithub-actions[bot] 07527caf1c chore: update dependencies, Node.js, pnpm, and GitHub Actions (#14122)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-25 14:06:01 +02:00
Zoltan Kochanandgithub-actions[bot] f33a1bdf9c chore: update dependencies, Node.js, pnpm, and GitHub Actions (#14120)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-24 01:33:19 +02:00
btea 6b983b51a9 chore: lint:ts script add concurrency option (#14049)
Explain what changed and why. Reference issues here too (Closes pnpm/pnpm#123).
2026-08-23 00:21:04 +02:00
Zoltan Kochanandgithub-actions[bot] c233e72abe chore: update dependencies, Node.js, pnpm, and GitHub Actions (#14006)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-20 23:27:00 +02:00
Zoltan Kochan 7606a3d540 chore: update dependencies (#14003) 2026-08-18 21:47:19 +02:00
John-David Dalton 11f703c7f3 chore(rust): use cargo fixit for the fix target and pin cargo-fixit (#13983)
Switch the fix target from `cargo clippy --fix` to `cargo fixit --clippy`
and pin `cargo-fixit@0.1.13` as a dev prerequisite. `cargo fixit` is faster
than `cargo clippy --fix` on repeated runs because it skips the full re-check
compile between fix rounds, so iterating on a lint cleanup doesn't rebuild
the workspace each pass. No fallback to `cargo clippy --fix`.

- justfile: add a `fix` recipe running
  `cargo fixit --clippy --workspace --all-targets --allow-dirty --allow-staged`
- justfile: install `cargo-fixit@0.1.13` from source (`cargo install ... --locked`)
  in `just init`; cargo-fixit has no prebuilt binstall binaries
- package.json: `fix:rust` now delegates to `just fix` (single source of truth,
  drops the `cargo clippy --fix` invocation)
- CONTRIBUTING: document cargo-fixit in the `just init` tool list and the
  `just fix` workflow
2026-08-18 10:50:00 +02:00
John-David Dalton b051218f03 chore: add fix:rust script for clippy autofix (#13968)
Add a `fix:rust` npm script that applies clippy's machine-applicable
autofixes across the Rust workspace via `cargo clippy --fix`, matching
the existing `build:pnpm` root invocation. Run on a dirty tree is
intended (--allow-dirty --allow-staged); review the diff before
committing.
2026-08-17 23:27:31 +02:00
Zoltan Kochan 1079a7813c chore: update dependencies (#13972)
* chore: update dependencies

* chore: update dependencies
2026-08-17 21:51:44 +02:00
Zoltan Kochanandgithub-actions[bot] 5d33ac39b0 chore: update dependencies, Node.js, pnpm, and GitHub Actions (#13871)
* chore: update dependencies, Node.js, pnpm, and GitHub Actions

* fix: update undici

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-13 18:53:42 +02:00
Zoltan Kochan 478aee6ab2 chore: update dependencies, Node.js, pnpm, and GitHub Actions (#13675) 2026-08-10 00:06:01 +02:00
Zoltan Kochanandgithub-actions[bot] b0e819458a chore: update dependencies, Node.js, pnpm, and GitHub Actions (#13668)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-05 23:57:22 +02:00
Zoltan Kochanandgithub-actions[bot] a93748005a chore: update dependencies, Node.js, pnpm, and GitHub Actions (#13577)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-08-03 16:45:01 +02:00
Zoltan Kochanandgithub-actions[bot] 4c85370bf7 chore: update dependencies, Node.js, pnpm, and GitHub Actions (#13515)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-31 01:24:21 +02:00
Zoltan Kochanandgithub-actions[bot] 13f5820de9 chore: update dependencies, Node.js, pnpm, and GitHub Actions (#13480)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-30 21:27:43 +02:00
Zoltan Kochan 95b1fd1ab2 chore: update pnpm to 12 beta 0 (#13486) 2026-07-29 11:40:18 +02:00
Zoltan Kochan 02f8807f56 fix(release): resume pacquet beta publish (#13483)
The first pnpm 12 beta release used pnpm 12.0.0-alpha.21 to publish a wrapper whose workspace name is `pacquet`. That version predates `publishConfig.name`, so npm trusted publishing was attempted for `pacquet` instead of `pnpm` and the root package failed after all native packages had already been published.

Use pnpm 11.18.0, the released TypeScript CLI that supports `publishConfig.name`, for release tooling. Update every `pnpm/setup` consumer to the revision that can install v11 from GitHub release archives. Make the Rust publishing loop query each effective published name and skip versions already on npm, while preserving hard failures for registry errors other than 404. This allows a moved beta tag to resume the partial release and reach the dependent GitHub release job.
2026-07-29 10:54:15 +02:00
Zoltan Kochan 9c3b5dbd00 chore: update pnpm to v12 alpha 21 (#13273) 2026-07-24 15:53:13 +02:00
Zoltan Kochan e8e3cdf53d chore: update pnpm to v12 alpha 20 (#13251) 2026-07-23 20:02:57 +02:00
Zoltan Kochan 5819fc671e chore(release): drop the packing workarounds and pin pacquet 12.0.0-alpha.19 (#13241)
* chore(release): drop the packing workarounds now that pacquet 12.0.0-alpha.19 is pinned

The pinned pacquet now carries the fs-packlist fix from
https://github.com/pnpm/pnpm/pull/13231, so a files allowlist wins over
workspace-inherited ignore rules and the release workflow no longer
needs to neutralize them: remove the empty pnpm11/pnpm/.npmignore
override, the temporary root .gitignore shadow, and the pre-publish
payload verification step (with its script) that guarded against the
now-fixed empty-tarball packing bug. The payload-verify step was also
what broke the v11.17.0 release: its filtered pn list fired a
verifyDepsBeforeRun auto-install that pruned the excluded pnpm
project's node_modules, so the darwin-arm64 artifact's prepublishOnly
could no longer resolve symlink-dir.

`@pnpm/prepare` and `@pnpm/prepare-temp-dir` were the only
publishable packages without a files allowlist; their lib/ payload
survived packing only through the .gitignore shadow. Give them files
allowlists so their tarballs no longer depend on workspace ignore
state.

* chore: record the pacquet 12.0.0-alpha.19 pin in the lockfile

* chore: drop the changeset - both files-allowlist fixes ship without a new version

The pending `@pnpm/prepare` 1100.0.22 is not on npm yet, so the rerun
of the v11.17.0 release publishes it with the files allowlist already
in place. `@pnpm/prepare-temp-dir` 1100.0.1 is already published with
correct tarball content (packed under the .gitignore shadow), so its
manifest-only change needs no republish. A changeset would only
schedule a patch release whose sole delta is the manifest field.
2026-07-23 18:13:15 +02:00
Zoltan Kochanandgithub-actions[bot] f7db39e48a chore: update lockfile, Node.js, and pnpm versions (#13187)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-22 23:16:11 +02:00
Zoltan Kochan 65f6828c26 chore: remove the dead concurrently dev dependency (#13193)
The only consumer of concurrently was the prepareFixtures script of
`@pnpm/installing.deps-restorer`, and that script has been dead since
the external `@pnpm/registry-mock` package (which shipped the
registry-mock bin the script starts with) was replaced by the in-repo
pnpr server: it fails at 'registry-mock prepare' before concurrently is
ever invoked. The fixture lockfiles it used to regenerate are committed
to git, and the jest with-registry preset manages the registry server
lifecycle itself (child_process spawn + tree-kill), so nothing needs
concurrently's --kill-others/--success=first orchestration anymore.

Remove the unused root devDependency, the deps-restorer devDependency
together with its dead prepareFixtures/runPrepareFixtures scripts, and
the concurrently catalog entry. The root devDependency was not
referenced by any root script at all.
2026-07-21 13:25:26 +02:00
Zoltan Kochanandgithub-actions[bot] 9bc24c98f6 chore: update lockfile, Node.js, and pnpm versions (#13165)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-20 10:08:08 +02:00
Zoltan Kochanandgithub-actions[bot] f5cfdc1fe1 chore: update lockfile, Node.js, and pnpm versions (#13070)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-18 14:43:47 +02:00
Zoltan Kochanandgithub-actions[bot] 303bfa380b chore: update lockfile, Node.js, and pnpm versions (#13057)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-16 00:34:41 +02:00
Zoltan Kochanandgithub-actions[bot] 0f19557421 chore: update lockfile, Node.js, and pnpm versions, and fix Windows store-cache installs (#13026)
* chore: update lockfile, Node.js, and pnpm versions

* ci: force a cold pnpm store to confirm the Windows cache corruption

The Windows Rust CI install fails with ERROR_DIRECTORY (os error 267)
creating symlinks over a store restored from actions/cache. With
enableGlobalVirtualStore on, the cached store holds the global-virtual-store
`links/` reparse points, which tar can't round-trip, so the restored store
is corrupt and a warm install fails on symlink creation. The failure moves
between symlinks run to run (parallel linking picks a different victim),
which is why the alpha.12 symlink-writer fix could not cover it.

Bump the cache key to force a cold store. If Windows goes green, the cache
is confirmed as the cause and the durable fix is to stop caching `links/`.

* fix(fs): heal a dangling junction parent when materializing a symlink

alpha.12 tried to recover from a dangling `node_modules` junction (e.g. a
store restored from a tar-based CI cache) by keying on ERROR_DIRECTORY
(os error 267), but the real path is different: `CreateSymbolicLinkW`
through a dangling junction returns NotFound, and the NotFound recovery's
`create_dir_all` then fails with AlreadyExists (os error 183) because the
junction still occupies the slot. So the 267 branch never fired and the
install aborted.

Handle it where it actually happens: when `create_dir_all` on the
symlink's parent fails and the parent is a reparse point, remove the
dangling junction (unlinking only the junction, never a live target),
rebuild a real directory, and retry. Drops the dead 267 branch.

* ci: exclude the global-virtual-store links/ tree from the pnpm store cache

The GVS `links/` tree is Windows directory junctions, which tar
(actions/cache) can't round-trip: a restored store came back with
dangling junctions and installs failed creating symlinks. Exclude
`links/` from the cached path so only the CAS content is cached; pnpm
regenerates `links/` fresh on every install. The `nolinks` key abandons
the old caches that still hold `links/`.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-15 13:49:42 +02:00
Zoltan Kochanandgithub-actions[bot] 30a59d0209 chore: update lockfile, Node.js, and pnpm versions (#13003)
* chore: update lockfile, Node.js, and pnpm versions

* chore: pin packageManagerDependencies specifier to the resolved pnpm version

The update-lockfile workflow recorded the next-12 dist-tag as the
packageManagerDependencies specifier, but the manifest pins pnpm to
12.0.0-alpha.11. pacquet validates the specifier against the manifest, so a
later --frozen-lockfile install failed with
ERR_PNPM_FROZEN_LOCKFILE_WITH_OUTDATED_LOCKFILE. Record the resolved pin so the
specifier matches the wanted version.

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-14 22:04:18 +02:00
Zoltan Kochanandgithub-actions[bot] d3ed5da76c chore: update lockfile, Node.js, and pnpm versions (#12989)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-14 00:10:37 +02:00
Zoltan KochanandClaude Opus 4.8 6dcfadd5ae fix(release): sync Rust product versions via the meta-updater (#12988)
The Rust CLI and pnpr embed the versions their release builds report and
verify (`PNPM_VERSION` in pnpm/crates/config/src/defaults.rs, the crate
version in pnpr/crates/pnpr/Cargo.toml, and its Cargo.lock entry). These
were mirrored from the npm wrappers by `syncRustVersions` in bump.ts — a
step separate from the meta-updater, so running `pnpm version -r` without
the full bump flow bumped the wrappers (pacquet 12.0.0-alpha.10, pnpr
0.1.0-alpha.2) while the Rust sources stayed at the previous versions. The
release workflow's "Verify the committed version" step then failed, and
nothing caught the drift before the tag.

Move the sync into the meta-updater as a set of Rust-source file handlers,
so it is written by `pnpm update-manifests` and, crucially, validated by
`meta-updater --test` in pre-push and CI — a missed sync now fails locally
instead of at release time. bump.ts drops the redundant `syncRustVersions`
and runs `pnpm update-manifests` after `pnpm version -r`; the root `bump`
script no longer needs its own trailing `update-manifests`.

Regenerating brings the Rust sources up to the already-bumped wrapper
versions (alpha.10 / alpha.2), unblocking the release.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-13 23:24:21 +02:00
Zoltan Kochanandgithub-actions[bot] fe4dad55ca chore: update lockfile, Node.js, and pnpm versions (#12802)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-07-13 14:52:19 +02:00
Zoltan Kochan d3e1383ff4 feat(release): unify the TypeScript, Rust and pnpr release flows on pnpm's native versioning (#12949)
Merge the three release flows (TypeScript, Rust CLI + @pnpm/napi, pnpr)
into a single flow driven by pnpm's native workspace versioning
(pnpm/pnpm#12953), dropping the @changesets/cli dependency (Closes
pnpm/pnpm#12947).

The native engine keys package identity on the workspace directory, so
the Rust CLI wrapper is named pnpm (the v12 line at pnpm/npm/pnpm) and
shares the published name with the TypeScript CLI at pnpm11/pnpm.
Release configuration moves from .changeset/config.json to the
versioning key of pnpm-workspace.yaml: versioning.lanes puts the Rust
CLI, @pnpm/napi, and @pnpm/pnpr on an alpha lane (X.Y.Z-alpha.N
prereleases published under next) while the TypeScript CLI releases
stable on the main lane; versioning.fixed keeps the Rust CLI and
@pnpm/napi at one shared version; versioning.ignore freezes
@pnpm/logger, which is consumed as a catalog: peer the engine would
otherwise reject as an internal range.

Lanes replace the hand-rolled prerelease continuation, and the
committed .changeset/ledger.yaml replaces the .changeset-released
directory as the cherry-pick-safe record of consumed intents. bump.ts
drops both and is now just pnpm version -r plus syncRustVersions, which
mirrors the bumped wrapper versions into defaults.rs and the pnpr crate
version.

Because two workspace projects are named pnpm, name-based --filter=pnpm
is qualified by directory (pnpm{pnpm11/pnpm}) across the build and
release scripts, the meta-updater excludes the Rust wrappers by
directory, and changesets targeting the TypeScript CLI reference it as
./pnpm11/pnpm. release.yml's plan job gates per-product publish jobs on
which committed versions are unpublished; everything publishes via
trusted publishing. @changesets/cli, .changeset/config.json, and the
standalone pacquet/pnpr release workflows are removed; their npm
trusted-publisher bindings must be re-pointed at release.yml before the
first unified release.

pnpm-lock.yaml is regenerated from scratch: an incremental
--lockfile-only resolve after the @changesets/cli removal hit a pacquet
incremental-resolver bug (pnpm/pnpm#12958) that emptied a peer-context
snapshot the CLI depends on and broke the bundle build. A from-scratch
resolve is correct; the bug is filed separately.
2026-07-13 11:11:41 +02:00
Zoltan Kochan 1f530acb59 chore: update pnpm to v12.0.0-alpha.8 (#12946) 2026-07-11 23:05:25 +02:00
Zoltan Kochan 7bb4e94dda chore: update pnpm (#12929) 2026-07-11 03:28:55 +02:00
Zoltan Kochan 0609982b29 refactor(pacquet): ship the CLI under its final pnpm name (#12923)
* **New Features**
  * The CLI build and distributed archives are now `pnpm`, with updated dev commands and release artifacts.
  * Shell completions are consistently branded as `pnpm` and generate `pnpm completion-server` wiring.
* **Bug Fixes**
  * Version output/user-agent reporting now aligns with `pnpm`.
  * Diagnostics and retry-related error codes are updated to `ERR_PNPM_*`.
* **Documentation**
  * Updated E2E and integrated-benchmark guides to reference `pnpm` build outputs.
  * SBOM metadata now identifies the tool as `pnpm`.
* **Chores**
  * Updated CI E2E/benchmark workflows and test suites to run the `pnpm` binary.
2026-07-11 02:07:14 +02:00
Zoltan Kochan 84e3d3bffe chore: trust pnpm publishes and update pnpm to v12.0.0-alpha.6 (#12920) 2026-07-10 22:18:54 +02:00