Contributing
Issues
You can find our open issues in the project's issue tracker. Please let us know if you find any issues or have any feature requests there.
Contributing
If you want to contribute to the project, your help is very welcome. Just fork the project, make your changes and send us a pull request. You can find the detailed description of how to do this in Github's guide to contributing to projects.
Our Roadmap page is a
comprehensive list of tasks we want to do in the future. It is a good place to
start if you want to contribute to Vizzu
. In case you have something else in
mind, that's awesome and we are very interested in hearing about it.
CI-CD
Development environment
For contributing to the project, it is recommended to use Node.js
18
.
However, for the documentation we are also using Python
. If you plan to
contribute to this part of the project, you will need Python
, preferably
version 3.10
.
The following steps demonstrate how to set up the development environment on an
Ubuntu
22.04
operating system. However, the process can be adapted for other
operating systems as well.
To start using the Vizzu-Story
development environment, you need to install
the development dependencies.
npm install
If you want to work with the documantation too, you need to set up the Python
development environment.
python3.10 -m venv ".venv"
source .venv/bin/activate
pip install pdm==2.8.0
pdm install
The development requirements are installed based on the package-lock.json
and
pdm.lock
files. To update the development requirements, you can use the
command npm run lock
.
Note: For all available npm
scripts, run npm run --list
.
For better development practices, you can set up pre-commit
and pre-push
hooks in your local Git
repository. The pre-commit
hook will format the code
automatically, and the pre-push
hook will run the CI steps before pushing your
changes.
npx husky install
Note: The provided pre-commit
and pre-push
hook configuration file is
tailored for Ubuntu
22.04
. If you intend to use another operating system,
you may need to create a custom configuration file suitable for that
environment.
CI
The CI pipeline includes code formatting checks, code analysis, typing
validation, and unit tests for the Vizzu-Story
project.
To run the entire CI pipeline, execute the following npm
script:
npm run ci
However, if you want to run the CI steps on specific parts of the project, you
can use the following scripts: ci:src
, ci:docs
, or ci:tools
.
Formatting
You can check the code's formatting using the format
script:
npm run format
If you need to fix any formatting issues, you can use the fix-format
script:
npm run fix-format
If you wish to format specific parts of the project, you can use the following
scripts: format:src
, format:docs
, format:tools
, or fix-format:src
,
fix-format:docs
, fix-format:tools
.
Code analyses
To perform code analyses, you can use the lint
script:
npm run lint
If you need to run code analyses for specific parts of the project, you can
utilize the following scripts: lint:src
, lint:docs
, or lint:tools
.
Typing
For type checking, you can use the type
script:
npm run type
If you want to check specific parts of the project, you can use the following
scripts: type:src
or type:tools
.
Testing
The project is tested using the jest
testing framework. To run the tests, you
can use the test
script:
npm test
Documentation
To build the documentation, you can use the build-docs
script:
npm run build-docs
You can read the online version at vizzu-story.vizzuhq.com.
Release
Vizzu-Story
is distributed on
npm. Note: You need to be an
administrator to release the project.
To release Vizzu-Story
, follow the steps below:
- You should increase the version number in
package.json
. The version bump should be in a separated commit.
- Generate the release notes and publish the new release on Releases.
Note: Publishing a new release will automatically trigger the release
workflow which builds and uploads the Vizzu-Story
package to
npm.
Before making a release, you can build and check the package using the build
script:
npm run build