Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| developer:contributing_to_plugins_on_github [2018/03/30 21:48] – created jay | developer:contributing_to_plugins_on_github [2025/04/14 20:10] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Contributing to Plugins on GitHub ====== | ||
| + | |||
| + | You've found a great plugin that on the [[http:// | ||
| + | |||
| + | This article is a simple how-to on getting started with GitHub, specifically as it relates to contributing to existing plugins (check the [[developer: | ||
| + | |||
| + | ===== Step 1: GitHub Account and App ===== | ||
| + | |||
| + | The first step is to create your GitHub account on the GitHub website if you don't already have one. | ||
| + | |||
| + | Once you've done this, download the [[https:// | ||
| + | |||
| + | Open the GitHub Desktop app and log in using your newly created GitHub credentials. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ===== Step 2: Fork the Plugin Repository into Your Account ===== | ||
| + | |||
| + | Once logged in to GitHub, find the repository you're interested in and fork it into your account. You do that by clicking the Fork button (as of this writing it was in the upper right corner). For instance, if you wanted to fork the Rachio Sprinkler plugin, you'd see this: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | and you'd click the **Fork** button. After a brief in progress page, you should see something similar this: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | This is showing that you now have a fork, or your own copy, of the repository. You can make changes to this copy all you want and it won't affect the original repository. | ||
| + | |||
| + | If you've previously forked the repo, then make sure that it's up to date before making your changes. | ||
| + | ===== Step 2: Make Your Changes ===== | ||
| + | |||
| + | You can edit the files in your fork directly by navigating to the file and clicking the pencil (edit) icon. You likely won't want to do that with source code since you'll want to test your change. However, for text files (like the README.md file or any other text file that doesn' | ||
| + | |||
| + | To fix bugs or add features, you'll most likely want to perform the edit/ | ||
| + | |||
| + | {{: | ||
| + | |||
| + | So, you don't have any outstanding changes to the repo, so the UI is pretty empty. Click the **'' | ||
| + | |||
| + | At this point, you're ready to edit and test your changes. We'll leave that process up to you since it'll be heavily dependent on how you do your development. Once you're happy with your changes, when you switch back to GitHub Desktop it'll show something like this: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Notice the two changes listed in the left column: for you, this will list any files that you've made changes to and the area on the right side will show what the selected changes are. When you're ready to check the changes in (to your local Git repo), enter a summary and description of the changes and click the **'' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Notice that it no longer shows outstanding changes - because there aren't any. You've checked them in (if you switch to History you'll see them there). What you may notice is that the upper right has changed to a **'' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | You'll notice that the top line above the file list will show the commit that you made in GitHub Desktop. | ||
| + | |||
| + | ===== Step 3: Issue Pull Request ===== | ||
| + | |||
| + | The final step is to tell the owner of the repository that you have some changes you'd like to add to the main plugin repository. Click the **'' | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Tons of stuff on that page, including all the changes made to all the files. Click the **'' | ||
| + | |||
| + | That's it! Follow this process to become a contributor to all the open source plugins that are available for Indigo. I'm sure the original developer of the plugin will welcome changes. | ||