Skip to content

Run the v4 toolchain in CI, and reset Fern Replay - #210

Merged
paul-paliychuk merged 1 commit into
v4from
fix/v4-ci-and-replay
Aug 24, 2026
Merged

Run the v4 toolchain in CI, and reset Fern Replay#210
paul-paliychuk merged 1 commit into
v4from
fix/v4-ci-and-replay

Conversation

@paul-paliychuk

@paul-paliychuk paul-paliychuk commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Two things kept the v4 generation red, neither of them SDK code.

CI ran bare yarn. The v4 TypeScript generator pins "packageManager": "pnpm@10.33.0" and emits a vitest config. yarn 1.x rejects that manifest outright:

error This project's package.json defines "packageManager": "yarn@pnpm@10.33.0".
However the current global version of Yarn is 1.22.22.

The job died during install, before compiling a line. Corepack activates the pinned pnpm instead. (The generated manifest is correct; the mangled string is yarn's own error formatting.)

Fern Replay was re-applying v3. .fern/replay.lock records each generation's tree hash and re-applies everything that has diverged since as a customization, independently of .fernignore. The lock here is v3's history, so v3's wrapper and its frozen package.json still read as customizations. Removing it lets v4 start clean; it also stops being frozen, since it is Fern's own state.


CI on this PR fails, and cannot pass in isolation

This is a sequencing constraint, not a defect. The workflow and the manifest have to change together:

  • this branch still carries v3's package.json (yarn@1.22.22) and yarn.lock, because Fern owns those files now and has not regenerated them yet
  • pnpm install --frozen-lockfile therefore has no pnpm-lock.yaml to read, and install fails
  • .github is deliberately frozen — the SDK Release audit fails closed otherwise — so the generation PR cannot carry this workflow change itself

What I can verify: the current generated head (#209) contains both package.json with pnpm@10.33.0 and a 59 KB pnpm-lock.yaml. So the moment a generation lands on top of this, install resolves and the job runs.

The sibling PRs are different: zep-python#338 and zep-go#103 are self-consistent and should go green on their own.

Two things kept the v4 generation red, neither of them SDK code.

CI ran bare yarn. The v4 TypeScript generator pins pnpm in package.json and
emits a vitest config, so yarn 1.x rejected the manifest and the job failed
during install, before compiling anything. Corepack activates the pinned pnpm
instead, and the test and build steps follow it.

Fern Replay records each generation's tree hash in .fern/replay.lock and
re-applies everything that has diverged since as a customization,
independently of .fernignore. The lock here is v3's history, so v3's wrapper
and its frozen package.json still read as customizations. Removing it lets v4
start with no recorded customizations, and it stops being frozen because the
file is Fern's own state.
@paul-paliychuk
paul-paliychuk merged commit 9289112 into v4 Aug 24, 2026
2 of 3 checks passed
@paul-paliychuk
paul-paliychuk deleted the fix/v4-ci-and-replay branch August 24, 2026 23:28
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.

1 participant