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.
- 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.
- increase general code quality,
- add meaningful tests,
- correct bug,
- add new features,
- improve documentation,
- create something new for ARK.
It is possible to execute a script to reload the Electron application on changes:
npm run live-reload
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()
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!
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
...
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