Skip to content

Python-Backend-Templates/fastapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FastAPI Template

Static Badge Static Badge Static Badge Static Badge Static Badge Static Badge

ОглавлСниС

Π Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

Зависимости

  • docker
  • docker compose
  • python 3.8+ (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ, для локального запуска pytest/flake8/mypy)
  • poetry (ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ, для локального запуска pytest/flake8/mypy)

ΠžΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅

ΠŸΠ΅Ρ€Π΅Π΄ запуском ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ docker присутствуСт Ρ„Π°ΠΉΠ» .env, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ всС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния.
Названия этих ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² .env.example

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния

REGISTRY

Бсылка Π½Π° container registry. НСобходимо Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ compose Ρ„Π°ΠΉΠ» с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ image для кастомных сборок (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, docker-compose.main.yml)

ENVIRONMENT

ΠžΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ (development, production, testing, etc). ΠœΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ использовано для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π½ΡƒΠΆΠ΄ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

PROJECT_NAME

НазваниС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

SECRET_KEY

Π‘Π΅ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΊΠ»ΡŽΡ‡ для FastAPI

DEBUG

Π Π΅ΠΆΠΈΠΌ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ
0 - Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½
1 - Π²ΠΊΠ»ΡŽΡ‡Π΅Π½
Если Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, Ρ‚ΠΎ:

  • 500 ошибки сСрвСра Π½Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠΌ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ
  • Π’ Π»ΠΎΠ³Π°Ρ… Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒΡΡ запросы Π² Π‘Π”, Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… запроса

PROD

Π Π΅ΠΆΠΈΠΌ ΠΏΡ€ΠΎΠ΄ окруТСния
0 - Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½
1 - Π²ΠΊΠ»ΡŽΡ‡Π΅Π½
Если Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½, Ρ‚ΠΎ:

  • Π‘ΡƒΠ΄Π΅Ρ‚ доступна докумСнтация swagger-ui/redoc
  • Π Π°Π±ΠΎΡ‚Π° с ΠΏΠ»Π°Ρ‚Π΅ΠΆΠ½Ρ‹ΠΌΠΈ систСмами Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Π±ΠΎΠ΅Π²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅
  • Π§ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ ΠΈΠ· Π»ΠΎΠ³ΠΎΠ²

MEDIA_PATH

ΠŸΡƒΡ‚ΡŒ ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранятся ΠΌΠ΅Π΄ΠΈΠ°-Ρ„Π°ΠΉΠ»Ρ‹

MEDIA_URL

ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ Π² ссылкС для ΠΌΠ΅Π΄ΠΈΠ°-Ρ„Π°ΠΉΠ»ΠΎΠ²

STATIC_PATH

ΠŸΡƒΡ‚ΡŒ ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранятся статичСскиС Ρ„Π°ΠΉΠ»Ρ‹

STATIC_URL

ΠŸΡ€Π΅Ρ„ΠΈΠΊΡ Π² ссылкС для статичСских-Ρ„Π°ΠΉΠ»ΠΎΠ²

LOG_PATH

ΠŸΡƒΡ‚ΡŒ ΠΊ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ хранятся Π»ΠΎΠ³-Ρ„Π°ΠΉΠ»Ρ‹

IN_GUNICORN

Π€Π»Π°Π³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ опрСдСляСт, запускаСтся Π»ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ‡Π΅Ρ€Π΅Π· gunicorn

Database

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС DB_NAME, DB_USER, DB_PASSWORD ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌΠΈ
ΠŸΡ€ΠΈ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… запусках DB_NAME, DB_USER, DB_PASSWORD Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС
DB_HOST Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ названию сСрвиса Π‘Π” ΠΈΠ· compose ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ
DB_PORT Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΡ€Ρ‚Ρƒ Π‘Π” ΠΈΠ· compose ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ

Nginx

NGINX_OUTER_PORT - ΠΏΠΎΡ€Ρ‚, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρƒ nginx
NGINX_INNER_PORT - ΠΏΠΎΡ€Ρ‚, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π°Π΄Ρ€Π΅ΡΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒΡΡ всС запросы Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° nginx

ASGI

ASGI_PORT - ΠΏΠΎΡ€Ρ‚, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ asgi сСрвису

RabbitMQ

