Обновить Development and CI wiki на русский
+25
-25
@@ -1,14 +1,14 @@
|
|||||||
# Development and CI
|
# Development and CI
|
||||||
|
|
||||||
## Local development
|
## Локальная разработка
|
||||||
|
|
||||||
Install development dependencies:
|
Установка зависимостей для разработки:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
uv sync --group dev
|
uv sync --group dev
|
||||||
```
|
```
|
||||||
|
|
||||||
Useful commands:
|
Полезные команды:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
make format
|
make format
|
||||||
@@ -20,53 +20,53 @@ make build
|
|||||||
make package-version
|
make package-version
|
||||||
```
|
```
|
||||||
|
|
||||||
## Tooling
|
## Инструменты
|
||||||
|
|
||||||
- Ruff for linting and formatting
|
- Ruff для lint и format
|
||||||
- mypy in strict mode
|
- mypy в strict-режиме
|
||||||
- pytest for tests
|
- pytest для тестов
|
||||||
- deptry for dependency checks
|
- deptry для dependency checks
|
||||||
- local `stubs` directory for untyped third-party packages
|
- локальный каталог `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/cli.py`: CLI
|
||||||
- `src/yt_shorts_downloader/models`: typed models
|
- `src/yt_shorts_downloader/models`: типизированные модели
|
||||||
- `src/yt_shorts_downloader/services`: session validation
|
- `src/yt_shorts_downloader/services`: валидация session file
|
||||||
- `src/yt_shorts_downloader/core`: yt-dlp integration, runtime detection, URL validation
|
- `src/yt_shorts_downloader/core`: yt-dlp integration, runtime detection, URL validation
|
||||||
- `stubs`: local typing stubs
|
- `stubs`: локальные typing stubs
|
||||||
|
|
||||||
## CI workflow
|
## CI workflow
|
||||||
|
|
||||||
The main Gitea Actions workflow runs:
|
Основной Gitea Actions workflow запускает:
|
||||||
|
|
||||||
- Ruff
|
- Ruff
|
||||||
- mypy
|
- mypy
|
||||||
- deptry
|
- deptry
|
||||||
- pytest
|
- 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
|
- если текущей версии нет в Gitea Packages, она публикуется
|
||||||
- if the current version already exists, upload is skipped
|
- если текущая версия уже существует, upload пропускается
|
||||||
- old published versions remain available in the registry
|
- старые версии остаются доступными в registry
|
||||||
|
|
||||||
Required CI secrets:
|
Необходимые CI secrets:
|
||||||
|
|
||||||
- `PYPI_REPOSITORY_URL`
|
- `PYPI_REPOSITORY_URL`
|
||||||
- `PACKAGE_USERNAME`
|
- `PACKAGE_USERNAME`
|
||||||
- `PACKAGE_TOKEN`
|
- `PACKAGE_TOKEN`
|
||||||
|
|
||||||
Local publish example:
|
Локальный пример публикации:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export PYPI_REPOSITORY_URL='https://gitea.example.com/api/packages/<owner>/pypi'
|
export PYPI_REPOSITORY_URL='https://gitea.example.com/api/packages/<owner>/pypi'
|
||||||
|
|||||||
Reference in New Issue
Block a user