Contributing
We love contributions. Yes indeed, we used the word LOVE! But please make sure you follow the same coding style. Here are some guidelines.
Building
After contributing you probably want to build the library to run some specs. Make sure you have Node.js installed on your system, cd
to the svg.js directory and run:
$ npm install
Build SVG.js by running rollup
:
$ npm run build
The resulting files can be found in the dist
folder.
Testing
There is two ways to run the test suite. One is from the command line and the other is in your browser.
To run the test suite at the command line, you need to have Firefox installed.
$ npm test
To run the test suite in your default browser, simply open /spec/SpecRunner.html
. Usually by double click.
If you are the cautious type, you might want to read before you push, on how to prevent pushing failing commits.
Before you push
Imagine that you're tweaking some part of svg.js and as the responsible person you are, you made sure to run npm test
before pushing. Unfortunately npm test
tests the current dist/svg.js
which only has your edits if you first did npm run build
.
This has happened to me a couple of times and as a svg.js contributor, it's embarrassing.
Fortunately git
has a pre-push
hook which can save yourself from the embarrassment.
I have created a pre-push
hook that will build a new dist/svg.js
and run the tests. It's developed on Ubuntu 16.04 but should work on all *nix platforms. You can disable this check with:
git push --no-verify
#!/bin/sh
npm run build:test && npm run test:quick
# check how the test went
testCode=$?
[ "$testCode" = 0 ] || echo "Your current build does not pass our unit tests - please make them pass before you push"
# revert artifacts created during build
git reset --hard $(git log -1 --pretty=%H)
# exit with the test exit code
exit $testCode
Install
Put pre-push in your local SVG.js repository, in the .git/hooks folder and make it executable:
sudo chmod +x .git/hooks/pre-push
To disable the check when you push, write:
git push --no-verify