waychaser is released under the non-restrictive Apache 2.0 licenses and follows a very standard Github development process, using Github tracker for issues and merging pull requests into master. Contributions of all form to this repository is acceptable, as long as it follows the prescribed community guidelines enumerated below.
Please report issues or request features in the waychaser issues register.
All the source code is inside the src
directory. All the test source code is in src/test
directory
This software uses cucumber with different clients for interacting with the API, either directly or via Web Driver (for making sure the library works in the browser), node-api
and browser-api
.
Each interface has the same behaviour as described by the cucumber scenarios. Different test clients are used to interact with each interface.
The tests for these clients can be run using the test:node-api
and test:browser-api
npm scripts respectively.
To run all the tests, run npm run test
While developing, the watch:test:*
npm scripts act as their test:*
counterparts, but will automatically re-execute each time you change a relevant file.
The normal development cycle against a new backend API is:
- Add scenario to feature file
- run
npm run watch:test:node-api
- write code until the scenario passes
- commit
- run
npm run watch:test:browser-api
- write code until the scenario passes
- commit
- run
npm run test
to make you didn't break anything else along the way - run
npm run cover
and remove dead code - commit and push
If committing fails, check your commit logs.
There is a pre-commit hook, that:
- lint's the code,
- runs the
test:node-api
npm script
Please don't force commit. Fix your 💩 and then try again. If you need help, ask.
If you force commit 💩 then you could get...
ESLint is a pluggable and configurable linter tool for identifying and reporting on patterns in JavaScript.
.eslintrc.json file (alternatively configurations can we written in Javascript or YAML as well) is used describe the configurations required for ESLint.
VSCode is a lightweight but powerful source code editor. ESLint takes care of the code-quality. Prettier takes care of all the formatting.
- Install VSCode
- Install ESLint extension
- Install StandardJS extension
- Install Prettier extension
- Install Cover extension
- Install Commit Message Editor
- Install Code Spell Checker
A rough outline of an ideal contributors' workflow is as follows:
- Fork the current repository
- Create a topic branch from where to base the contribution. Mostly, it's the main branch.
- Make commits of logical units.
- Push changes in a topic branch to your forked repository.
- Before sending out the pull request, please sync your forked repository with the remote repository to ensure that your PR is elegant, concise. Reference the guide below:
git remote add upstream [email protected]:mountain-pass/waychaser.git
git fetch upstream
git rebase upstream/master
git checkout -b your_awesome_patch
... add some work
git push origin your_awesome_patch
- Submit a pull request to mountain-pass/waychaser and wait for the reply.
Thanks for contributing!
By submitting changes to this repository, you are accepting:
- To adhere to our code of conduct, and
- You are transferring copyright of your change to the waychaser project.
You will get an author credit if we are able to accept your contribution. Active contributors may get invited to join the core team that will grant them privileges to merge existing PRs.