mirror of
https://github.com/the-djmaze/snappymail.git
synced 2025-01-01 12:32:40 +08:00
36 lines
2 KiB
Markdown
36 lines
2 KiB
Markdown
|
# Contributing
|
||
|
|
||
|
## Important notes
|
||
|
Please don't edit files in the `dist` subdirectory as they are generated via grunt. You'll find source code in the `src` subdirectory!
|
||
|
|
||
|
### Code style
|
||
|
Regarding code style like indentation and whitespace, **follow the conventions you see used in the source already.**
|
||
|
|
||
|
### PhantomJS
|
||
|
While grunt can run the included unit tests via [PhantomJS](http://phantomjs.org/), this shouldn't be considered a substitute for the real thing. Please be sure to test the `test/*.html` unit test file(s) in _actual_ browsers.
|
||
|
|
||
|
See the [Why does grunt complain that PhantomJS isn't installed?](https://github.com/gruntjs/grunt/blob/master/docs/faq.md#why-does-grunt-complain-that-phantomjs-isnt-installed) guide in the [Grunt FAQ](https://github.com/gruntjs/grunt/blob/master/docs/faq.md) for help with installing or troubleshooting PhantomJS.
|
||
|
|
||
|
## Modifying the code
|
||
|
First, ensure that you have the latest [Node.js](http://nodejs.org/) and [npm](http://npmjs.org/) installed.
|
||
|
|
||
|
Test that grunt is installed globally by running `grunt --version` at the command-line. If grunt isn't installed globally, run `npm install -g grunt` to install the latest version. _You may need to run `sudo npm install -g grunt`._
|
||
|
|
||
|
_Note that in Windows, you may have to run `grunt.cmd` instead of `grunt`._
|
||
|
|
||
|
1. Fork and clone the repo.
|
||
|
1. Run `npm install` to install all dependencies (including grunt).
|
||
|
1. Run `grunt` to grunt this project.
|
||
|
|
||
|
Assuming that you don't see any red, you're ready to go. Just be sure to run `grunt` after making any changes, to ensure that nothing is broken.
|
||
|
|
||
|
## Submitting pull requests
|
||
|
|
||
|
1. Create a new branch, please don't work in your `master` branch directly.
|
||
|
1. Add failing tests for the change you want to make. Run `grunt` to see the tests fail.
|
||
|
1. Fix stuff.
|
||
|
1. Run `grunt` to see if the tests pass. Repeat steps 2-4 until done.
|
||
|
1. Open `test/*.html` unit test file(s) in actual browser to ensure tests pass everywhere.
|
||
|
1. Update the documentation to reflect any changes.
|
||
|
1. Push to your fork and submit a pull request.
|