mirror of https://github.com/apache/superset.git
2.1 KiB
2.1 KiB
Contributing guidelines
Setup local development
- clone this repo
- have
npm
install package dependencies and manage the symlinking between packages for you
git clone ...superset-ui && cd superset-ui
npm ci
npm build
To build only selected packages or plugins,
npm build "*chart-table"
File organization
lerna and npm are used to manage versions and dependencies between packages in this monorepo.
superset-ui/
lerna.json
package.json
...
packages/
package1/
package.json
...
src/
test/ # unit tests
types/ # typescript type declarations
...
lib/ # commonjs output
esm/ # es module output
...
...
Builds, linting, and testing
Each package defines its own build config, linting, and testing. You can have lerna run commands
across all packages using the syntax npm run test
(or npm run test:watch
for watch mode) from
the root @superset-ui
directory.
- Using Storybook - You can test your components independently from Superset app.
- Debugging Superset plugins in Superset app - Sometimes something went wrong and you have to do it.
Committing
This repository follows
conventional commits guideline for commit
messages and has a commitlint
hook which will require you to have the valid commit message before
committing. You can use npm run commit
to help you create a commit message.
Publishing
Prerequisite: You'll need to be a committer on the apache-superset
organization to be able to
publish new versions of superset-ui
.
- Checkout the
master
branch from the main repo atapache-superset/superset-ui
- NOT A FORK! - run
npm run ci:create-patch-version
to bump the patch version (the most common case) ornpm run ci:create-minor-version
to bump the minor version. Once the process finishes and the commit has been pushed to GitHub, CI will complete publishing the release to npm (takes some time to complete).