Contributing¶
Graphene-UI is open source and anyone is free to contribute. PR’s are welcomed and will be reviewed in a timely manner, and long-term contributors will be given access to the repo.
If you would like to get involved, we have a Slack channel where you can ask questions and get help.
Development process¶
- Bugs are always worked before enhancements
- Developers should work each issue according to a numbered branch corresponding to the issue using
git checkout -b 123
Github issues are being used to track bugs and feature requests.
- Project Coordinator (@wmbutler) reads through new issues and requests clarification if needed
- Issues get assigned to Milestones
- Milestones are typically 1 week long ending on Wednesday
- All devs are expected to install Zenhub. Zenhub creates viewable pipelines and allows for issue estimation. Estimates are based on anticipated hours to complete.
Categorization of issues¶
- New issues have not been categorized yet or are tagged as question when seeking clarification.
- Backlog issues have been assigned to a Milestone and are waiting for a dev to estimate and claim.
- In Progress issues are being actively worked on.
- Testing issues are waiting for independent tests. (Methodology fully defined as of yet, so devs test their own work for now)
- Closed issues are complete
Milestones¶
- Project Coordinator announces the number of issues and requests them to be claimed and estimated
- Presents a burndown chart for the week
Sunday¶
- Project Coordinator summarizes progress with burndown chart
- Ensures that all items are claimed and estimated
- Escalates to @valzav for unestimated and/or unclaimed items
Wednesday¶
- Testing is completed
- Release notes completed by @valzav
- Project Coordinator announces release on bitsharestalk and provides link to release notes
Thursday¶
- Incomplete items are moved to new Milestone
- Old Milestone is closed
- New Milestone is activated (rinse lather repeat)
Coding style guideline¶
Our style guideline is based on Airbnb JavaScript Style Guide, with few exceptions:
- Strings are double quoted
- Additional trailing comma (in arrays and objects declaration) is optional
- 4 spaces tabs
- Spaces inside curly braces are optional
We strongly encourage to use _eslint_ to make sure the code adhere to our style guidelines.
To install eslint and its dependencies, run:
npm install -g eslint-config-airbnb eslint-plugin-react eslint babel-eslint
Testing¶
Jest currently doesn’t work with node (see https://github.com/facebook/jest/issues/243), so in order to run the tests you need to install iojs. Under Ubuntu instructions can be found here:
Nodesource Ubuntu io.js installation.
In order for jest to correctly follow paths it is necessary to add a local path to your NODE_PATH variable. Under Ubuntu, you can do so by running the following from the web directory:
export NODE_PATH=$NODE_PATH:.
Tests are then run using:
npm test