First off, thank you for considering contributing to gaspard. It's people like you that make gaspard such a great tool.
If you've noticed a bug or have a question search the issue tracker to see if someone else in the community has already created a ticket. If not, go ahead and make one!
If this is something you think you can fix, then fork gaspard and create a branch with a descriptive name.
A good branch name would be (where issue #325 is the ticket you're working on):
git checkout -b 325-add-dom-utiliy
Install the development dependencies:
yarn install
Now you should be able to run the entire suite using:
yarn test:watch
-
Ensure the bug was not already reported by searching all issues.
-
If you're unable to find an open issue addressing the problem, open a new one. Be sure to include a title and clear description, as much relevant information as possible, and a code sample or an executable test case demonstrating the expected behavior that is not occurring.
At this point, you're ready to make your changes! Feel free to ask for help; everyone is a beginner at first 😸
Gaspard is meant to be used by humans, not cucumbers. So make sure to take a look at your changes in a browser.
To boot up a test NodeJS app:
yarn dev
You should now be able to open http://localhost:8080 in your browser. Open your browser Dev console and edit the examples/index.js to see with your feature/bugfix working.
At this point, you should switch back to your master branch and make sure it's up to date with gaspard's master branch:
git remote add upstream [email protected]:lucaperret/gaspard.git
git checkout master
git pull upstream master
Then update your feature branch from your local copy of master, and push it!
git checkout 325-add-dom-utiliy
git rebase master
git push --set-upstream origin 325-add-dom-utiliy
Finally, go to GitHub and make a Pull Request :D
Travis CI will run our test suite. We care about quality, so your PR won't be merged until all tests pass.
If a maintainer asks you to "rebase" your PR, they're saying that a lot of code has changed, and that you need to update your branch so it's easier to merge.
To learn more about rebasing in Git, there are a lot of good resources, but here's the suggested workflow:
git checkout 325-add-dom-utiliy
git pull --rebase upstream master
git push --force-with-lease 325-add-dom-utiliy
A PR can only be merged into master by a maintainer if:
- It is passing CI.
- It has no requested changes.
- It is up to date with current master.
Any maintainer is allowed to merge a PR if all of these conditions are met.
Maintainers need to do the following to push out a release:
- Make sure all pull requests are in and the master is up to date
- git push (semantic-release will do the tag)