Skip to content

chore(create-objectstack): drop deprecated @types/tar devDependency - #3360

Merged
os-zhuang merged 2 commits into
mainfrom
chore/drop-types-tar
Jul 20, 2026
Merged

chore(create-objectstack): drop deprecated @types/tar devDependency#3360
os-zhuang merged 2 commits into
mainfrom
chore/drop-types-tar

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

What

Remove the @types/tar devDependency from packages/create-objectstack.

Why

tar v7 ships its own TypeScript declarations (its types field points at dist/commonjs/index.d.ts), so the standalone @types/tar stub package is deprecated and redundant. Its only effect today is a warning on every install:

packages/create-objectstack | WARN deprecated @types/tar@7.0.87

The npm registry stub even says so: "tar provides its own type definitions, so you do not need this installed."

Verification

  • import * as tar from 'tar' in src/index.ts resolves against tar's bundled types.
  • pnpm -C packages/create-objectstack build (tsup) ✅
  • tsc --noEmit: no new errors and no tar-related error — the 5 pre-existing errors are all in src/templates/** (scaffold files referencing workspace packages, unchanged from main).
  • Lockfile diff is 11 deletions, all @types/tar; the package no longer appears anywhere in pnpm-lock.yaml.

Release impact

None. devDependency-only — not shipped to consumers, dist/ byte-identical. Empty changeset (no version bump); create-objectstack is in the lockstep fixed group, so a patch would needlessly bump the whole stack for a no-op.

🤖 Generated with Claude Code

tar v7 ships its own TypeScript declarations, so the standalone @types/tar
stub is deprecated and redundant — it only emitted a `WARN deprecated
@types/tar@7.0.87` line on every `pnpm install`. `import * as tar from 'tar'`
now resolves against tar's bundled types; the package still builds and
type-checks clean, and dist/ is byte-identical.
devDependency-only, ships nothing (empty changeset — create-objectstack is in
the lockstep fixed group and must not drag the stack up a patch for a no-op).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercelBot commented Jul 20, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
specReadyReadyPreview, CommentJul 20, 2026 2:11pm

Request Review

@github-actionsgithub-actionsBot added documentation Improvements or additions to documentation dependencies Pull requests that update a dependency file tooling size/s labels Jul 20, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

This PR changes 1 package(s): create-objectstack.

8 hand-written doc(s) reference the affected code and may need an implementation-accuracy re-verification:

  • content/docs/ai/skills-reference.mdx(via create-objectstack)
  • content/docs/ai/skills.mdx(via create-objectstack)
  • content/docs/deployment/self-hosting.mdx(via create-objectstack)
  • content/docs/getting-started/index.mdx(via create-objectstack)
  • content/docs/getting-started/your-first-project.mdx(via create-objectstack)
  • content/docs/plugins/packages.mdx(via create-objectstack)
  • content/docs/releases/v15.mdx(via create-objectstack)
  • content/docs/releases/v9.mdx(via create-objectstack)

Advisory only. To re-verify, run the docs-accuracy-audit workflow scoped to these files:
node scripts/docs-audit/affected-docs.mjs origin/main → pass the list as args.docs.

… version
The "Scaffold with repo dist" job built the runtime base image with a hardcoded
`--build-arg OS_CLI_VERSION=latest`. During an RC window this skews protocols and
fails the docker boot (pre-existing failure on `main`):
✗ package 'e2e-app' targets protocol ^16 (engines.protocol) but this runtime
is protocol 15.0.0.
The scaffolder pins `@objectstack/*` to `^<repo version>` (16.0.0-rc.1), so the
generated project's `os build` emits an artifact targeting protocol 16. But the
`latest` dist-tag still points at the last STABLE cli (15.1.1, protocol 15), so a
base image built from `latest` runs `os start` at protocol 15 and rejects the
protocol-16 artifact → container never becomes healthy.
Derive OS_CLI_VERSION from the version the generated project actually resolved
(`e2e-app/node_modules/@objectstack/cli`) instead of hardcoding `latest`. This
keeps the runtime image in lockstep with the artifact's protocol in every case:
the repo RC, the `latest` fallback the install step already handles, or a
published stable.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@os-zhuang
os-zhuang merged commit 9833822 into mainJul 20, 2026
19 checks passed
@os-zhuang
os-zhuang deleted the chore/drop-types-tar branch July 20, 2026 14:26
os-zhuang added a commit that referenced this pull request Jul 21, 2026
…ty dir (#3376)
The `Check Changeset` gate counted every `.md` in `.changeset/`
(`find | wc -l`), so it only asserted the directory was non-empty — never
that THIS PR contributed a changeset. In pre-release (RC) mode `changeset
version` retains consumed changeset files, so the directory is permanently
non-empty and the gate can never go red: #3373 merged a real spec /
api-surface fix with no changeset while the step reported "Found 104
changeset(s)".
Diff the base commit instead and count only changesets the PR adds. An
empty-frontmatter changeset still counts — it is the sanctioned "releases
nothing" declaration. Proven to go RED on #3373's diff (0 added) and GREEN
on #3360's (1 added).
Also backfills the missing #3373 changeset so the ViewFilterRule operator
enum fix actually ships in the next release.
Co-authored-by: Jack Zhuang <277994282+os-zhuang@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci/cddependenciesPull requests that update a dependency filedocumentationImprovements or additions to documentationsize/stooling

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant

@os-zhuang