RABBITMQ_HOST Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ названию сСрвиса RabbitMQ ΠΈΠ· compose ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ
RABBITMQ_PORT - любой доступный Π½Π° хостС ΠΏΠΎΡ€Ρ‚
ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС RABBITMQ_USER, RABBITMQ_PASSWORD ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΡŽΠ±Ρ‹ΠΌΠΈ
ΠŸΡ€ΠΈ Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΡ… запусках RABBITMQ_USER, RABBITMQ_PASSWORD Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠΌΠΈ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ запускС

Celery

CELERY_BROKER_URL - ссылка для доступа ΠΊ Π±Ρ€ΠΎΠΊΠ΅Ρ€Ρƒ сообщСний
CELERY_RESULT_BACKEND - бэкСнд для хранСния Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² выполнСния Π·Π°Π΄Π°Ρ‡

Redis

REDIS_HOST Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ названию сСрвиса Redis ΠΈΠ· compose ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ
REDIS_PORT - любой доступный Π½Π° хостС ΠΏΠΎΡ€Ρ‚
REDIS_PASSWORD - ΠΏΠ°Ρ€ΠΎΠ»ΡŒ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ default

Logging

LOGGING_SENSITIVE_FIELDS - Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ записи Π»ΠΎΠ³Π°. Π”ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ, Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²
LOGGING_LOGGERS - названия Π»ΠΎΠ³Π΅Ρ€ΠΎΠ². Π”ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ Ρ‡Π΅Ρ€Π΅Π· Π·Π°ΠΏΡΡ‚ΡƒΡŽ, Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ²
LOGGING_MAX_BYTES - максимальноС ΠΊΠΎΠ»-Π²ΠΎ Π±Π°ΠΉΡ‚ Π½Π° ΠΎΠ΄ΠΈΠ½ Π»ΠΎΠ³ Ρ„Π°ΠΉΠ»
LOGGING_BACKUP_COUNT - максимальноС ΠΊΠΎΠ»-Π²ΠΎ бэкап Ρ„Π°ΠΉΠ»ΠΎΠ² для Π»ΠΎΠ³ΠΎΠ²

Docker Compose Specific

RESTART_POLICY - ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° рСстарта ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²
NGINX_VERSION - вСрсия Nginx
POSTGRES_VERSION - вСрсия PostgreSQL
REDIS_VERSION - вСрсия Redis
RABBITMQ_VERSION - вСрсия Rabbitmq
ASGI_TARGET - ΠΎΠ±Ρ€Π°Π· для сборки asgi сСрвиса
CELERY_TARGET - ΠΎΠ±Ρ€Π°Π· для сборки celery worker сСрвиса
BEAT_TARGET - ΠΎΠ±Ρ€Π°Π· для сборки celery beat сСрвиса
*_CPUS - Π»ΠΈΠΌΠΈΡ‚ ядСр Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€
*_MEM_LIMIT - Π»ΠΈΠΌΠΈΡ‚ памяти Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€
*_MEM_RESERVATION - запас памяти Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€

Запуск Π² локальном ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ

docker-compose -f docker/docker-compose.yml -f docker/docker-compose.local.yml up

ΠΈΠ»ΠΈ

make localup

ПослС запуска ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π±ΡƒΠ΄Π΅Ρ‚ доступСн ΠΏΠΎ адрСсу http://localhost:.../

Запуск Π² тСстовом ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ

docker-compose up

ΠΈΠ»ΠΈ

make up

Запуск Π² ΠΏΡ€ΠΎΠ΄ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ

docker-compose -f docker/docker-compose.yml -f docker/docker-compose.main.yml up

ΠΈΠ»ΠΈ

make mainup

ПослС запуска

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ станСт доступСн ΠΏΠΎ ΠΏΠΎΡ€Ρ‚Ρƒ ${NGINX_OUTER_PORT}
Π’ локальном ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ достаточно ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΏΠΎ адрСсу http://localhost:${NGINX_OUTER_PORT}/
Π’ Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄ΠΎΠΌΠ΅Π½, ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π²Π΅Π±-сСрвСр (Nginx/Apache) Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС запросы Π½Π° ΠΏΠΎΡ€Ρ‚ ${NGINX_OUTER_PORT}

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ошибки

Если Π½Π° хостС установлСна docker compose вСрсии >2, Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ошибка синтаксиса ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… Π²Ρ‹ΡˆΠ΅ Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ

