Skip to content

fix(template): resolve the template pnpm lock with pnpm 11.1.2 - #728

Open
pkosiec wants to merge 2 commits into
mainfrom
pkosiec/template-sync-pnpm-11.1.2
Open

pkosiec wants to merge 2 commits into
mainfrom
pkosiec/template-sync-pnpm-11.1.2

Conversation

@pkosiec

@pkosiec pkosiec commented Nov 10, 2026

Copy link
Copy Markdown
Member

Summary

The v0.91.3 release failed in the template sync step:

[ERR_PNPM_MISSING_TIME] The metadata of @babel/core is missing the "time" field

publish-template-tag.ts sets minimumReleaseAge (#726), which puts pnpm in strict mode. Public npm serves abbreviated metadata without per-version time. pnpm 11.0.8 then throws instead of fetching full metadata. The bug is pnpm/pnpm#11619, fixed in pnpm/pnpm#11622 and released in pnpm 11.1.2.

Changes

  • The template sync runs npx --yes pnpm@11.1.2 for the template's pnpm install, plus the preflight.
  • pnpm_config_pm_on_fail=ignore stops pnpm from switching to the template's packageManager pin.
  • The template still pins pnpm@11.0.8, which is the version the Apps runtime bundles. The rest of the repo stays on 11.0.8 too.

Why only the template step

This is the only place that resolves with minimumReleaseAge. Repo installs and CI use --frozen-lockfile, and the PR template job resolves through a registry that returns full metadata.

Testing

Ran against a local registry proxy that strips time from abbreviated metadata, the way public npm does. The internal npm proxy always returns full metadata, which is why this passed before.

  • publish-template-tag.ts 0.91.3 with pnpm 11.1.2 passes: install, commit, tag, push (to a local bare repo).
  • The same script with pnpm 11.0.8 fails with ERR_PNPM_MISSING_TIME, matching the release.
  • pnpm 11.1.2 writes a template lockfile byte-identical to 11.0.8's (same 803 packages).
  • pnpm 11.0.8 install --frozen-lockfile accepts it.
  • No locked version is newer than 7 days.

This pull request and its description were written by Isaac.

pkosiec and others added 2 commits November 10, 2026 19:26
The v0.91.3 template sync failed with ERR_PNPM_MISSING_TIME. With
minimumReleaseAge set explicitly, pnpm runs in strict mode, and pnpm
11.0.8 rethrows on abbreviated npm metadata (no per-version time)
instead of fetching full metadata. Fixed in pnpm 11.1.2
(pnpm/pnpm#11619, pnpm/pnpm#11622).

The sync now runs pnpm@11.1.2 through npx for the template install only,
with pm-on-fail=ignore so it doesn't switch to the template's
packageManager pin. The template keeps pnpm@11.0.8, which the Apps
runtime bundles; 11.1.2 writes the same lockfile and 11.0.8 installs it
with --frozen-lockfile.

Co-authored-by: Isaac <no-reply@databricks.com>
Signed-off-by: Pawel Kosiec <pawel.kosiec@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Signed-off-by: Pawel Kosiec <pawel.kosiec@databricks.com>
@pkosiec
pkosiec marked this pull request as ready for review November 10, 2026 18:31
@pkosiec
pkosiec requested a review from a team as a code owner November 10, 2026 18:31
@github-actions

Copy link
Copy Markdown
Contributor

🤖 AppKit PR bot

🔬 Run evals

Start an eval for this PR from the evals-monitor app: Go to Evals Monitor →

📦 Try this PR's app template

Scaffolds a new app from this PR's SDK build. Run it in any folder (requires the GitHub CLI — gh auth login — and the Databricks CLI):

gh run download 42875734935 -R databricks/appkit -n appkit-template-0.91.3-pr.44706b6-pkosiec-template-sync-pnpm-11-1-2-728 -D appkit-pr-728 \
  && unzip -o "appkit-pr-728/appkit-template-0.91.3-pr.44706b6-pkosiec-template-sync-pnpm-11-1-2-728.zip" -d "appkit-pr-728" \
  && databricks apps init --template "appkit-pr-728"

The template pins @databricks/appkit and @databricks/appkit-ui to tarballs built from this branch, so the scaffolded app runs against this PR's code.

This branch has not been deployed

No deployments
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