Contributions are awesome! However, Swig is held to very high coding standards, so to ensure that your pull request is easy to understand and will be more successful, please follow this checklist:
- Setup: Before you begin, run
make
from your command line to ensure all dependencies are met. - Test: Always write new test cases.
make test
andmake test-browser
. - Lint: Ensure coding-standards are followed.
make lint
. - Explain: In your pull request, very clearly explain the use-case or problem that you are solving.
Pull requests that fail to add test coverage, break tests, or fail linting standards will not be accepted.
The swig codebase is highly tested and linted, as a way to guarantee functionality and keep all code written in a particular style for readability. No contributions will be accepted that do not pass all tests or throw any linter errors.
Here's an example of a great pull request that followed the above checklist: Pull Request 273 - Added patch and test case for object prototypal inheritance.
All documentation for Swig is generated from JSDoc comments inline and Swig template files within the ./docs
folder. To make changes to any documentation, follow these steps and tips:
# Clone the repo
$ git clone git@github.com:paularmstrong/swig.git
$ cd swig
# Get dependencies
$ make
# Ensure your $NODE_PATH is set
# Place this in your ~/.bash_profile
export NODE_PATH=$(npm -g root 2>/dev/null)
# Run the documentation test environment
$ make docs
- Once you have the documentation test environment running, your browser will open showing you the documentation site.
- If you are making changes to HTML files in
./docs
, reload the page to see them reflected immediately. - If you are changing any content from the inline JSDoc comments, run
make build-docs
to rebuild the JSON data files.
Once your documentation pull request is accepted, the person merging your request will be responsible for pushing the changes to the live site. Any attempts to push to or run a pull request to the gh-pages
branch will not be accepted.
Installs all dependencies and sets up sanity-check git hooks.
Builds the browser-ified version of Swig to ./dist
.
Runs all test files matching ./test/*.test.js
within node.js.
Builds for browser and runs a large subset of tests from the make test
task within a browser environment using Phantom.js.
Builds a test coverage report.
Builds documentation and runs a web-server for viewing a preview of the documentation site.
Builds documentation for docs
and gh-pages
tasks from jsdoc comments in ./lib
.
Builds documentation as static HTML files and pushes them to the gh-pages
git branch.
Updates the package version number throughout the source files from the version
key found in package.json
.