-
Notifications
You must be signed in to change notification settings - Fork 3k
Release Process
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. Change the text AND the links.
/azure/README.rst
/azure-mgmt/README.rst
setup.py of Autorest generated packages extract the version automatically. These setup.py have to be changed manually if necessary:
/azure/setup.py
/azure-common/setup.py
/azure-mgmt/setup.py
/azure-mgmt-common/setup.py
/azure-mgmt-nspkg/setup.py
/azure-nspkg/setup.py
/azure-servicebus/setup.py
/azure-servicemanagement-legacy/setup.py
Do NOT forget the install_requires
list.
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-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
The test recordings include the version number in the User-Agent header of each request, but this header is not required for the tests to pass. You may want 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.
-
Regenerate the technical documentation. Go to the
doc
folder and launch thegenerate_doc.py
. -
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
Check if the following page needs an update: https://github.com/Microsoft/PTVS/wiki/AzureSDK
http://azure.microsoft.com/en-us/develop/python/
To build all the packages in a dist folder:
python .\setup.py sdist --formats zip -d ../dist
python .\setup.py bdist_wheel -d ../dist/wheelhouse
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.
This requires wheel
to work.
You have to erase every zip
and whl
which are not modified by this release or you will get an error from Pypi.
If it's the first time the package is made, call this from the package folder:
python .\setup.py register
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.
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 or use the --no-cache-dir
option.
- 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:
twine upload -r test dist\*.zip
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
- Update .pypirc:
[pypi]
repository = https://pypi.python.org/pypi
username = <yourusername>
password = <yourpassword>
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
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.
- As the
release
button send a notification to our customers, push it only when the new packages are in Pypi.
Get access to http://webpi.codeplex.com/ (ask Chris Sfanos) and fork the repo.
Update :
-
In Src/Python/WebProductList_Python.xml, find the
entry
elements withproductId
PythonAzure27 and PythonAzure34- Update
version
element - Update
published
element - Update
updated
element - Update version in discoveryHint section
- Update version in installer section
- Update
-
In Src/azuresdk/AzureSDK_Partners/WebProductList_AzureSDK_Partners.xml, find the
entry
elements withproductId
AzurePython27SDK and AzurePython34SDK:- Update
version
element - Update
published
element - Update
updated
element
- Update
To build:
- Run Tools/build.cmd
To test:
- Copy bin/WebProductList.xml to test machine
- Change WebPI primary feed to the full path to that file
- Install Microsoft Azure SDK for Python 2.7 and Microsoft Azure SDK for Python 3.4
To reset:
If you get stuck with an error when WebPI start because the custom feed can't be loaded, you can reset everything with this command.
Run from admin command prompt, from %programfiles%\microsoft\web platform installer
.
webplatforminstaller.exe /reset
- News Item for PyTools
- Post to [email protected]