5.5 KiB
Contributing
Contributions are welcome!
Please carefully read this page to make the code review process go as smoothly as possible and to maximize the likelihood of your contribution being merged.
Bug Reports
For bug reports or requests submit an issue.
Pull Requests
Please follow the general Repo Structure and Notebook Structure before submitting your pull request.
The preferred way to contribute is to fork the main repository on GitHub.
-
Fork the main repository. Click on the 'Fork' button near the top of the page. This creates a copy of the code under your account on the GitHub server.
-
Clone this copy to your local disk:
$ git clone git@github.com:YourLogin/interactive-coding-challenges.git $ cd interactive-coding-challenges
-
Create a branch to hold your changes and start making changes. Don't work in the
master
branch!$ git checkout -b my-feature
-
Work on this copy on your computer using Git to do the version control. When you're done editing, run the following to record your changes in Git:
$ git add modified_files $ git commit
-
Push your changes to GitHub with:
$ git push -u origin my-feature
-
Finally, go to the web page of your fork of the interactive-coding-challenges repo and click 'Pull request' to send your changes for review.
Please submit one pull request per challenge.
GitHub Pull Requests Docs
If you are not familiar with pull requests, review the pull request docs.
Notebook Installation
Refer to Accessing the Challenges, Notebook Installation, and Nose Installation to set up your local environment.
Adding New Solutions to Existing Challenges
Challenges have multiple solutions. If adding new solutions to existing challenges:
- Add your algorithm discussion and code solution to the existing notebook
- Update the unit test to include your solution
- Verify your code passes the unit tests
Adding New Challenges
The README contains several sample challenges that are not yet implemented.
- The sample challenges are only suggestions, please do not limit yourself to only these topics
- Feel free to send pull requests on different challenges or categories of challenges
- Try to keep the "Challenge" title relatively short and expand on the details within the notebook
- Review the Repo Structure and Notebook Structure sections
- Check out the template challenge and solution notebooks to help you get started
Challenge | Static Notebooks |
---|---|
Check if a number is prime | Contribute│Contribute |
Generate a list of primes | Contribute│Contribute |
Update the list of challenges in the README so we can enjoy your challenge!
Update Notebook Author(s)
When contributing to a notebook, update the notebook author(s):
This notebook was prepared by Joe and Jane. Source and license info is on GitHub.
Maintain Consistent Style
Please refer to the style of existing notebooks to help maintain consistency. A consistently themed collection of notebooks will help users more seamlessly transition from challenge to challenge.
Review the following style guide.
Review PEP8 and use a validator.
Note: IPython Notebook doesn't seem to properly handle a blank line at the end of a code cell when writing the cell's contents to a file, as referenced in this issue. Notebook cells currently do not have a blank line at the end of each code cell.
Contributions in Languages Other than Python
Feel free to share your thoughts on how we could best approach adding challenges in other supported languages:
- Repo structure
- README challenge list
- Installation instructions
- Etc
Share your thoughts in this issue.