Markdown | 83 lines | 55 code | 28 blank | 0 comment | 0 complexity | 51ba55ecb1dd91e9b73fb0ac0652cea6 MD5 | raw file
1# Contributing to the **Spice** repository 2 3 4At DuckDuckGo, we truly appreciate our community members taking the time to 5contribute to our open-source repositories. In an effort to ensure 6contributions are easy for you to make and for us to manage, we have written 7some guidelines that we ask our contributors to follow so that we can handle 8pull requests in a timely manner with as little friction as possible. 9 10### BETA 11 12The new version of DuckDuckGo has launched public beta! 13See the [what's new](https://github.com/duckduckgo/zeroclickinfo-spice/blob/bttf/BETA.md) for the current status and how you can contribute 14to converting the Spice Instant Answers to the new API ! 15 16<hr> 17 18## Getting Started 19 20Before you can do anything, you first need a [GitHub account](https://github.com/signup/free). This is required because we use GitHub to handle all incoming *Pull Requests* (code modifications) and *Issues* (bug reports) which cannot be made without a GitHub account. 21 22## Submitting a **Bug** or **Suggestion** 23 24- Firstly, please make sure the bug is related to the **Spice** repository. If this bug is about the DuckDuckGo API, or the relevancy of our search results, please visit our feedback page at <https://duckduckgo.com/feedback>. If you're unsure, its best to use the feedback page (your message will be passed along to the correct people). 25 26- Check the **Spice** [issues](https://github.com/duckduckgo/zeroclickinfo-spice/issues) to see if an issue already exists for the given bug or suggestion 27 - If one doesn't exist, create a GitHub issue in the **Spice** repository 28 - Clearly describe the bug/improvemnt, including steps to reproduce when it is a bug 29 - If one already exists, please add any additional comments you have regarding the matter 30 31If you're submitting a **pull request** (bugfix/addition): 32- Fork the **Spice** repository on GitHub 33 34## Making Changes 35 36- Before making any changes, refer to the [DuckDuckHack Styleguide](https://dukgo.com/duckduckhack/styleguide_overview) to ensure your changes are made in the correct fashion 37- Make sure your commits are of a reasonable size. They shouldn't be too big (or too small) 38- Make sure your commit messages effectively explain what changes have been made, and please identify which instant answer or file has been modified: 39 40 ```shell 41 CONTRIBUTING.md - Added the example commit message because it was missing 42 ``` 43 44 is much better than: 45 46 ```shell 47 <bad_commit_example> 48 ``` 49 50- Make sure you have added the necessary tests for your changes 51- Run `dzil test` (executes all tests in t/) to ensure nothing else was accidentally broken 52- If your change affects an instant answer, remember to add yourself to the Metadata attribution list in the appropriate `.pm` file 53 54## Submitting Changes 55 561. Commit your changes. 57 58 ```shell 59 git commit -a -m "My first instant answer that does X is ready to go!" 60 ``` 61 622. Get your commit history [how you like it](http://book.git-scm.com/4_interactive_rebasing.html). 63 64 ```shell 65 git rebase -i origin/master 66 ``` 67 68 or 69 70 ```shell 71 git pull --rebase origin/master 72 ``` 73 743. Push your forked repository back to GitHub. 75 76 ```shell 77 git push 78 ``` 79 804. Add your info to the instant answer so we can give you credit for it on the [Goodies page](https://duckduckgo.com/goodies). You'll see your name or handle on the live site! 81Check out the [Metadata documentation](https://dukgo.com/duckduckhack/metadata) for detailed instructions on how to include your name and links. 82 835. Go into GitHub and submit a [pull request!](http://help.github.com/send-pull-requests/) to the **Spice** repository, making sure to use the **Spice** repository's **[Pull Request Template](https://github.com/duckduckgo/zeroclickinfo-spice/blob/master/pull_request_template_spice.md)**. This will let us know about your changes and start the conversation about integrating it into the live code.