5.0 KiB
nebula.js contributing guide
nebula.js is still in an early stage and is therefore very much open to suggestions and in need of all kinds of contributions.
Code of conduct
Please read and follow our Code of conduct
Bugs
Bugs can be reported by filing a new bug issue in the repository. Please make sure to browse through existing issues before creating a new one.
Proposing a change
If you want to propose changes to this project, let us know by filing a issue.
If the proposal includes new designs or bigger changes, please be prepared to discuss the changes with us so we can cooperate on how to best include them.
Developing
Prerequisites
Project structure
This is a multi-package repository which uses lerna for package task management and publishing.
apis- JavaScript APIsnucleus: JavaScript library for mashupssupernova: JavaScript API for consuming and visualizing QIX datastardust: Public JavaScript API which exposes the nucleus and supernova APIsenigma-mocker: Public JavaScript API which creates a mocked enigma app to renders visualizations without a connected Qlik enginesnapshooter: Public JavaScript API which captures rendered charts as imagesconversion: [private] Provides conversion functionality to extensions with hyperCubes.theme: [private] Access/consume the currently applied themelocale: [private] Handle translation string to generate all locales
commands- CLI commandsbuild: cli command to build a supernovacli: entry point for all cli commandscreate: cli command for creating a supernova projectsense: cli command to build a Qlik Sense extension from a supernovaserve: cli command to start a development server for rapid prototyping of a supernova
packagesui: [private] ui components
test/: contains test configs
Development workflow
yarninstall all dependenciesyarn run buildgenerates UMD bundles for all packages and a ESM bundle for stardustyarn run lintchecks code styleyarn run formatformat code styleyarn run testruns all tests
Cutting a release
Prerelase
npx lerna version --no-git-tag-version --no-push --no-conventional-commits --preid alpha --exact
Git Guidelines
Generally, development should be done directly towards the master branch.
Branching
-
Fork and clone the repository
git clone git@github.com:YOUR-USERNAME/nebula.js.git -
Create a branch in the fork
The branch should be based on the
masterbranch in the master repository.git checkout -b my-feature-or-bugfix master -
Commit changes on your branch
Commit changes to your branch, following the commit message format.
git commit -m "fix: properly formatted SET statements." -
Push the changes to your fork
git push -u myfork my-feature-or-bugfix -
Create a Pull Request
Before creating a Pull Request, make sure to sign the CLA
In the Github UI of your fork, create a Pull Request to the
masterbranch of the master repository.If the branch has merge conflicts or has been outdated, please do a rebase against the
masterbranch.
Commit message guidelines
Commit messages should follow the commit message convention.
Type
Should be one of the following:
- build: Changes that affect the build system or external dependencies
- chore: Changes to build and dev processes/tools
- ci: Changes to the CI configuration files and scripts
- docs: Changes to documentation
- feat: A new feature
- fix: A bug fix
- perf: A code change that improves performance
- refactor: Changes to production code that is neither a new feature nor a bug fix
- revert: Reverts a previous commit
- style: Changes to code style formatting (white space, commas etc)
- test: Changes in test cases of production code
Scope
The <scope> of the commit is optional and can be omitted. When used though, it should describe the place or part of the project, e.g. docs(examples), feat(data) etc.
Signing the CLA
We need you to sign our Contributor License Agreement (CLA) before we can accept your Pull Request. Visit this link for more information: https://github.com/qlik-oss/open-source/blob/master/sign-cla.md.