Skip to content

check-adr-0087-registration.mjs and objectui-changeset-digest.mjs --self-test fail on macOS, unrelated to any diff #10303

Description

@os-zhuang

Observed while working #10221, on this container's macOS host — both failures reproduce on an UNMODIFIED checkout (neither script is touched by #10221's diff; PR #10301), so they are pre-existing/environmental, not something a normal PR's changes trigger.

1. check-adr-0087-registration.mjs --self-test — 3 I2 failures

pnpm run check:changeset-gate-self-tests

fails with:

✗ check-adr-0087-registration --self-test -- 3 failure(s)
  • I2: the entry point must still run the gate and exit 1 on red (got 0)
  • I2: the entry point must report the real verdict
  • I2: --list must still print its table

The real (non-self-test) invocation against a live diff works correctly — node scripts/check-adr-0087-registration.mjs (no flag) passed cleanly on #10221's actual changeset. The failure is isolated to I2, which appears to test the entry point's behavior when spawned as a subprocess (exit code / verdict propagation) — plausibly sensitive to a macOS vs Linux subprocess/exit-code difference, not diagnosed further here.

2. objectui-changeset-digest.mjs --self-test — ENOENT on its own temp fixture

pnpm run check:objectui-changeset

fails with:

Error: ENOENT: no such file or directory, open '/var/folders/.../objectui-digest-selftest-<random>/fw-degraded/.changeset/console-<hash>.md'
    at readFileSync (node:fs:436:20)
    at selfTest (scripts/objectui-changeset-digest.mjs:1554:22)

This gate (check:objectui-changeset) is self-test only — its package.json entry is objectui-changeset-digest.mjs --self-test && objectui-range.mjs --self-test, with no real-diff-scanning invocation to fall back on, so there's no way to independently confirm the underlying logic is sound from this host. The self-test appears to write a fixture file into a per-run macOS /var/folders/... temp dir and then fail to read it back — looks like a race or a path-construction bug that only surfaces off Linux's typical /tmp, not diagnosed further here.

Why this matters

Both are part of check:changeset-gate-self-tests, named by scripts/pm/dispatch-gates.mjs for any PR touching .changeset/*, i.e. most user-facing PRs. On a macOS dev container both gates report red regardless of the actual diff, which — per this repo's own "read the gate's own verdict line, not schedule" convention — reads as a real local failure even though it says nothing about the PR's content. Filed as finding (observational, not a confirmed regression) since root cause is unconfirmed here; may be macOS-specific in the same family as #10289 (bash 3.2's missing mapfile/EPOCHSECONDS) and the /proc+flock gap noted in a comment on #10289 — this container has surfaced several Linux-only assumptions today.

No assignee; not filed against #10221's file surface (packages/core) so out of scope for that PR.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions