Skip to content

Latest commit

 

History

History
147 lines (97 loc) · 5.25 KB

CONTRIBUTING.md

File metadata and controls

147 lines (97 loc) · 5.25 KB

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 an 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 APIs
    • nucleus: JavaScript library for mashups
    • supernova: JavaScript API for consuming and visualizing QIX data
    • stardust: Public JavaScript API which exposes the nucleus and supernova APIs
    • enigma-mocker: Public JavaScript API which creates a mocked enigma app to render visualizations without a connected Qlik engine
    • snapshooter: Public JavaScript API which captures rendered charts as images
    • conversion: [private] Provides conversion functionality to extensions with hyperCubes.
    • theme: [private] Provides access and consumption of the currently applied theme
    • locale: [private] Handles translation strings and generates all locales
  • commands - CLI commands
    • build: cli command to build a supernova
    • cli: entry point for all cli commands
    • create: CLI command for creating a supernova project
    • sense: CLI command to build a Qlik Sense extension from a supernova
    • serve: CLI command to start a development server for rapid prototyping of a supernova
  • packages
    • ui: [private] UI components
  • test/: contains test configs

Visualizing packages

To better understand packages' relations, you can use Nx's capabilities to open an interactive visualization of the package graph.

To open the visualization, run:

npx nx graph

Development workflow

  • yarn install all dependencies
  • yarn run build generate UMD bundles for all packages and an ESM bundle for stardust
  • yarn run lint check code style
  • yarn run format format code style
  • yarn run test run all tests

Cutting a release

Pre-release

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

  1. Fork and clone the repository

    git clone [email protected]:YOUR-USERNAME/nebula.js.git
  2. Create a branch in the fork

    The branch should be based on the master branch in the master repository.

    git checkout -b my-feature-or-bugfix master
  3. Commit changes on your branch

    Commit changes to your branch, following the commit message format.

    git commit -m "fix: properly formatted SET statements."
  4. Push the changes to your fork

    git push -u myfork my-feature-or-bugfix
  5. 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 master branch of the master repository.

    If the branch has merge conflicts or has been outdated, please do a rebase against the master branch.

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.