This is where you will find a curated set of open source Indigo plugins, created by us and by others. We have many 3rd party developers who have created some really great plugins, and for some of those plugins this repository has become home after the original developer has moved on.
One of the major distinctions of the plugins hosted here are that they use a more formal approach to contribution and release into the Indigo Plugin Store. While these plugins aren't an official part of Indigo and aren't (necessarily) tested/validated by Indigo Domotics, we have created a process through which these plugins go which will ensure a high level of quality, using a more rigorous process modeled on other open source projects.
Here's the flow to submit changes to the repos :
- Create an issue in the repo (if there isn't already one there) that discusses the things that your contribution will address. You can skip this if your changes are addressing already present issues.
- Fork (if you haven't already) the repo that you want to work on. If you already have a fork, on the Github page for your fork, click the Fetch & Merge button to make sure your fork is up to date.
- Make the changes as you would with any other git repo. Commit and push your changes up to your github fork. You can do this as often as you like since it's a nice to use github as an extra backup of your work.
- Create beta releases as necessary in your fork to send out to your beta testers. If you have the necessary environment/equipment/etc, you can skip the beta process if you like, though we encourage it. Beta testing often reveals issues that are environment specific and which your environment may not replicate.
- When you've finished with your beta testing and are ready to proceed, create a Pull Request (should be a new button below the Branch line on the main view of your fork). In your pull request, please mention the issue you created above (in the tool bar, the chat-like bubble with an arrow going out). You should also mention any other issues that your changes address if there are multipe.
- We will get notification of your PR, and one of our open source repo managers will review the changes and link it to your issue. The reviewing open source manager will either approve it or ask for changes.
- If we asked for changes, make them, commit/push them and update the PR with further comments.
- We will review it again, and if necessary go back to the previous step. Eventually it will be approved (many times on the first submission).
- Once approved, an open source manager will merge the changes, generate a release in the main github repo, and update the Indigo Plugin Store with the new release.
- The open source manager will close the issue(s) linked to in the PR (this is why it's important to add links to those issues in your PR), mentioning the version number for the release.
We believe this is a fairly lightweight process that after a time or two will become very easy for contributors to follow, and at the same time it will help maintain a very high level of quality for these open source repositories.
We really appreciate everyone who contributes to our Indigo ecosystem, from developers who build and update plugins, to scripters who build and share scripts, to users who help others in our User Forums. Everyone working together is what makes Indigo a great ecosystem for advanced smart homes. If you would like to contribute in ways other than coding, please feel free to contact us with your ideas - we welcome all forms of help!