mirror of
https://github.com/apache/superset.git
synced 2024-09-12 08:39:45 -04:00
* refactor: replace yarn with npm * revert npm requirement back to 14 for vercel * disable build Storybook job * fix linting errors * update lock file * rebase master and bump encodable/color to 1.1.1 * update package-lock.json update lock file * change node version format to satisfy vercel * remove restriction on @encodable/color * rename yarn.lock to package-lock.json * add resolved in lock file and restriction on @encodable/color * install dependences by npm ci Co-authored-by: Ville Brofeldt <ville.v.brofeldt@gmail.com>
72 lines
2.1 KiB
Markdown
72 lines
2.1 KiB
Markdown
## Contributing guidelines
|
|
|
|
### Setup local development
|
|
|
|
1. clone this repo
|
|
2. have `npm` install package dependencies and manage the symlinking between packages for you
|
|
|
|
```sh
|
|
git clone ...superset-ui && cd superset-ui
|
|
npm ci
|
|
npm build
|
|
```
|
|
|
|
To build only selected packages or plugins,
|
|
|
|
```bash
|
|
npm build "*chart-table"
|
|
```
|
|
|
|
### File organization
|
|
|
|
[lerna](https://github.com/lerna/lerna/) and [npm](https://www.npmjs.com/) 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](docs/storybook.md) - You can test your components independently from Superset
|
|
app.
|
|
- [Debugging Superset plugins in Superset app](docs/debugging.md) - Sometimes something went wrong
|
|
and you have to do it.
|
|
|
|
### Committing
|
|
|
|
This repository follows
|
|
[conventional commits](https://www.conventionalcommits.org/en/v1.0.0-beta.3/) 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`.
|
|
|
|
1. Checkout the `master` branch from the main repo at `apache-superset/superset-ui` - NOT A FORK!
|
|
2. run `npm run ci:create-patch-version` to bump the patch version (the most common case) or
|
|
`npm 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).
|