Skip to content

Release Process

Hugues Valois edited this page Aug 28, 2015 · 38 revisions

Code changes

Update the version in the following files. Note that there may be multiple instances of the version in each of the files.

The README.rst for the bundle packages have the exact version of the packages they are bundling.

  • \azure\README.rst
  • \azure-mgmt\README.rst

The setup.py for every package has a version.

  • \azure\setup.py
  • \azure-common\setup.py
  • \azure-mgmt\setup.py
  • \azure-mgmt-common\setup.py
  • \azure-mgmt-compute\setup.py
  • \azure-mgmt-network\setup.py
  • \azure-mgmt-nspkg\setup.py
  • \azure-mgmt-resource\setup.py
  • \azure-mgmt-storage\setup.py
  • \azure-nspkg\setup.py
  • \azure-servicebus\setup.py
  • \azure-servicemanagement-legacy\setup.py

Several packages (non-bundle and non-nspkg) expose a version attribute.

  • \azure-common\azure\common_init_.py
  • \azure-mgmt-common\azure\mgmt\common_init_.py
  • \azure-mgmt-compute\azure\mgmt\compute_init_.py
  • \azure-mgmt-network\azure\mgmt\network_init_.py
  • \azure-mgmt-resource\azure\mgmt\resource_init_.py
  • \azure-mgmt-storage\azure\mgmt\storage_init_.py
  • \azure-servicebus\azure\servicebus\constants.py
  • \azure-servicemanagement-legacy\azure\servicemanagement\constants.py

The documentation configuration has two strings for version and release
- doc\conf.py

The changelog should be updated with new features, bug fixes, and contributor list.
- \changelog.txt

## Docs

### ReadTheDocs
- Trigger rebuild of readthedocs.org.  This should happen as part of a push, but if not you can post using the below:

curl -X POST http://azure-sdk-for-python.readthedocs.org


### PTVS Documentation

Check if the following page needs an update: [https://github.com/Microsoft/PTVS/wiki/AzureSDK](https://github.com/Microsoft/PTVS/wiki/AzureSDK)

### Azure Documentation

[http://azure.microsoft.com/en-us/develop/python/](http://azure.microsoft.com/en-us/develop/python/)

## Releases

[https://github.com/Azure/azure-sdk-for-python/releases](https://github.com/Azure/azure-sdk-for-python/releases)

- Create a new release, set the contents to the change log entry for the new version.

## Build

To build all the packages:

./Build.ps1


This will create the source distribution files in the `/dist` folder and the wheel files in the `/dist/wheelhouse` folder.

## Python Package Index

Once you've uploaded to PyPI, there's no way to overwrite the package. In case of problems, you'll need to increment the version number. To make sure everything works fine, upload and then test installing from the test server first. Make sure you install the dependencies manually, as they won't be present on the test server.

### Test server

- Create an account for the test server
- Update .pypirc:

[test] repository = https://testpypi.python.org/pypi username = password =


To upload to the test server:

c:\python34\scripts\twine upload -r test dist*.zip c:\python34\scripts\twine upload -r test dist\wheelhouse*.whl


To install from the test server:

pip install azure -i https://testpypi.python.org/pypi


Make sure you already have the non-azure dependencies installed, otherwise they may not be found on the test server.  Don't install using `--no-deps`, now that the azure package is a bundle of several azure packages, we want to test installation of all of them.

pip install python-dateutil pip install requests pip install futures (needed on python 2.x only)


### Production

To upload to production:

c:\python34\scripts\twine upload dist*.zip c:\python34\scripts\twine upload dist\wheelhouse*.whl


To install from production:

pip install azure


## Web Platform Installer

TODO

## Publicity
- News Item for PyTools
- Post to [email protected]