Thank you for contributing to Ganon! We thrilled to have developers of all levels help improve the project. Before contributing, please read our Objective.
- Make sure you have NodeJS installed.
- Make sure you have Yarn installed. While you are welcome to use npm for package management, the package-lock.json file is intentionally gitignored in favor of yarn.
- Fork the repository on GitHub.
- View Issues that are currently seeking help from the community.
- Find a method, a bug, or a new feature that you wish to work on.
- Please refrain from working on issues that have the label "in progress" applied to them.
- Mention me in a comment of the respective issue: "@BlakeGuilloud I would like to work on this".
- The "in progress" label will be applied to the issue, and you will be given 24 hours to complete the task. If you need more time, please @BlakeGuilloud me and I will happily oblige.
- Find the method you wish to resolve- the file will live in
lib/[methodName].js
. - Fix the method.
- Run a test on the method:
yarn test [methodName]
. If the tests pass, awesome job! - Look over the method's test file in
test/[methodName].test.js
to make sure there are no potential edge cases that were not considered when the tests were conceived.
This is THE most important step in the Ganon Objective. For each issue you resolve, you must create one for someone else to work on!
- Come up with a method that you would like to see implemented into the project.
- Create a new file in the
lib
directory called[methodName].js
. - Write the skeleton of your method, leaving the business logic for someone else!
- Update the
lib/index.js
to require your method and export your newly created skeleton method! - Create a new file in the
test
directory called[methodName].test.js
. - Write a few tests to describe your skeleton method using the Jest Framework.
Now that we have claimed an issue, resolved that issue, and created a skeleton method, we can open up a pull request!
- Run the command
yarn lint
to confirm that the code you have introduced meets our linting standards (See .eslintrc for details). - Pull in the latest master branch from the project. It may have updated since you started work on your issue.
- Resolve any merge conflicts that may have occurred during the development process.
- Push all of the work you have done to your fork on GitHub.
- Open a Pull Request in the master branch.
Thank you so much for contributing to Ganon! We are trying to build a community that encourages people of all skill levels to get involved in open source software- it is the best. We do ask that if your pull request is merged in, please create a new Issue for the skeleton method you have introduced- it helps us out a ton! While the typical contributing process encourages contributors to first discover an issue, this does NOT mean we are unwilling to accept methods that are not listed on our issues page. If you want to see a method implemented that is not listed in our Current Issues, please do not hesistate to introduce something new! But just remember, for each method you introduce to the project, please provide a skeleton for someone else to work on! Give this repository a Star to keep up with it's progress! Thank you all so much.