Skip to content

Release Process

Hugues Valois edited this page Aug 31, 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

Tests

The test recordings include the version number in the User-Agent header of each request. You may be able to find/replace those, or you may have to create new recordings.

In any case, make sure that the tests succeed in playback mode after you've incremented the version.

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

Azure Documentation

http://azure.microsoft.com/en-us/develop/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.

If you get an general error when creating the wheel, make sure that your setup.py files don't have a Unicode BOM.

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.

Pip Cache

Beware of the pip cache! If you see a message like this while testing installation of the package you've uploaded to pip:

Using cached azure_storage-0.20.0-py2.py3-none-any.whl

Then delete the %localappdata%/pip folder and test again.

Test server

  • Create an account for the test server
  • Update .pypirc:
[test]
repository = https://testpypi.python.org/pypi
username = <yourusername>
password = <yourpassword>

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

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)

To install from the test server:

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

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

Get access to http://webpi.codeplex.com/ (ask Chris Sfanos) and fork the repo.

Make the following changes:

  • Update date and version in Src/Python/WebProductList_Python.xml
  • Update date and version in Src/azuresdk/AzureSDK_Partners/WebProductList_AzureSDK_Partners.xml

To build:

  • Run Tools/build.cmd

Publicity