Azure / Azure/azure-sdk-for-python

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

Aperta
#46,767 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Cosmos
Lingua principale
Python
Stelle
5.6k
Fork
3.4k
Merge medio
2g 2h
PR unite (30g)
213

Descrizione

# [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.

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Attendi lo scaffold del package, quindi confronta sdk/cosmos/ci.yml, eng/versioning/version_client.txt e i package azure-cosmos affini. Esegui python -m pytest sdk/cosmos/azure-cosmos-embedding/tests/ e python -m build sdk/cosmos/azure-cosmos-embedding/. L’attività è completata quando CI, il versioning, il packaging e l’automazione delle release soddisfano i criteri di accettazione elencati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
python
Ambito
build-system, ci-cd, devops, release
Tipo di issue
Funzionalità
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Tranquilla
Chiarezza
Abbastanza chiara
Idoneità per principianti
45/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.