rusackas commented on issue #32741: URL: https://github.com/apache/superset/issues/32741#issuecomment-3226017666
Been meaning to circle back to this for AGES now. Threw my friend Claude at the problem, and here's what it has to say about bun vs pnpm: ## pnpm vs Bun Comparison for Apache Superset | **Aspect** | **pnpm** | **Bun** | |------------|----------|---------| | **Monorepo Support** | ✅ Mature workspace protocol, workspace:* for internal deps | ✅ Built-in workspaces (since v1.0), less battle-tested | | **Installation Speed** | 2-3x faster than npm | 10-100x faster than npm | | **Disk Usage** | 50-70% space savings via hard links | Standard node_modules, but faster writes | | **Publishing Workflow** | ✅ Excellent - changesets integration, recursive publish | ❌ Limited - no changeset equivalent, basic npm publish | | **Dependency Strictness** | ✅ Prevents phantom deps, strict by default | ⚠️ More permissive, follows npm model | | **Package Overrides** | ✅ .pnpmfile.cjs for patches/overrides | ⚠️ Basic overrides in package.json | | **Filtering/Scoping** | ✅ Powerful --filter flag for selective ops | ✅ Workspace filtering available | | **Node.js Compatibility** | 100% (is a package manager for Node) | ~90% Node API coverage | | **Production Maturity** | ✅ Used by Vue, Microsoft, proven at scale | ⚠️ Newer, less proven in large monorepos | | **CI/CD Integration** | ✅ Established patterns, wide support | ⚠️ Emerging patterns, less documentation | | **Peer Deps Handling** | ✅ Auto-install with configurable strictness | ✅ Auto-installs peer dependencies | | **Windows Support** | ✅ Full support (with some symlink caveats) | ⚠️ Experimental Windows support | | **Native Addons** | ✅ Full support for Node native addons | ⚠️ Incomplete N-API coverage | | **Runtime Included** | ❌ Package manager only, needs Node.js | ✅ All-in-one runtime + package manager | | **TypeScript** | Via Node + ts-node/tsx | ✅ Native TypeScript execution | | **Debugging Tools** | ✅ Mature ecosystem | ⚠️ Limited debugging tools | | **Migration Effort** | Medium - import command, adjust for symlinks | Medium-High - runtime changes, compat fixes | | **Risk Level** | Low - community governed, stable | Medium - single company, rapid changes | | **Best For** | **Production monorepos needing publishing** | **Greenfield projects, speed-critical builds** | ### Bottom Line for Apache Superset **Go with pnpm** because: - **Publishing workflows** are critical for Superset's multi-package releases, and pnpm has mature tooling here - **Proven stability** with large monorepos (Vue.js uses it successfully) - **Dependency strictness** helps manage Superset's complex dependency tree - **.pnpmfile.cjs** enables patching problematic dependencies **Consider Bun later** (12-18 months) when: - Publishing workflow tools mature - More monorepos prove it in production - Node.js compatibility reaches 95%+ - You need dramatic CI speedups (could be 10x faster builds) The main tradeoff: pnpm gives you production-ready monorepo management today, while Bun offers revolutionary speed but with ecosystem gaps that could block Superset's publishing needs. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@superset.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: notifications-unsubscr...@superset.apache.org For additional commands, e-mail: notifications-h...@superset.apache.org