Migrate dependency management from pip to uv
- Add a uv workspace at the repository root covering all packages/kaya-* members - Replace pip-compile requirements files with a committed uv.lock - Remove redundant per-package dev extras - Build and publish artifacts with uv build and uv publish in CI - Update the README with uv sync/run/build commands
This commit is contained in:
+58
-56
@@ -5,7 +5,7 @@ on:
|
||||
- 'release/*'
|
||||
jobs:
|
||||
build_pip_package:
|
||||
name: "Build Pip package"
|
||||
name: "Build and publish packages"
|
||||
runs-on: hostinger
|
||||
timeout-minutes: 30
|
||||
container:
|
||||
@@ -18,12 +18,14 @@ jobs:
|
||||
fetch-tags: true
|
||||
- uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: '3.14.6'
|
||||
cache: 'pip'
|
||||
python-version-file: '.python-version'
|
||||
- name: Install uv
|
||||
uses: astral-sh/setup-uv@v10
|
||||
with:
|
||||
version: '0.13.4'
|
||||
enable-cache: true
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m venv .venv
|
||||
.venv/bin/pip install -r requirements-dev.txt
|
||||
run: uv sync --locked
|
||||
- name: Check kaya-core
|
||||
run: |
|
||||
.venv/bin/python -m mypy -p kaya.core
|
||||
@@ -66,81 +68,81 @@ jobs:
|
||||
.venv/bin/python -m unittest discover -s packages/kaya-otel/tests
|
||||
- name: Publish kaya-core artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-core
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-core/dist/*.whl packages/kaya-core/dist/*.tar.gz
|
||||
uv build --package kaya-core --out-dir packages/kaya-core/dist --no-sources
|
||||
uv publish packages/kaya-core/dist/*.whl packages/kaya-core/dist/*.tar.gz
|
||||
- name: Publish kaya-rsgi artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-rsgi
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-rsgi/dist/*.whl packages/kaya-rsgi/dist/*.tar.gz
|
||||
uv build --package kaya-rsgi --out-dir packages/kaya-rsgi/dist --no-sources
|
||||
uv publish packages/kaya-rsgi/dist/*.whl packages/kaya-rsgi/dist/*.tar.gz
|
||||
- name: Publish kaya-session artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-session
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-session/dist/*.whl packages/kaya-session/dist/*.tar.gz
|
||||
uv build --package kaya-session --out-dir packages/kaya-session/dist --no-sources
|
||||
uv publish packages/kaya-session/dist/*.whl packages/kaya-session/dist/*.tar.gz
|
||||
- name: Publish kaya-session-memcache artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-session-memcache
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-session-memcache/dist/*.whl packages/kaya-session-memcache/dist/*.tar.gz
|
||||
uv build --package kaya-session-memcache --out-dir packages/kaya-session-memcache/dist --no-sources
|
||||
uv publish packages/kaya-session-memcache/dist/*.whl packages/kaya-session-memcache/dist/*.tar.gz
|
||||
- name: Publish kaya-session-redis artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-session-redis
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-session-redis/dist/*.whl packages/kaya-session-redis/dist/*.tar.gz
|
||||
uv build --package kaya-session-redis --out-dir packages/kaya-session-redis/dist --no-sources
|
||||
uv publish packages/kaya-session-redis/dist/*.whl packages/kaya-session-redis/dist/*.tar.gz
|
||||
- name: Publish kaya-oidc artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-oidc
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-oidc/dist/*.whl packages/kaya-oidc/dist/*.tar.gz
|
||||
uv build --package kaya-oidc --out-dir packages/kaya-oidc/dist --no-sources
|
||||
uv publish packages/kaya-oidc/dist/*.whl packages/kaya-oidc/dist/*.tar.gz
|
||||
- name: Publish kaya-openapi artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-openapi
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-openapi/dist/*.whl packages/kaya-openapi/dist/*.tar.gz
|
||||
uv build --package kaya-openapi --out-dir packages/kaya-openapi/dist --no-sources
|
||||
uv publish packages/kaya-openapi/dist/*.whl packages/kaya-openapi/dist/*.tar.gz
|
||||
- name: Publish kaya-cors artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-cors
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-cors/dist/*.whl packages/kaya-cors/dist/*.tar.gz
|
||||
uv build --package kaya-cors --out-dir packages/kaya-cors/dist --no-sources
|
||||
uv publish packages/kaya-cors/dist/*.whl packages/kaya-cors/dist/*.tar.gz
|
||||
- name: Publish kaya-forwarded artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-forwarded
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-forwarded/dist/*.whl packages/kaya-forwarded/dist/*.tar.gz
|
||||
uv build --package kaya-forwarded --out-dir packages/kaya-forwarded/dist --no-sources
|
||||
uv publish packages/kaya-forwarded/dist/*.whl packages/kaya-forwarded/dist/*.tar.gz
|
||||
- name: Publish kaya-otel artifacts
|
||||
env:
|
||||
TWINE_REPOSITORY_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
TWINE_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
TWINE_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
UV_PUBLISH_URL: ${{ vars.PYPI_REGISTRY_URL }}
|
||||
UV_PUBLISH_USERNAME: ${{ vars.PUBLISHER_USERNAME }}
|
||||
UV_PUBLISH_PASSWORD: ${{ secrets.PUBLISHER_TOKEN }}
|
||||
run: |
|
||||
.venv/bin/pyproject-build packages/kaya-otel
|
||||
.venv/bin/twine upload --repository gitea packages/kaya-otel/dist/*.whl packages/kaya-otel/dist/*.tar.gz
|
||||
uv build --package kaya-otel --out-dir packages/kaya-otel/dist --no-sources
|
||||
uv publish packages/kaya-otel/dist/*.whl packages/kaya-otel/dist/*.tar.gz
|
||||
|
||||
Reference in New Issue
Block a user