Contribution Guidelines Overview

If you would like to become involved in the development of Windows Azure SDKs and Tools there are many different ways in which you can contribute. We strongly value user feedback and will appreciate your questions, bug reports and feature requests. For more details how you can submit those see section Using the product and providing feedback below. In addition you can also contribute changes to the code, which include bug fixes and improvements as well as new features. For more details how to do this please see section Contributing changes below.

Using the product and providing feedback

Using the Windows Azure SDKs and Tools, asking and answering question, reporting bugs and making feature requests are critical parts of the project community. User feedback is crucial for improving the quality of the products and drive further development.
In order to become familiar with the functionality you can donwnload the pre-compiled binaries (see Obtaining the binaries below) or synch the source code from Github and compile locally (see Obtaining the source code below). Once you become familiar with the functionality you can report bugs or request new features (see Report bugs and request features below).

Asking and answering questions

The easiest way to ask questions is to use the Windows 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.

Obtaining the binaries

Pre-compiled binaries of Windows Azure SDK and Tools are available on the Windows Azure web site at http://www.windowsazure.com/en-us/develop/downloads/. Select the lnaguage you are interested in (.NET, Node, Java or PHP) and click on the Install button.

Obtaining the source code

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 by following the following steps on your local machine:

  1. Go to https://github.com/WindowsAzure/[PROJECT]
  2. Select and choose your own Github account as target
  3. Clone the repository on your local machine with the following Git command
    git clone git@github.com:[USERNAME]/[PROJECT]

Report bugs and request features

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.

Contributing changes

How to become a contributor?

In order to become a contributor to the project we need you to sign the Contributor License Agreement (CLA). Signing the Contributor License Agreement (CLA) does not grant you rights to commit to the main repository but it does mean that we will consider your contributions and you will get credit if we do. Active contributors might be asked to join the core team, and given the ability to merge pull requests.
You can download the Contributor License Agreement (CLA) by clicking at the following link: http://windowsazure.github.com/docs/Contribution License Agreement.pdf. Please fill in, sign, scan and email it to cla@microsoft.com.

Checkout the latest code

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 by following the following steps on your local machine:

  1. Go to https://github.com/WindowsAzure/[PROJECT]
  2. Select and choose your own Github account as target
  3. Clone the repository on your local machine with the following Git command
    git clone git@github.com:[USERNAME]/[PROJECT]
  4. Add remote to your local repository using the following Git commands
    cd [PROJECT]
    git remote add upstream git@github.com:WindowsAzure/[PROJECT]
  5. Update your local repository with the changes from the remote repository by using the following Git commands
    git fetch upstream/dev
    git merge upstream/dev

Create bug fixes and features

You make modifications of the code in your local Git repository. Once you are done with your implementation follow the steps below:

  1. Change the working branch to dev with the following command
    git checkout dev
  2. Submit the changes to your own fork in GitHub by using the following command
    git submit
  3. In GitHub create new pull request by clicking on the Pull Request button
  4. In the pull request select your fork as source and WindowsAzure/[PROJECT] as destination for the request
  5. Write detailed message describing the changes in the pull request
  6. Submit the pull requst for consideration by the Core Team

Note: All changes and pull request should be done in the dev branch. Changes will be integrated in the master branch by the Core Team.

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.

Contribution guidelines

Before you start working on bug fixes and features it is good idea to discuss those broadly with the community. You can use the forums as described in Asking and answering questions for this purpose.
Before submitting your changes make sure you followed the guidelines below:

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.