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

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.

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 = <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

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