4.0 KiB
Building Lightweight Charts™
The minimal supported version of NodeJS for development is 16.16.
Note: you need to run npm install
in both the root directory and the website
directory before you can run the lint tests.
Compiling
npm run tsc
- compiles the source code only (excluding tests)npm run tsc-watch
- runs the TypeScript compiler in the watch mode for source code (same astsc
, but in the watch mode)npm run tsc-verify
- compiles everything (source code and tests) with composite projects config to ensure that no invalid imports or cyclic deps are found
Bundling
npm run rollup
- runs Rollup to bundle codenpm run build
- compiles source code and bundles it (as one word fornpm run tsc && npm run rollup
)npm run build:prod
- the same asnpm run build
, but also bundles production (minified) builds
Testing
npm run lint
- runs lint for the codenpm run test
- runs unit-tests
There are several included e2e tests available which can be run individually. Please have a read through the following document for further information: /tests/README.md
Tips
-
You can use the following command to make sure that your local copy passes all (almost) available checks:
npm run verify
-
If you want to play with a locally built package, you can create a
debug.html
page:cp debug.html.example debug.html
.This file (
debug.html
) is under gitignore, so you don't need to worry about changing it and you can modify it as you wish.
Deploying a new version
- Update any documentation pages which refer to a specific version. For example, the
Android
andiOS
pages (only if the mobile package version is also updated). - Run
npm run docusaurus docs:version MAJ.MIN
inwebsite
folder to create new versioned docs. Note that there is not patch version in docs, only major and minor parts. - (optional) Remove docs for the oldest version (see https://docusaurus.io/docs/versioning#deleting-an-existing-version).
- Handle the new version in
import-lightweight-charts-version.ts
: add a package reference for that version towebsite/package.json
(e.g."lightweight-charts-MAJ.MIN": "npm:lightweight-charts@~MAJ.MIN.0"
) and a import of that package in a matching case statement. - Bump
lightweight-charts
package version inwebsite/package.json
file. - Add all created files to git and commit changes. Note that at this step the website cannot work since it uses unpublished so far version. It will be fixed in the next steps.
- Create a git tag for this version with the format
vMAJ.MIN.PATCH
(see other tags). - Run
npm run prepare-release
in the root folder. - Run
npx publint
and ensure that there aren't any issues with the generatedpackage.json
. - Run
npm publish
to publish changes to npm. - Revert changes made in
package.json
file afterprepare-release
script. - Bump the library's version in root
package.json
file to the next one (either major or minor depending on the planning and expected breaking changes). - Push the changes back to github (don't forget to push tags).
- Create and publish a release on github.
- Close the milestone.
Deploying a pre-release version
These steps are similar to those listed above except that we don't need to do anything related to the documentation site. There isn't typically anything to commit to the repo when doing these steps.
- Checkout master branch.
- Update
package.json
, set version to a prerelease version, e.g. 2.0.0-rc1, 3.1.5-rc4,... - Run
npm run prepare-release
in the root folder. - Run
npx publint@latest
and ensure that there aren't any issues with the generatedpackage.json
. - Run
npm publish --tag next
to publish changes to npm. Use--dry-run
if you are unsure. - Assign the same version number to a git tag for the latest commit in GitHub.
- (Optional) Create and publish a release on github.
- Discard any changes locally, to ensure you don't commit the modified package.json at a later stage.