Обновить Development and CI wiki на русский
+25
-25
@@ -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/<owner>/pypi'
|
||||
|
||||
Reference in New Issue
Block a user