Skip to content

Latest commit

 

History

History
94 lines (74 loc) · 3.58 KB

CONTRIBUTING.md

File metadata and controls

94 lines (74 loc) · 3.58 KB

BOUNTY Program

ARK has a bounty program for all accepted PR (Pull Requests) for this repository

More information can be found at https://blog.ark.io/ark-github-development-bounty-113806ae9ffe

Before pushing PR, please jump in our slack #development channel in order to discuss your contributions or to connect with other ARKvelopers.

Guidelines

  • pickup any of the existing issues or if you find an issue make a PR,
  • only one PR reward will be awarded per issue it fixes,
  • solving an open issue will increase your chances to be picked up as any of the monthly bounty winners.

Accepted PR

  • increase general code quality,
  • add meaningful tests,
  • correct bug,
  • add new features,
  • improve documentation,
  • create something new for ARK.

Tools

Live-reload

It is possible to execute a script to reload the Electron application on changes:

npm run live-reload

Devtron

Devtron is an extension that permits inspecting, monitoring and debugging Electron apps.

To use it, execute this code on the developer console:

require('devtron').install()

Lint

We use ESLint with a rule set which is extended from StandardJS. You can execute npm run eslint to check the code-style of the entire project. You should do this before pushing your contributions. Otherwise it's possible that Travis will fail, since for each commit the whole project is linted automatically.

It's recommended to install an ESLint plugin for your favorite code editor!

Tests

Unit

These tests use Karma and do not create and run an entire Electron app, so they are faster.

  • To run tests 1 time: npm test
  • To watch files and run tests on changes: npm run test-watch

These tests are in the test folder:

├── components
│   └── *component*
│       └── *tests*.js
├── directives
│   └── *tests*.js
├── filters
│   └── *tests*.js
├── services
│   └── *tests*.js
├── karma.conf.js
...

App

These tests are slow, but could be used to check the entire behaviour of the Electron app with Spectron.

  • To run tests 1 time: npm run test-app

They are organized under e2e/:

├── data
│   └── userData
│       └── README.md
├── scenarios
│   ├── accessibility.js
│   ├── client.js
│   ├── create-account.js
│   ├── create-network.js
│   ├── select-network.js
│   └── settings-menu.js
├── commands.js
├── hooks.js
└── user_data.js
  • hooks.js: includes code to prepare the context
  • commands.js: custom client actions, somewhat like macros, to reuse common behaviours
  • user_data.js: simple access to user data
  • data/: this folder could be used to store the app data instead of using the real path
  • scenarios/: this folder contains the tests