docker-compose

Π½Π°

docker compose

Бтэк

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ инструмСнты

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ язык программирования β€” Python ...
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ β€” FastAPI ...
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ Π‘Π£Π‘Π” β€” PostgreSQL ...
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ для ΠΊΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ NoSQL Π‘Π” β€” Redis ...
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ Π±Ρ€ΠΎΠΊΠ΅Ρ€ сообщСний β€” RabbitMQ ...
  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠ°Ρ асинхронная ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π·Π°Π΄Π°Ρ‡ β€” Celery ...

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ / ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ

  • uvicorn (...) β€” HTTP-сСрвСр для FastAPI
  • psycopg (...) β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с PostgreSQL Π² Python
  • redis (...) β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Redis Π² Python
  • Celery (...) β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для асинхронных ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ Π·Π°Π΄Π°Ρ‡
  • amqp (...) β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с amqp-ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠΌ
  • JSON-log-formatter (...) β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для форматирования Π»ΠΎΠ³ΠΎΠ² Π² JSON-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅
  • dependency-injector (...) β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для внСдрСния зависимостСй (DI)
  • pytest (...) β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для тСстирования
  • pytest-cov (...) β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для ΠΎΡ†Π΅Π½ΠΊΠΈ покрытия ΠΊΠΎΠ΄Π° тСстами Ρ‡Π΅Ρ€Π΅Π· pytest
  • pytest-mock (...) β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для ΠΌΠΎΠΊΠ° зависимостСй Ρ‡Π΅Ρ€Π΅Π· pytest
  • pytest-timeout (...) β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для ограничСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ выполнСния тСстов Ρ‡Π΅Ρ€Π΅Π· pytest
  • concurrent-log-handler (...) β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ записи Π»ΠΎΠ³ΠΎΠ² Π² Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€ΠΈ запускС Π²Π΅Π± прилоТСния Ρ‡Π΅Ρ€Π΅Π· нСсколько Π²ΠΎΡ€ΠΊΠ΅Ρ€ΠΎΠ² (ΠΊΠ°ΠΊ Π² uvicorn)
  • mypy (...) β€” статичСский Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ Ρ‚ΠΈΠΏΠΎΠ²
  • flake8 (...) β€” инструмСнт Π»ΠΈΠ½Ρ‚ΠΈΠ½Π³Π° для Python
  • black (...) β€” Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для форматирования ΠΊΠΎΠ΄Π° Π½Π° языкС Python
  • isort (...) - Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° для сортировки ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ²

Запуск тСстов

Π’Π½ΡƒΡ‚Ρ€ΠΈ Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° (рСкомСндуСтся)

  1. Π—Π°ΠΉΡ‚ΠΈ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ asgi Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

    docker exec -it ${PROJECT_NAME}-asgi bash
  2. ΠΠ°Ρ‡Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ тСстов Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

    pytest

ΠΈΠ»ΠΈ

make test

Π’Π½Π΅ Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°

ΠŸΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠΌ запускС тСсты, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… тСстируСтся Ρ€Π°Π±ΠΎΡ‚Π° с Π‘Π”, выполнятся с ошибкой
ΠŸΡ€ΠΈ ошибкС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ запуститС тСсты Π²Π½ΡƒΡ‚Ρ€ΠΈ Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°

  1. ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ

  2. ΠΠ°Ρ‡Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ тСстов Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

    poetry run pytest

Запуск Flake8

Π’Π½ΡƒΡ‚Ρ€ΠΈ Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° (рСкомСндуСтся)

  1. Π—Π°ΠΉΡ‚ΠΈ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ asgi Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

    docker exec -it ${PROJECT_NAME}-asgi bash
  2. ΠΠ°Ρ‡Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ flake8 Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

    flake8 .

ΠΈΠ»ΠΈ

make flake8

Π’Π½Π΅ Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°

  1. ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ

  2. ΠΠ°Ρ‡Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ flake8 Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

    poetry run flake8 .

Запуск mypy

Π’Π½ΡƒΡ‚Ρ€ΠΈ Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° (рСкомСндуСтся)

  1. Π—Π°ΠΉΡ‚ΠΈ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ asgi Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

    docker exec -it ${PROJECT_NAME}-asgi bash
  2. ΠΠ°Ρ‡Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ mypy Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

    mypy .

ΠΈΠ»ΠΈ

