Skip to content
This repository has been archived by the owner on Mar 23, 2021. It is now read-only.

Latest commit

 

History

History
62 lines (41 loc) · 3.03 KB

CONTRIBUTING.md

File metadata and controls

62 lines (41 loc) · 3.03 KB

Contributing to chartist-js

Found an Issue?

If you find a bug in the source code or a mistake in the documentation, you can help us by submitting an issue to our [GitHub Repository][github]. Even better you can submit a Pull Request with a fix.

Pre-requisites

You will need the following to run a local development enviroment.

  • Node.js & npm
  • Bower (sudo npm install bower -g)
  • Grunt (sudo npm install grunt-cli -g)
  • Text editor of your choice

How to Run a Local Distribution

  1. cd into your local copy of the repository.
  2. Run npm install to install dependencies located in package.json.
  3. Run bower install to install bower dependencies.
  4. Run grunt preview to start the watch task, and the web server should automatically open. Congrats, you should now be able to see your local copy of the demo site.

Submission Guidelines

If you are creating a Pull Request, fork the repository and make any changes on the develop branch.

Conventions

Check out the Coding Style document

Grunt

We have five grunt tasks:

  1. grunt build - Combines the scripts and creates the library for distribution
  2. grunt public - Creates the distribution of the example / demo site which is used as visual development help of the charts but also serves as the documentation site / gh-pages.
  3. grunt dev - Starts watch with livereload that is executing the same things as the site build default task but for live development.
  4. grunt preview - Executes a dist and serves the directory statically in order to serve with the production example / demo site.
  5. grunt test - Executes jasmine tests separately, although we have a very big lack of tests.

dist should not be included in any Pull Requests. So please ensure that code is not being committed as part of the Pull Request.

Documentation

  • Everything is already in place and in the sitedist there is a apidoc folder generated by doxication generator that uses JSDoc like comments to generate documentation meta files. Always use proper JSDoc comments when documenting methods and API interfaces. Also assign documentation blocks using @memberof to the virtual module they belong to.
  • The site documentation is built with Assemble.io. Generally a component based approach should be followed where there are already Handlebar partials / helpers in order to create whole sites based on components that can be specified by type and with their data in yaml files.

Important missing stuff

  1. Jasmine Tests!
  2. Documentation: JSDoc, Getting started documentation and landing page
  3. Better accessibility using ARIA and other optimizations
  4. Better interfaces to the library (i.e. jQuery with data-* attributes for configuration), Angular.js directive etc.
  5. Richer Sass / CSS framework
  6. Other charts types (spider etc.)