This repository has been archived by the owner on Aug 30, 2024. It is now read-only.
forked from apigee-127/sway
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
100c0a4
commit 36b486c
Showing
1 changed file
with
66 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
The purpose of this guide is to familiarize yourself with the sway development process. My hopes are that this | ||
guide will make contributing to sway much simpler. | ||
|
||
# Development Process | ||
|
||
All of the information below assumes you've installed [Gulp][gulp] globally via `npm install -g gulp-cli`. If you do | ||
not want to install Gulp globally, just replace `gulp` with `node node_modules/gulp/bin/gulp.js` in the examples below. | ||
|
||
Before contributing to sway, it makes sense to understand the development process. Git of course is a given so | ||
no time will be spent talking about it. sway uses Gulp as its task runner, which is used to build, lint, test, | ||
etc. all parts of sway. Below are the gulp tasks: | ||
|
||
* `browserify`: Builds the browser binaries using [Browserify][browserify] | ||
* `clean`: Removes all development artifacts *(`bower_components`, `coverage`, ...)* | ||
* `docs`: Generates `docs/API.md` from the [jsdoc][jsdoc] in the necessary sources | ||
* `lint`: Lint checks the necessary sources using [ESLint][eslint] | ||
* `test-browser`: Runs the test suite for the browser | ||
* `test-node`: Runs the test suite for Node.js | ||
* `test`: Runs both `test-node` and `test-browser` | ||
|
||
If you just run `gulp`, all of these tasks mentioned above will be ran in the proper order. When working on sway | ||
myself, I typically just run `gulp test-node` while working on the bug fix or feature. Once I get the code ready to | ||
commit, I will then run `gulp` to lint check my code, generate the browser builds and sources, ... | ||
|
||
# Reporting Bugs | ||
|
||
To submit new a new bug report, please follow these steps: | ||
|
||
1. Search that the bug hasn't already been reported | ||
2. File the bug *(if the bug report is new)* | ||
|
||
Your bug report should meet the following criteria: | ||
|
||
1. Include a reproduction recipe *(Document the steps required to reproduce the bug including any example code, etc.)* | ||
2. Include what happens when the bug occurs | ||
3. Include what you expect to happen when the bug is fixed | ||
|
||
In the end, please provide as much pertinent information as possible when describing the problem. A good bug report is | ||
clear, concise and requires no guess work on our part. Help us help you! *(I couldn't resist...)* | ||
|
||
# Submitting PRs | ||
|
||
To submit a new PR, please follow these steps: | ||
|
||
1. Write a test to reproduce your bug or to test your enhancement/feature | ||
2. Write your code *(I typically only run `gulp test-node` while working on the code until I get it done)* | ||
3. Run `gulp` | ||
4. Commit | ||
|
||
Your PR should meet the following criteria: | ||
|
||
1. Should include all generated sources | ||
2. Should pass lint checking and have all tests passing *(We do have [Travis CI][travis-ci] setup to catch failing lint | ||
checks and failing tests but this is a safety net only)* | ||
3. Should *ideally* be squashed into one commit *(Regardless of how many commits, just make sure the commit messages are | ||
clear)* | ||
4. Should include tests *(Bug fixes and features should have tests included with them at all times)* | ||
|
||
[bower]: http://bower.io/ | ||
[browserify]: http://browserify.org/ | ||
[eslint]: http://eslint.org/ | ||
[gulp]: http://gulpjs.com/ | ||
[jsdoc]: http://usejsdoc.org/ | ||
[npm]: https://www.npmjs.com/ | ||
[travis-ci]: https://travis-ci.org/apigee-127/sway | ||
|