The Azure IoT SDKs team wants to hear from you!
Our team monitors Stack Overflow, especially the azure-iot-hub tag. It really is the best place to ask.
We monitor the Github issues section specifically for bugs found with our SDK, however we will reply to questions asked using Github issues too.
That is definitely something we want to hear about. Please open an issue on github, we'll address it as fast as possible. Typically here's the information we're going to ask for to get started:
- What version of the SDK are you using?
- Do you have a snippet of code that would help us reproduce the bug?
- Do you have logs showing what's happening?
- And please share all repro steps for your issue.
Our SDK is entirely open-source and we do accept pull-requests if you feel like taking a stab at fixing the bug and maybe adding your name to our commit history :) Please mention any relevant issue number in the pull request description. Please see Contribute code code below.
For simple markdown files, we accept documentation pull requests submitted against the master
branch, if it's about existing SDK features.
If your PR is about future changes or has changes to the comments in the code itself, we'll treat is as a code change (see the next section).
Pull-requests for code to be submitted against the master
branch. We will review the request and once approved we will be running it in our gated build system. We try to maintain a high bar for code quality and maintainability, we insist on having tests associated with the code, and if necessary, additions/modifications to the requirement documents. Please refer to our coding guidelines before you begin contribution.
Also, have you signed the Contribution License Agreement (CLA)? A friendly bot will remind you about it when you submit your pull-request.
If your contribution is going to be a major effort, you should give us a heads-up first. We have a lot of items captured in our backlog and we release every two weeks, so before you spend the time, just check with us to make sure your plans and ours are in sync :) Just open an issue on github and tag it as "contribution".
We use requirement documents to describe the expected behavior for each class. It works as a basis to understand what tests need to be written.
Each requirement has a unique tag that is re-used in the code comments to identify where it's implemented and where it's tested.
Each unique tag is in the following form: SRS_<MODULE_NAME><DEVELOPER_ID><REQUIREMENT_ID>
When contributing to requirement docs, you can use 99
as a DEVELOPER_ID, and just increment the requirement ID to be unique.
For an example see the template in the Adding new files
If your contribution is not part of an already existed code, you must create a new requirement file and a new unit test. Our team created a template to help you on it.
The template is located at Template.java. For the requirements you can copy the template_requirements.md to the appropriate devdoc
directory and change it to fit your needs.
For the unit test, the template is located at TemplateTest.java. This test template explains how the template is tested.
We expect all guidelines to be met before accepting a pull request. As such, we will work with you to address issues we find by leaving comments in your code. Please understand that it may take a few iterations before the code is accepted as we maintain high standards on code quality. Once we feel comfortable with a contribution, we will validate the change and accept the pull request.
Thank you for any contributions! Please let the team know if you have any questions or concerns about our contribution policy.