make mypy

Π’Π½Π΅ Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°

ΠŸΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибок запуск Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ Docker-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°

  1. ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ

  2. ΠΠ°Ρ‡Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ mypy Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

    poetry run mypy .

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°

Π€ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ black, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ чистоту ΠΊΠΎΠ΄Π° ΠΈ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π³ΠΈΡ‚ΠΎΠΌ.
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° для Visual Studio Code .vscode/settings.json:

{
    "[python]": {
        "editor.defaultFormatter": "ms-python.black-formatter",
        "editor.formatOnSave": true
    }
}

Git Ρ…ΡƒΠΊΠΈ

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ pre-commit, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ МР ΠΊΠΎΠ΄ Π±Ρ‹Π» ΡƒΠΆΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ ΠΈ повСрхностно ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· flake8)

Для использования Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ установлСны dev-зависимости

Pre-commit Ρ…ΡƒΠΊΠΈ

Установка

poetry run pre-commit install

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅

poetry run pre-commit uninstall

ПослС установки, ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ…ΡƒΠΊΠΈ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² (stages: [commit])

Pre-push Ρ…ΡƒΠΊΠΈ

Установка

poetry run pre-commit install --hook-type pre-push

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅

poetry run pre-commit uninstall -t pre-push

ПослС установки, ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡƒΡˆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ…ΡƒΠΊΠΈ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для ΠΏΡƒΡˆΠ΅ΠΉ (stages: [push])

Git Ρ…ΡƒΠΊΠΈ

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ pre-commit, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ МР ΠΊΠΎΠ΄ Π±Ρ‹Π» ΡƒΠΆΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Π½Ρ‹ΠΌ ΠΈ повСрхностно ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· flake8)

Для использования Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ установлСны dev-зависимости

Pre-commit Ρ…ΡƒΠΊΠΈ

Установка

poetry run pre-commit install

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅

poetry run pre-commit uninstall

ПослС установки, ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ…ΡƒΠΊΠΈ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² (stages: [commit])

Pre-push Ρ…ΡƒΠΊΠΈ

Установка

poetry run pre-commit install --hook-type pre-push

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅

poetry run pre-commit uninstall -t pre-push

ПослС установки, ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡƒΡˆΠ΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΡ‚Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ…ΡƒΠΊΠΈ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для ΠΏΡƒΡˆΠ΅ΠΉ (stages: [push])

Make

Для ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ запуска ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΈΡ… сборки, запуска тСстов ΠΈ Ρ‚.ΠΏ. Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ Π΅ΡΡ‚ΡŒ Makefile

Для выполнСния инструкции, Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ запуска тСстов, Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

make test

