feat(frontend): migrate from npm/lerna to bun/turborepo/changesets

- Replace lerna with changesets for version management and npm publishing
- Migrate from npm to bun as the package manager
- Add bun.lock and remove package-lock.json
- Add changeset scripts: changeset:add, changeset:version, changeset:publish
- Delete lerna.json
- Update .gitignore to exclude package-lock.json

Benefits of this migration:
- Bun: ~10x faster package installs, native TypeScript support
- Turborepo: Intelligent caching for builds (already added)
- Changesets: Cleaner workflow for version management and publishing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Evan Rusackas
2026-02-10 10:45:08 -08:00
co-authored by Claude Opus 4.5
parent d0575ceb29
commit 198c7598cf
7 changed files with 10977 additions and 58179 deletions
+38
View File
@@ -0,0 +1,38 @@
# Changesets
This folder is used by [Changesets](https://github.com/changesets/changesets) to manage versioning and changelogs for the Superset frontend packages.
## How to add a changeset
When you make changes to packages that should be published, run:
```bash
npx changeset
```
This will prompt you to:
1. Select which packages have changed
2. Choose the semver bump type (major/minor/patch)
3. Write a summary of the changes
A markdown file will be created in this folder describing your changes.
## Releasing
To create a new release:
```bash
# 1. Update versions and changelogs based on changesets
npm run changeset:version
# 2. Build all packages
npm run turbo:build
# 3. Publish to npm
npm run changeset:publish
```
## More information
- [Changesets documentation](https://github.com/changesets/changesets)
- [Using Changesets with Turborepo](https://turbo.build/repo/docs/handbook/publishing-packages/versioning-and-publishing)
+23
View File
@@ -0,0 +1,23 @@
{
"$schema": "https://unpkg.com/@changesets/config@3.1.1/schema.json",
"changelog": [
"@changesets/changelog-github",
{ "repo": "apache/superset" }
],
"commit": false,
"fixed": [],
"linked": [
["@superset-ui/*", "@apache-superset/*"]
],
"access": "public",
"baseBranch": "master",
"updateInternalDependencies": "patch",
"ignore": [
"@superset-ui/demo",
"@superset-ui/generator-superset"
],
"privatePackages": {
"version": false,
"tag": false
}
}
+3
View File
@@ -14,3 +14,6 @@ src/temp
migration-storybook.log
# Turborepo cache
.turbo
# npm lockfile (using bun.lock instead)
package-lock.json
File diff suppressed because it is too large Load Diff
-26
View File
@@ -1,26 +0,0 @@
{
"npmClient": "npm",
"packages": [
"packages/*",
"plugins/*",
"src/setup/*"
],
"version": "0.20.4",
"ignoreChanges": [
"**/*.md",
"**/*.spec.tsx?",
"**/*.spec.jsx?",
"**/__mocks__/**"
],
"command": {
"publish": {
"message": "chore(superset-ui): publish %s",
"graphType": "all"
},
"version": {
"message": "chore(superset-ui): publish %s",
"exact": true
}
},
"$schema": "node_modules/lerna/schemas/lerna-schema.json"
}
-58145
View File
File diff suppressed because it is too large Load Diff
+8 -8
View File
@@ -1,7 +1,7 @@
{
"name": "superset",
"version": "0.0.0-dev",
"packageManager": "npm@10.8.2",
"packageManager": "bun@1.3.4",
"description": "Superset is a data exploration platform designed to be visual, intuitive, and interactive.",
"keywords": [
"big",
@@ -63,12 +63,11 @@
"plugins:build": "node ./scripts/build.js",
"plugins:build-assets": "node ./scripts/copyAssets.js",
"plugins:build-storybook": "cd packages/superset-ui-demo && npm run build-storybook",
"plugins:create-conventional-version": "npm run prune && lerna version --conventional-commits --create-release github --no-private --yes --tag-version-prefix=\"plugins-and-packages-v\"",
"plugins:create-minor-version": "npm run prune && lerna version minor --no-private --yes --tag-version-prefix=\"plugins-and-packages-v\"",
"plugins:create-patch-version": "npm run prune && lerna version patch --no-private --yes --tag-version-prefix=\"plugins-and-packages-v\"",
"plugins:publish-all": "npm run prune && npm run plugins:build && lerna publish from-package --force-publish --yes",
"plugins:release-conventional": "npm run prune && npm run plugins:build && lerna publish --conventional-commits --create-release github --yes",
"plugins:release-from-tag": "npm run prune && npm run plugins:build && lerna publish from-package --yes",
"changeset": "changeset",
"changeset:add": "changeset add",
"changeset:version": "changeset version",
"changeset:publish": "npm run turbo:build && changeset publish",
"changeset:status": "changeset status",
"turbo:build": "turbo run build",
"turbo:build:force": "turbo run build --force",
"turbo:type-check": "turbo run type-check",
@@ -259,6 +258,8 @@
"@babel/runtime": "^7.28.6",
"@babel/runtime-corejs3": "^7.29.0",
"@babel/types": "^7.28.6",
"@changesets/changelog-github": "^0.5.2",
"@changesets/cli": "^2.29.8",
"@cypress/react": "^8.0.2",
"@emotion/babel-plugin": "^11.13.5",
"@emotion/jest": "^11.14.2",
@@ -351,7 +352,6 @@
"jest-websocket-mock": "^2.5.0",
"js-yaml-loader": "^1.2.2",
"jsdom": "^28.0.0",
"lerna": "^8.2.3",
"lightningcss": "^1.31.1",
"mini-css-extract-plugin": "^2.10.0",
"open-cli": "^8.0.0",