Azure / Azure/azure-sdk-for-python

[Cosmos] [Embedding V0] CI/CD and release pipeline for azure-cosmos-embedding

Open
#46,767 0 comments 0 reactions 0 assignees View on GitHub
Cosmos
Dominant language
Python
Stars
5.6k
Forks
3.4k
Avg merge
1d 21h
Merged PRs (30d)
193

Description

# [Cosmos] [Embedding V0] CI/CD and release pipeline for `azure-cosmos-embedding`

Parent: [#46729](https://github.com/Azure/azure-sdk-for-python/issues/46729)

## Background

The new `azure-cosmos-embedding` package needs CI, release, and publish pipeline steps consistent with how other `azure-cosmos` sibling packages are handled in the Azure SDK for Python monorepo.

Reference: the .NET sibling is tracked in [Azure/azure-cosmos-dotnet-v3#5843](https://github.com/Azure/azure-cosmos-dotnet-v3/issues/5843).

## Scope

### 1. CI pipeline (`sdk/cosmos/ci.yml`)

- Add `azure-cosmos-embedding` to the `Artifacts` list so the standard Azure SDK Python CI picks it up.
- Ensure unit tests (`azure-cosmos-embedding/tests/`) run on every PR touching the package.
- Emulator-dependent tests run on the emulator leg (when they exist, per #46736).

### 2. Release pipeline

- The Azure SDK Python release process uses the `release_*.yml` / `eng/pipelines/` infrastructure.
- Register `azure-cosmos-embedding` with the release automation so `python-azure-cosmos-embedding` release PRs are created automatically.
- Confirm the package is in `eng/versioning/version_client.txt` with an initial version (e.g. `1.0.0b1`).

### 3. `pyproject.toml` / packaging standards

- Verify `azure-cosmos-embedding` complies with Azure SDK Python packaging standards:
- `sdk_type = "client"` in `sdk_packaging.toml` or equivalent.
- Trove classifiers, license, description match other `azure-cosmos*` packages.
- `py.typed` marker file present.

### 4. Open questions to resolve

- Does `azure-cosmos-embedding` ship as **beta (`1.0.0b1`)** at Build, or is it staged post-Build?
- Does it need its own `ci.yml` or is adding to the existing `sdk/cosmos/ci.yml` sufficient?
- Does `openai` package pinning need to align with any Azure SDK dependency policy?

## Acceptance criteria

- `python -m pytest sdk/cosmos/azure-cosmos-embedding/tests/` runs in CI on every PR.
- `python -m build sdk/cosmos/azure-cosmos-embedding/` produces a valid wheel.
- Package installable via `pip install azure-cosmos-embedding` from the published feed.
- Release automation produces a release PR when `_version.py` is bumped.

## Files likely touched

- `sdk/cosmos/ci.yml` (add package to Artifacts list — also in scaffold issue)
- `eng/versioning/version_client.txt` (add `azure-cosmos-embedding`)
- `sdk/cosmos/azure-cosmos-embedding/sdk_packaging.toml` (new)
- `sdk/cosmos/azure-cosmos-embedding/setup.cfg` or `pyproject.toml`

## Dependencies

- Package scaffold sub-issue — `azure-cosmos-embedding` must exist before CI can reference it.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.