If you would like to become involved in the development of Microsoft Azure SDKs and Tools there are many different ways in which you can contribute. We strongly value your feedback, questions, bug reports, and feature requests.
Consider these options
We have based our development process for moving code around on the now-classic Successful Git Branching Model as well as using GitHub pull requests and forks between the central organization repository and developer accounts.
From any of the Microsoft Azure code repositories on GitHub, you can "Fork" the code to your own account.
To get the source on your local development machine,
simply clone the repo using Git:
git clone https://github.com/USERNAME/PROJECT.git
git checkout dev
Each repository has a README that should be helpful to learn more about the specifics of the language, project and its development environment.
The easiest way to ask questions is to use the Microsoft Azure SDK and Tools forums on StackOverflow and MSDN. If your target language is .NET the most appropriate forums for discussion are on MSDN. For all other languages please use StackOverflow.
Issues and feature requests are submitted through the project's
Issues section on GitHub. Please use the following guidelines when
you submit issues and feature requests:
Issues are regularly reviewed and updated with additional information by the core team. Sometimes the core team may have questions about particular issue that might need clarifications so, please be ready to provide additional information.
Feature requests and Design Change Requests (DCRs) are an important part of the lifecycle of any software project. Please log these as Issues in the appropriate GitHub repository.
Although the team will consider any opened issues, please keep in mind that there is an extremely high bar when it comes to expanding the scope and functionality of a core product such as an SDK for Microsoft Azure.
When opening any feature requests, consider including as much information as possible, including:
From an engineering standpoint, please make sure that you can build and test the code. Familiarize yourself with our project guidelines and coding conventions.
The SDK team also recommends that you read these great posts about open source:
If you have ever considered contributing to the ASP.NET Web Stack, we have modeled much of this process on that project.
Before you start working on a feature or substantial code contribution please discuss it with the team and ensure it is an appropriate addition to the core product.
Note that code submissions will be rigorously reviewed and tested by the Microsoft Azure SDK Team (or the appropriate Azure service owners), and only contributions that meet an extremely high bar for both quality and design/roadmap appropriateness will be merged into the source.
In some situations Microsoft employees may engage with you to review design decisions and mitigate issues as part of the contribution process. Understand that in some situations, developers inside Microsoft may decide to decline your pull request and instead log the issue for a future product milestone or bug fix. The team will provide information in the pull in these situations and still thank you for your contribution.
For bug fixes, simply start a conversation in the related GitHub issue to notify the team and chat about the design of the fix if needed.
There are many opportunities to build value-add services and frameworks that do not need to direct alterations to the SDKs and products: NuGet packages for .NET or NPM modules for Node.js devs can easily take a dependency on the core SDK components, for example.
In order to speed up the process of accepting your contributions, you should try to make your checkins as small as possible, avoid any unnecessary deltas and the need to rebase.
In order to become a contributor to the Microsoft Azure open source projects on GitHub you must follow some legal requirements.
Until you meet the legal requirements your pull requests / source contributions will not be considered or reviewed.
As a community member you must sign the Contribution License Agreement (CLA) before you can contribute to Microsoft open source projects.
You only need complete and submit the documentation once. Please carefully review the document; you may also need to have your employer sign the document.
Signing the Contribution License Agreement (CLA) does not grant you rights to commit to the main repository but it does mean that the Microsoft Azure team will be able to review and consider your contributions and you will get credit if we do.
The Contribution License Agreement (CLA) is available at: https://cla.azure.com/.
If you are currently employed as an active Full-Time Employee (FTE) at Microsoft you may be able to contribute through your job to the SDK without signing a CLA.
You will need to clearly identify yourself as a Microsoft employee in your GitHub profile. You should also include your alias in any pull requests.
As a courtesy you should have a conversation about contributing to the Azure open source projects with your manager, and remember to follow your business group's guidelines and policies.
If your Microsoft team is looking to partner with the Azure SDK team to ship new bits, create new open source projects & meet your shipping criteria, please start engaging the Microsoft Azure SDK triad early.
Our SharePoint site contains plenty of information on the onboarding process, timelines and contacts.
Open Azure SDK SharePoint
Requires corporate credentials
Active contributors might be asked to join the core team or help with feature development. The ability to merge pull requests typically remains with the SDK team to ensure that contributions to master are thoroughly reviewed.
Please configure your Git client with a name and email address to use for your commits. This will also help the team validate your CLA status:
git config user.name Your Name git config user.email YourAlias@YourEmailDomain
In order to obtain the source code you need to become familiar with Git (see http://progit.org/book/) and Github (see http://help.github.com/) and you need to have Git installed on your local machine. You can obtain the source code from Github and start a contributor environment by following the these steps on your local machine:
git clone email@example.com:[USERNAME]/[PROJECT]
git checkout dev
You can then start to make modifications to the code in your local Git repository.
This can be done in your local dev branch or, if you prefer, in a branch out of dev.
In the simplest scenario, working directly on dev, you can commit your work
with following commands:
git commit -a
Once your code is in your github fork, you can then submit a pull request
for the team's review. You can do so with the following commands:
If there are conflicts between your fork and the main project one, github will warn you that the pull request cannot be merged. If that's the case, you can do the following:
git remote add upstream -f firstname.lastname@example.org:Azure/[PROJECT]
git merge upstream/dev
Please keep in mind that not all requests will be approved.
Requests are reviewed by the Core Team on a regular basis and will
be updated with the status at each review. If your request is
accepted you will receive information about the next steps and
when the request will be integrated in the main branch. If your
request is rejected you will receive information about the reasons
why it was rejected.
The Microsoft Azure SDK team has an active Microsoft discussion group used for submitting code reviews and discussing design changes, best practices, and other important topics.
Part of the code review process involves using a code review tool, and for most open source projects, the team uses the built-in Pull Request functionality on GitHub for enabling annotations and comments on code before accepting the pull request/s.
Expect a good amount of feedback as part of any pull request: not only which branch to merge to and from, but also consistency guidelines, matching existing code, and making targeted, smart changes when fixing bugs.
The SDK team is considering allowing for community code reviews as well. If you watch a repository of interest, you can make comments on any public pull request. The best time for providing feedback is during dev branch pulls into the primary Azure GitHub organization.
The best way to get in touch with the team regarding feature ideas, developer designs amd communicating about bug fixes is to use the Issues system built in to GitHub.
If you are looking for support or to provide feedback, there are a lot of places to do this.
Huge thanks go to the contributors from the community who have been actively working with the Microsoft Azure SDK team.
You can find a list of contributors here.
Microsoft is always hiring bright and talented students & professionals. Please consider submitting your resume and applying for open positions at //careers.microsoft.com.