diff --git a/Development-and-CI.md b/Development-and-CI.md index fd90acb..b06dafe 100644 --- a/Development-and-CI.md +++ b/Development-and-CI.md @@ -1,14 +1,14 @@ # Development and CI -## Local development +## Локальная разработка -Install development dependencies: +Установка зависимостей для разработки: ```bash uv sync --group dev ``` -Useful commands: +Полезные команды: ```bash make format @@ -20,53 +20,53 @@ make build make package-version ``` -## Tooling +## Инструменты -- Ruff for linting and formatting -- mypy in strict mode -- pytest for tests -- deptry for dependency checks -- local `stubs` directory for untyped third-party packages +- Ruff для lint и format +- mypy в strict-режиме +- pytest для тестов +- deptry для dependency checks +- локальный каталог `stubs` для нетипизированных внешних пакетов -## Architecture +## Архитектура -Project layout: +Структура проекта: -- `src/yt_shorts_downloader/api.py`: public API +- `src/yt_shorts_downloader/api.py`: публичный API - `src/yt_shorts_downloader/cli.py`: CLI -- `src/yt_shorts_downloader/models`: typed models -- `src/yt_shorts_downloader/services`: session validation +- `src/yt_shorts_downloader/models`: типизированные модели +- `src/yt_shorts_downloader/services`: валидация session file - `src/yt_shorts_downloader/core`: yt-dlp integration, runtime detection, URL validation -- `stubs`: local typing stubs +- `stubs`: локальные typing stubs ## CI workflow -The main Gitea Actions workflow runs: +Основной Gitea Actions workflow запускает: - Ruff - mypy - deptry - pytest -After successful CI on a push to `main`, the workflow attempts publication to Gitea Packages. +После успешного CI на push в `main` workflow пытается опубликовать пакет в Gitea Packages. -## Package publishing +## Публикация пакета -The package version is read from `[project].version` in `pyproject.toml`. +Версия пакета читается из `[project].version` в `pyproject.toml`. -Publishing rules: +Правила публикации: -- if the current version does not exist in Gitea Packages, it is uploaded -- if the current version already exists, upload is skipped -- old published versions remain available in the registry +- если текущей версии нет в Gitea Packages, она публикуется +- если текущая версия уже существует, upload пропускается +- старые версии остаются доступными в registry -Required CI secrets: +Необходимые CI secrets: - `PYPI_REPOSITORY_URL` - `PACKAGE_USERNAME` - `PACKAGE_TOKEN` -Local publish example: +Локальный пример публикации: ```bash export PYPI_REPOSITORY_URL='https://gitea.example.com/api/packages//pypi'