feat: Complete rewrite with modern tooling stack#1194
Merged
Conversation
Replace the entire tsdx toolchain with modern, high-performance tools: ## New Tool Stack - **Bundler**: bunchee (Rollup + SWC) - zero-config npm package bundler - **Testing**: vitest - next-generation testing framework - **Linting**: oxlint - Rust-powered linter (50-100x faster than ESLint) - **Formatting**: oxfmt - Rust-powered formatter (35x faster than Prettier) - **Package Manager**: bun - native speed package management - **Node**: LTS only (20+) ## CLI Changes - Simplified CLI using Commander.js - Commands: create, build, dev/watch, test, lint, format, typecheck, init - Modern interactive prompts with Enquirer - Streamlined project scaffolding ## Template Updates - Updated basic and react templates with modern tooling - React template uses Vite for example app development - Vitest + Testing Library for React component testing - Modern ESM-first package.json exports configuration ## Removed - Rollup direct configuration (now handled by bunchee) - Babel (replaced by SWC via bunchee) - Jest (replaced by vitest) - ESLint/Prettier (replaced by oxlint/oxfmt) - UMD/System module formats - Error extraction feature - Storybook template - Website documentation ## Breaking Changes - Requires Node.js 20+ (LTS only) - Requires bun for package management - Jest config files need migration to vitest - ESLint config needs migration to oxlint Note: GitHub Actions workflow updates require separate commit with workflow permissions
Contains the updated workflow configurations that require 'workflows' permission to apply. Includes instructions for updating the main CI workflow and all template workflows.
Owner
Author
|
@copilot read workflow.md and update/replace GitHub actions accordingly. |
7 tasks
Contributor
|
@jaredpalmer I've opened a new pull request, #1195, to work on those changes. Once the pull request is ready, I'll request review from you. |
* Initial plan * chore: Update GitHub Actions workflows to modern tooling stack Co-authored-by: jaredpalmer <[email protected]> --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: jaredpalmer <[email protected]>
bunchee automatically injects these variables for ESM modules, so manual declarations cause a redeclaration error. Also removed unused dependencies (chalk, tiny-glob).
Enquirer doesn't export Select/Input as named exports. Use default import with type assertion instead.
The templates should use the tsdx abstraction layer (tsdx build, tsdx test, tsdx lint, etc.) rather than calling the underlying tools directly. This honors the original TSDX design philosophy of providing a zero-config wrapper. - Updated basic template to use tsdx commands - Updated react template to use tsdx commands - Removed direct tool dependencies (bunchee, vitest, oxlint) - Added tsdx as the single dev dependency for tooling
Adds thorough end-to-end tests covering: - CLI basics (help, version, all commands) - Create command for both basic and react templates - Init command with various scenarios - Template structure validation - Build, test, lint, format, typecheck command help - Edge cases and error handling - Integration tests for full workflow - GitHub workflow validation - Vitest configuration validation Also increases test timeouts for e2e operations.
- Handle cases where author prompt fails in non-TTY environments by accepting either updated or template default values - Fix lint tests to not assume oxlint is unavailable (it's installed in the main project's node_modules) - Update assertions to be more flexible for CI environments
- Comprehensive README with all commands, configuration, and FAQ - New MIGRATION.md guide for upgrading from v0.x to v1.0 - Updated CONTRIBUTING.md for modern bun-based workflow - Updated issue templates for bug reports and feature requests - Removed workflow.md (superseded by MIGRATION.md)
|
LFG 🚀 |
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.
Replace the entire tsdx toolchain with modern, high-performance tools:
New Tool Stack
CLI Changes
Template Updates
Removed
Breaking Changes
Note: GitHub Actions workflow updates require separate commit with workflow permissions