From 7b472b7db984d0e84c84d57dbaf4c1471e7b9c18 Mon Sep 17 00:00:00 2001 From: CREATIVE_tg1 <1+creative_tg1@noreply.localhost> Date: Wed, 27 May 2026 14:57:04 +0000 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20Development=20and=20CI=20wiki=20=D0=BD=D0=B0=20=D1=80?= =?UTF-8?q?=D1=83=D1=81=D1=81=D0=BA=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Development-and-CI.md | 50 +++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 25 deletions(-) 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'