Skip to content

Latest commit

 

History

History
57 lines (37 loc) · 3.85 KB

File metadata and controls

57 lines (37 loc) · 3.85 KB

Release process

Prerequisites

First, ensure your code on main is ready to publish.

For management (control plane) packages, start with this page: https://github.com/Azure/azure-sdk-for-python/blob/main/doc/dev/mgmt/mgmt_release.md

For client (data plane) packages, ensure that:

Python Package Index

Python packages are uploaded to PyPI. 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. Be sure that before going forward your package has passed all the necessary testing.

Production - Deploy with Azure DevOps

To avoid "accidental" pushes to our target repositories, approval will be requested directly prior to the final PyPI publish. Reference this page to learn how to request access to Azure SDK DevOps for release approval.

Instead of a single central pipeline, the python SDK has moved to service directory associated build pipelines. These are driven by yml templates at the root of each service folder. Example for storage service folder.

Releasing Through Unified Pipelines

  1. Begin by locating your pipeline on the internal project under the python folder. Naming convention is python - <servicedir>.
    1. To release any package under the folder sdk/core, you would queue a build against python - core pipeline.
  2. After queuing the build, a last test pass will execute prior to splitting into a release job per defined artifact.
  3. Click approve only on packages that you wish to release to pypi. Reject all others.
    1. A partially approved build will look like this

Validate artifacts prior to clicking approve on the release stage for the package you wish to release.

Additional Internal Wiki Walkthrough

Note: All releases to PyPI are handled through the ESRP release process. Manual uploads via twine are no longer permitted. See ESRP Release Process for details.

NOTE REGARDING ARTIFACTS

Note that the unified pipeline will maintain a separate release step for each defined artifact in the Artifacts parameter in the relevant ci.yml file. Example

The name parameter is required to be the exact package name with _ in place of -. safeName must be unique.

Example Artifact List in ci.yml:

    Artifacts:
    - name: azure_core
      safeName: azurecore
    - name: azure_core_tracing_opencensus
      safeName: azurecorecoretracingopencensus

Resulting Release Stages:

Example Release Stages

This means that new mgmt packages must be added to this list of artifacts manually.