Contribute to Superset
Take the user from "I want to fix/build X in Superset" to a merge-ready PR that follows the repo's rules. If the checked-out repo has CONTRIBUTING.md, DEVELOPMENT.md, or AGENTS.md, those files are authoritative; read them and prefer them over this summary.
1. Scope first
2. Set up
gh auth status, then fork and clone: gh repo fork superset-sh/superset --clone (or add a fork remote to an existing clone)
- Best experience: add the clone as a project in the Superset app and create a workspace per change, so contributions develop inside managed worktrees
- In the new workspace/worktree, run
./.superset/setup.local.sh once (configures per-workspace ports, app identity, local services, and a seeded dev account; no external credentials needed), then bun run dev
- Bun only, never npm/yarn/pnpm. Read the root
AGENTS.md and follow it.
3. Make it merge-ready
- Branch from
main; one change per PR, so unrelated finds become a second PR
- Before pushing:
bun run lint:fix, then verify bun run lint exits clean (CI fails on warnings too), bun run typecheck, bun run test
- PR title must be a conventional commit (
feat(desktop): ..., fix(web): ...); PRs are squash-merged with the title as the commit subject
- Include proof it works: screenshots or recordings for anything user-visible, before/after for fixes. The dev desktop app exposes CDP for clean captures; see "Capturing screenshots via CDP" in CONTRIBUTING.md
- Check "Allow edits from maintainers" and link the issue for non-trivial changes
4. Open it
gh pr create against superset-sh/superset main, fill in the PR template honestly (what you ran, what you clicked, what's covered by tests), and report the PR URL back to the user.
1---2name: contribute3description: Set up a Superset open-source contribution, from forking and cloning superset-sh/superset through local dev setup and the repo's rules to a merge-ready PR. Use when the user wants to contribute to Superset, fix a Superset bug themselves, add a feature to Superset, or prepare a PR against superset-sh/superset.4---5
6# Contribute to Superset
7
8Take the user from "I want to fix/build X in Superset" to a merge-ready PR that follows the repo's rules. If the checked-out repo has `CONTRIBUTING.md`, `DEVELOPMENT.md`, or `AGENTS.md`, those files are authoritative; read them and prefer them over this summary.
9
10## 1. Scope first
11
12- Bug fixes, docs, small improvements: straight to a PR, no issue needed
13- New features or larger changes: open an issue first at https://github.com/superset-sh/superset/issues/new/choose to agree on the approach before building
14- Questions: Superset Discord, not an issue
15
16## 2. Set up
17
181. `gh auth status`, then fork and clone: `gh repo fork superset-sh/superset --clone` (or add a fork remote to an existing clone)
192. Best experience: add the clone as a project in the Superset app and create a workspace per change, so contributions develop inside managed worktrees
203. In the new workspace/worktree, run `./.superset/setup.local.sh` once (configures per-workspace ports, app identity, local services, and a seeded dev account; no external credentials needed), then `bun run dev`
214. Bun only, never npm/yarn/pnpm. Read the root `AGENTS.md` and follow it.
22
23## 3. Make it merge-ready
24
25- Branch from `main`; one change per PR, so unrelated finds become a second PR
26- Before pushing: `bun run lint:fix`, then verify `bun run lint` exits clean (CI fails on warnings too), `bun run typecheck`, `bun run test`
27- PR title must be a conventional commit (`feat(desktop): ...`, `fix(web): ...`); PRs are squash-merged with the title as the commit subject
28- Include proof it works: screenshots or recordings for anything user-visible, before/after for fixes. The dev desktop app exposes CDP for clean captures; see "Capturing screenshots via CDP" in CONTRIBUTING.md
29- Check "Allow edits from maintainers" and link the issue for non-trivial changes
30
31## 4. Open it
32
33`gh pr create` against `superset-sh/superset` `main`, fill in the PR template honestly (what you ran, what you clicked, what's covered by tests), and report the PR URL back to the user.