-
Notifications
You must be signed in to change notification settings - Fork 334
Contributing
#Contributing to EpicEditor
Suggestions for contributing to EpicEditor. No fix or feature is too small. Thanks for contributing!
##Issues
Before submitting a bug report or feature request, please check to make sure it hasn't already been submitted. You can indicate support for an existing issue by commenting on that issue. When submitting a bug, please include any details necessary to reproduce it (e.g. browser, OS etc). And if you're feeling frisky, include a failing test!
If you are fixing a bug or adding a feature, please report the bug or feature and reference the ticket number in the commit message, for example:
$ git commit -m "Ticket #75 - add semicolon."
This makes it easier to track stuff down later on and will also add the commits directly into the GitHub issue with the matching issue number like comments.
We rely on Jake to manage tasks, Mocha and expect.js for tests, JSHint for linting, UglifyJS for minification, and Marked to generate the docs. All of these run on NodeJS and can be installed via npm as follows:
Jake must be installed globally:
$ npm install -g jake
Additional dev dependencies can be installed from the EpicEditor directory via npm as follows:
$ cd EpicEditor
$ npm install
- Fork the project.
-
Create a topic branch off develop e.g.
$ git checkout -b myfeature develop
$ git checkout -b hotfix-1.2.1 master
. -
Turn on
jake watch
so changes will automatically get built. - Add tests where applicable.
-
Implement your feature or bug fix. Changes to EpicEditor core should be made to the
src/
files. Not the built files inepiceditor/
. -
Run tests:
$ jake test
then go to: http://localhost:8888/test/tests.html -
Rebuild: If everything is passing,
$ jake build
. This will run linting and if linting fails you'll need to fix your lint errors and run$ jake build
again. - Commit and push your changes. Try to reference the associated ticket number in your commit message as noted above.
-
Submit your pull request - ideally targeting the
develop
branch for anything other than hotfixes.
The flow to update the docs is similar. Do steps 1 and 2 above then:
- Make your changes to the
/docs/*
files orREADME.md
. NOTE:index.html
is built from theREADME
and should not be directly modified. - If you modify the
README.md
,header.html
, orfooter.html
files you'll need to run$ jake docs
to rebuildindex.html
and see the changes, or you can just runjake watch
and the docs will automatically be built when you save theREADME.md
file. - Follow steps 7 and 8 above.
A core developer will add a black label with a version number where this was pulled in, i.e. if the fix was included 0.1.1
then we will add a black label with 0.1.1
and close the ticket. Closed tickets do not mean they are in the release branch (master
) yet!
- You can run
$ jake build:force
to skip the linter allowing you to put in debug statements or other lint-failing code while you're working. - We don't use gitflow, but we use
develop
as our working branch andmaster
is the release branch. Always be indevelop
when working on something.master
can be up to a month old if there hasn't been any hotfixes.