superset/superset-frontend/temporary_superset_ui/superset-ui/CONTRIBUTING.md
Yongjie Zhao f552abaa42 refactor: replace yarn with npm (#1405)
* 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>
2021-11-26 11:47:34 +08:00

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).