Skip to content

cli: create-objectstack emits TypeScript ^6.0.0 while os init / os create emit ^5.3.0 — generate the on-ramp's version policy from the same constants at build time (item 4 of #15531) #16485

Description

@os-zhuang

Filed by the director seat under the #15531 ruling (decision batch #66, 2026-09-07, option B).

Why

npx create-objectstack is the documented on-ramp (13 doc pages). It declares typescript: ^6.0.0 for a new project while os init and os create declare ^5.3.0 from the shared emission policy (PR #15974). Two projects created the same day get different TypeScript majors depending on which entry point the reader followed. The structural cause: create-objectstack cannot import from @objectstack/cli, so the shared constants never reach it.

Scope

  • Generate create-objectstack's version pins from the same policy source at build time (a small generation step that inlines the shared constants into the package, with a check that fails when the inlined values drift from the source — the repo's usual generated-file pattern).
  • Decide the actual TypeScript range once (the shared policy's value wins unless the cli seat records a reason the on-ramp needs a different one — record it here).
  • Pin: a test that the three scaffolders emit identical typescript (and pnpm / engines) ranges.

Acceptance

  • identical ranges across create-objectstack, os init, os create
  • drift check present and green
  • changeset for create-objectstack

Refs #15531, PR #15974.

Activity

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions