Repository navigation
chore(tooling): align CLI tooling and verify packed consumers - #161
Merged
Merged
Conversation
Use TypeScript 7.0.2 for CLI and black-box test typechecking, with an explicit compiler alias so OpenAPI generation retains the working TypeScript 6 JavaScript API. Align Oxc versions across the CLI and isolated starter consumer. Apply shared formatter defaults across existing source and update scaffold import assertions for single quotes. Keep runtime tests and coverage on Bun. Validation: full canonical verification with integration, 42 browser tests, generated artifact drift checks, and AST comparison of formatter-only source changes.
Expose direct root scripts for the existing CLI workflow without combining the independently locked starter and published-package tests into workspaces. Move frozen development installs to an explicit setup command and CI step so checking does not modify installed dependencies. Pin CI Node from .node-version. Replace npm package dry runs with tarball extraction and executable, OpenAPI, and offline scaffold smoke checks from the extracted artifact. Preserve full generated-app smoke coverage, native build orchestration, Bun 1.1 runtime compatibility, and release recovery/provenance. Validation: full scripts/verify.sh --integration, frozen setup, actual npm tarball smoke, minimum Bun 1.1.0 scaffold smoke, and host native compile/smoke. Other native platforms remain covered by the CI matrix.
Keep Knip 6.32.2 and both existing canonical verification checks. Add direct root commands for normal and production reachability analysis, and document them alongside the other development commands. Validation: both root Knip commands pass with Bun 1.4.2 and Node 24.18.0; no additional exceptions or configuration changes are needed.
Make bun run check the full repository gate and have CI call it with the integration flag. Preserve quick verification through --quick and retain check:package as a full-gate alias. Route both Knip modes through their root commands once each. Remove the separate bundle build because pack:check already builds before exercising the tarball. Validation: bun run check --integration passes under Bun 1.4.2 and Node 24.18.0, including unit coverage, black-box tests, both Knip modes, 42 browser tests, packed consumers, and lakehouse integration.
Enable Oxfmt import sorting while preserving package JSON field order with sortPackageJson: false. Apply import grouping consistently to CLI source, development scripts, and isolated starter/browser consumers. Retain strict TypeScript checking and the generator compiler API exception. Validation: full root integration check, generated artifact drift checks, both Knip modes, 42 browser tests, and host native compile/smoke pass.
Make root check:package build and validate the extracted npm artifact independently of the repository test suite. Run the full generated-app lifecycle against that artifact instead of checking only its scaffold. Have the canonical gate call the focused package command once and remove the redundant raw-bundle smoke. Preserve offline scaffolding coverage, minimum Bun runtime compatibility, and native release checks. Validation: standalone check:package passes without the integration mock; full check --integration, host native compile/smoke, and final Bun 1.1.0 bundle smoke pass.
Start the documented verification sequence with root setup so CLI, starter, and browser-test dependencies are installed before typechecking. Use the canonical root check commands. Validation: exported fresh tracked source without node_modules, ran bun run setup, then ran the data-app typecheck, lint, formatting, and build checks successfully.
Reject --quick combined with --integration before starting verification. Previously the quick exit silently skipped the requested integration tests. Explain that --integration runs the full integration gate and show mutually exclusive modes in usage. Validation: both flag orders fail immediately through the script and root command; default and each individual mode still reach verification. Bash syntax and diff checks pass.
This was referenced Oct 20, 2026
francoischalifour
marked this pull request as ready for review
October 20, 2026 07:27
Pin development, CI, and release builds to Bun 1.4.3 through the shared version file and package manager metadata. Update Bun declarations in the CLI and independently locked starter/browser consumers without changing published runtime requirements. Validation: frozen setup and full root integration verification under Bun 1.4.3 with Node 24.18.0, host native release build/smoke, and final npm bundle scaffold smoke on Bun 1.1.0 all pass.
Use the agreed repository-workspace naming convention for the private root command package. Keep published package names and all independent consumer dependency graphs unchanged. Validation: frozen root setup installs all three existing lockfiles without changes; root manifest formatting and diff checks pass.
robinvrd
approved these changes
Oct 20, 2026
leonkenneth
approved these changes
Oct 20, 2026
francoischalifour
added a commit
to altertable-ai/altertable-js
that referenced
this pull request
Oct 20, 2026
## What Standardize SDK development and CI on Bun 1.4.3 workspace commands, tsdown 0.23.1, and TypeScript 7.0.2, replacing Lerna, the custom dev launcher, tsup, and TypeScript 5. - Name the private root `altertable-js-workspace`, keeping published package names unchanged. - Share strict TypeScript/Vitest defaults and run builds, types, lint, Knip, formatting, tests, and packed-consumer checks through `bun run check`. - Keep the snippet on SWC for ES5 output; declare its Chokidar watch peer. Replace the obsolete native bundle-size dependency with built-in gzip using the same six budgets. - Qualify packed core/React artifacts through Node CJS/ESM imports, browser ESM, provider JSX, typed funnel calls, and NodeNext/Bundler resolution. Preserve zero core runtime dependencies and the browser global. - Gate trusted npm publishing on packed checks and request provenance, retaining linked SDK versions and already-published retry handling. ## Why Workspace commands, compiler settings, and verification had separate owners, so local runs, agents, CI, and publishing could exercise different paths. This makes their entry points consistent and checks the artifacts consumers install, including fresh-install watch mode and generated declarations. ## Compatibility **BREAKING CHANGE:** React 16 now requires 16.14+ for the automatic JSX transform; React 17–19 remain supported. Components retain JSX, named imports, and inferred returns. Node selects CJS for React 16 interoperability and a shared singleton; browser bundlers select ESM. Tsdown's TypeScript 7 declaration integration is experimental. Packed type fixtures currently use TypeScript 7; these checks do not establish support for older consumer compilers. ## Verification The following checks passed under Bun 1.4.3 and Node 24.18.0: - Private root rename: frozen install, formatting, and Knip passed with unchanged dependency versions. - Frozen install and `bun run check`: passed, including 699 tests, all six size budgets, ES5/global checks, and packed React 16.14/current runtime and type consumers. - `bun run test:integration`: 10 tests passed against the local Altertable mock. - `bun run check:react-native minimum` and `current`: types and iOS/Android Metro bundles passed. - Clean isolated snippet installation: watcher started, emitted the initial bundle, and rebuilt after an edit. Native device execution and live npm/OIDC publishing were not run. ## Related PRs - [Data app: align workspace tooling and verification](altertable-ai/data-app#99) - [CLI: align tooling and verify packed consumers](altertable-ai/altertable-cli#161) ## Checklist - [x] Tests added or updated - [x] `CHANGELOG.md` updated - [x] Breaking change noted in commit footer and changelog
Merge current main without rewriting published history. Preserve the new app dev --file route, source-specific profile validation, 0.72.0 runtime pins, and generated command references while applying the branch's formatting conventions. Exercise --file directly in the packed and native app smoke instead of switching the directory preview script. Keep both directory and file preview, SQL proxy, and shutdown coverage. Validation: full root integration gate passes under Bun 1.4.3 and Node 24.18.0 (821 unit, 153 black-box, 42 browser, and lakehouse integration tests); host native release verify/build/smoke and final Bun 1.1.0 scaffold smoke pass.
francoischalifour
added a commit
to altertable-ai/data-app
that referenced
this pull request
Oct 20, 2026
Align data-app with the shared Altertable JavaScript toolchain while preserving its seven published packages and browser, Node, and Bun consumers. This replaces manual library/declaration bookkeeping, removes installation from verification commands, and makes local and CI checks share one entry point. ## Changes - Adopt upstream tsdown 0.23.1 for ordinary library JavaScript and all declarations, with native Bun workspace build scheduling. Keep Bun for the adapter, self-contained Worker, and CSS/bootstrap/preview asset injection. - Add Knip 6.32.2; update oxlint to 1.86.0 and Oxfmt to 0.71.0. Align repository/starter formatting, enable sorted imports, and preserve package JSON ordering. Mechanical import sorting is isolated in commit 08969ee. - Pin repository and local starter Bun to 1.4.3 with matching `@types/bun` 1.4.3. Derive packed-consumer Bun typings from the workspace development dependency. The private root package is `data-app-workspace`; published package names are unchanged. - Keep root typechecking and explicitly check all seven package build configs with root TS7, preserving portable packages’ exclusion of Bun globals. The manifest package retains TypeScript 5.9.3 as its runtime compiler dependency. - Run canonical `bun run check` in CI after browser setup, preserving workflow validation and the lockfile guard. Add `test:watch` and starter `lint:fix`; keep `check:package` focused on packed consumers and add NodeNext resolution checks alongside bundler resolution. - Preserve meaningful imported-type context in the generated API reference instead of exposing bundled names such as `Tab$1`. Remove private unused code without removing public exports. Package boundaries, export paths, strict mode, lockstep versions, and the existing Release Please/npm OIDC/provenance recovery flow remain intact. Bun 1.4.3, Node 24.18.0, TypeScript 7.0.2, Vitest 4.1.11, and oxlint-tsgolint 7.0.2003 remain pinned. ## Verification - After integrating current `main` and preserving its manifest override API, full `bun run check` passed under Bun 1.4.3 and Node 24.18.0: 74 test files / 968 tests, package typechecks, Knip, docs/styles/reference checks, isolated packed consumers, and starter integration. - `bun run check:workflows`, frozen install, and diff whitespace checks passed. - Additional probes under Bun 1.4.2 confirmed portable `Bun` usage fails typechecking and Knip detects unused private code/dependencies while preserving public entry exports. Incremental builds preserved declarations; an AST comparison confirmed unchanged non-import syntax in all 310 import-sorted source files. Verification passed locally on macOS and in hosted CI after integrating current `main`. Docker-backed gallery development, external URL checks, and live release publication were not exercised. ## Related PRs - [JavaScript SDK tooling alignment](altertable-ai/altertable-js#218) - [CLI tooling alignment](altertable-ai/altertable-cli#161)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Align CLI development tooling and expose a consistent root command interface, with focused validation of the actual npm package.
altertable-cli-workspaceroot command package with explicit frozensetup, canonicalcheck, focusedcheck:package, and root build/dev/typecheck/lint/format/test/Knip commands. CI runsbun run check --integration; both existing Knip modes remain required.--quick --integrationflags before starting checks.Why
Contributors and CI should use the same predictable commands, and package validation should exercise shipped bytes. Keep installation separate from verification without weakening consumer isolation or CLI runtime coverage.
The CLI remains Bun-native: preserve Bun builds/tests, coverage thresholds, the native compile matrix, Bun 1.1 runtime support, offline scaffolding, and release recovery/OIDC/provenance. Keep the starter/browser-test lockfiles independent. OpenAPI generation retains TypeScript 6.0.3's compiler API; an explicit compiler alias selects TypeScript 7 for typechecking. Most source changes are mechanical formatting/import sorting.
Verification
bun run setupand fullbun run check --integrationpassed under Bun 1.4.3 and Node 24.18.0: 821 unit tests, 153 black-box tests, 42 browser tests, lakehouse integration, coverage, typechecks, lint/format, both Knip modes, generated-artifact drift, and extracted-package consumer smoke covering directory andapp dev --filepreviews, SQL proxying, and shutdown.Checklist
Related PRs