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

2.1 KiB

Contributing guidelines

Setup local development

  1. clone this repo
  2. 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.

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.

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