dataframe-js
Version:
Immutable and functional data structure for datascientists and developpers
97 lines (58 loc) • 3.21 kB
Markdown
# How to contribute
## Getting Started
To start, just make sure you have a GitHub account and read the [code of conduct](https://gmousse.gitbooks.io/dataframe-js/content/CODE_OF_CONDUCT.md).
You can contribute by different ways:
- create an issue to report a bug, ask questions, suggest a new feature.
- publish a Pull request in order to submit code changes.
- contribute to an existing issue or an existing pull request.
## Creating an issue
You can create an issue (https://github.com/Gmousse/dataframe-js/issues) in order to:
- report a bug.
- suggest a new feature.
- ask few questions about the usage.
Just use a predefined template.
**Issues will be closed in case of inactivity after 15 days.**
## Creating pull request
Before creating any kind of pull request, create an [issue](#creating-an-issue) in order to:
- describe the bug you want to fix
- describe the feature you want to submit
Just make sure you are following these rules:
- don't target the master branch
- respect the style guide (`.prettierrc` and `.eslintrc`).
- make sure the unit tests are ok.
- don't make breaking changes.
- add documentation on new public methods or functions.
You can refer to the [development guide](#development-guide).
**Pull requests will be deleted in case of inactivity after 30 days.**
## Development guide
The project is developped in es2017 and it is transpiled by using babel (for commonjs) then by rollup (for browsers).
To work on the project you must have:
- nodejs > 8.x.x + npm or yarn or docker + docker-compose.
- an idle, such as [vscode](https://code.visualstudio.com/) for example.
- the dependencies installed.
### Install the dependencies
You can install the app and dev dependencies with different ways:
- via npm, `npm install`.
- via yarn, `yarn install`.
- via docker-compose, `docker-compose run --rm test npm install`.
### Launch the unit test
You can launch the unit tests powered by [ava](https://github.com/avajs/ava) with a watcher in order to follow your code changes:
- via npm, `npm run test:watch`.
- via yarn, `yarn run test:watch`.
- via docker-compose, `docker-compose up test`.
If the unit tests are not ok, the continuous integration will failed on your PR.
### Format your code
The project use [prettier](https://github.com/prettier/prettier) in order to format the source code.
The easier way is to have prettier integrated in your idle (e.g. [The vscode intergration](https://github.com/prettier/prettier-vscode)).
If you can't, you can trigger prettier after your code session:
- via npm, `npm run prettier`.
- via yarn, `yarn run prettier`.
- via docker-compose, `docker-compose run --rm test npm run prettier` (but just care about file permissions...).
### Check the linter
The project use [eslint](https://eslint.org/) in order to check the sanity of your code.
The easier way is to have eslint integrated in your idle.
You can also trigger manually the linter:
- via npm, `npm run lint`.
- via yarn, `yarn run lint`.
- via docker-compose, `docker-compose run --rm test npm run lint`.
If the unit tests is not ok, the continuous integration will failed on your PR.