Git Flow

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π²Π΅Ρ‚ΠΊΠ°ΠΌΠΈ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅:

  • develop β€” Π²Π΅Ρ‚ΠΊΠ° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ.
    • БобираСтся ΠΈ разворачиваСтся Π½Π° dev-сСрвСрС;
  • feature/{feature-slug} β€” feature-Π²Π΅Ρ‚ΠΊΠ°.
    • БоздаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ develop;
    • По готовности создаСтся MR Π² Π²Π΅Ρ‚ΠΊΡƒ develop.
  • bugfix/{bug-slug} β€” bugfix-Π²Π΅Ρ‚ΠΊΠ°.
    • БоздаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ develop;
    • По готовности создаСтся MR Π² Π²Π΅Ρ‚ΠΊΡƒ develop.
  • release/{major}.{minor} β€” release-Π²Π΅Ρ‚ΠΊΠ°.
    • БоздаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ develop;
    • БчитаСтся ΠΊΠ°ΠΊ release-candidate;
    • БобираСтся ΠΈ разворачиваСтся Π½Π° stage-сСрвСрС (ΠΏΠΎΠΊΠ° Π½Π΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΎ, ΠΊΠ°ΠΊ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚);
    • ΠŸΡ€ΡΠΌΠΎ Π² Π²Π΅Ρ‚ΠΊΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ„ΠΈΠΊΡˆΠ΅Π½Ρ‹ Π±Π°Π³ΠΈ, Π±Π΅Π· MR;
    • ВсС ΠΏΠΎΡ„ΠΈΠΊΡˆΠ΅Π½Π½Ρ‹Π΅ Π² Π²Π΅Ρ‚ΠΊΠ΅ Π±Π°Π³ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ смСрТСны Π² develop, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ сразу ΠΏΠΎ готовности Π±Π°Π³Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡƒΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ фикс;
    • По готовности создаСтся MR Π² Π²Π΅Ρ‚ΠΊΡƒ main.
    • ΠŸΡ€Π°Π²ΠΈΠ»Π° измСнСния вСрсии Ρ€Π΅Π»ΠΈΠ·Π°:
      • minor вСрсия увСличиваСтся ΠΏΡ€ΠΈ измСнСниях, Π½Π΅ Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ. Π’.Π΅. ΠΏΡ€ΠΈ этих измСнСниях ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ API ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π±Π΅Π· нСобходимости Π²Π½ΠΎΡΠΈΡ‚ΡŒ измСнСния;
      • major вСрсия увСличиваСтся ΠΏΡ€ΠΈ измСнСниях, Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ.
        • Π’ ΠΈΠ΄Π΅Π°Π»Π΅, major вСрсия Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с послСднСй вСрсиСй API, Ρ‚.ΠΊ. новая вСрсия API внСдряСтся ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΌΡƒ ΠΆΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ - ΠΏΡ€ΠΈ появлСнии ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, Π½Π°Ρ€ΡƒΡˆΠ°ΡŽΡ‰ΠΈΡ… ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ.
  • hotfix/{bug-slug} β€” hotfix-Π²Π΅Ρ‚ΠΊΠ°.
    • БоздаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Π²Π΅Ρ‚ΠΊΠΈ main;
    • По готовности создаСтся MR Π² Π²Π΅Ρ‚ΠΊΡƒ main.
  • main β€” ΠΏΡ€ΠΎΠ΄ Π²Π΅Ρ‚ΠΊΠ°.
    • БобираСтся ΠΈ разворачиваСтся Π½Π° prod-сСрвСрС;
    • ПослС слияния MR Π² эту Π²Π΅Ρ‚ΠΊΡƒ создаСтся tag ΠΈ release ΠΏΠΎ этой Π²Π΅Ρ‚ΠΊΠ΅ (Ρ‚.Π΅. ΠΏΠΎ послСднСму ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ этой Π²Π΅Ρ‚ΠΊΠΈ).

CI/CD

Dev-сСрвСр

TBD

Prod-сСрвСр

TBD

Release Π²Π΅Ρ‚ΠΊΠΈ

TBD

Выпуск Ρ€Π΅Π»ΠΈΠ·Π°

TBD

CHANGELOG.md

Π—Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΎ Ρ€Π΅Π»ΠΈΠ·Π°Ρ… вСдутся начиная с вСрсии 1.0.0

По готовности Ρ€Π΅Π»ΠΈΠ·Π° Π² release/* Π²Π΅Ρ‚ΠΊΠ΅ ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ хотфиксС Π² hotfix/* Π²Π΅Ρ‚ΠΊΠ΅, Π½ΡƒΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» CHANGELOG.md.

Π—Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΎ Π½ΠΎΠ²ΠΎΠΌ Ρ€Π΅Π»ΠΈΠ·Π΅ Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ Π² Π½Π°Ρ‡Π°Π»ΠΎ Ρ„Π°ΠΉΠ»Π°, Ρ‚.Π΅. Π΄ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π°. Π¨Π°Π±Π»ΠΎΠ½ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΎ Ρ€Π΅Π»ΠΈΠ·Π΅

## 1.1.0 (2024-01-01)

Security:

  -   

Features:

  - 

Bugfixes:

  - 

ΠŸΡ€ΠΈ нСобходимости, ΠΌΠΎΠΆΠ½ΠΎ вСсти Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΎ Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ Ρ€Π΅Π»ΠΈΠ·Π΅ прямо Π² Π²Π΅Ρ‚ΠΊΠ΅ develop. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС, вмСсто Π΄Π°Ρ‚Ρ‹ Ρ€Π΅Π»ΠΈΠ·Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ unreleased, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΌ слСдуСт Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π½Π° Ρ„Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π΄Π°Ρ‚Ρƒ Ρ€Π΅Π»ΠΈΠ·Π°

## 1.2.0 (unreleased)

Security:

  -   

Features:

  - 

Bugfixes:

  - 

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published