Skip to content

Studio-Yandex-Practicum/bmc_companion_bot

Repository files navigation

О ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅

Code style: black PyPI pyversions

Π’Π΅Π»Π΅Π³Ρ€Π°ΠΌ-Π±ΠΎΡ‚ Π’Ρ‹ Π² порядкС для записи людСй Π½Π° ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΠΈ с психологом

Π—Π°Π΄Π°Ρ‡ΠΈ Π±ΠΎΡ‚Π°:

  • Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ людСй Π½Π° ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΠΈ;
  • ΠΏΡ€ΠΎΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ тСстов;
  • обратная связь для людСй, ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ²ΡˆΠΈΡ… ΠΊΠΎΠ½ΡΡƒΠ»ΡŒΡ‚Π°Ρ†ΠΈΡŽ.

ОглавлСниС

Requirements
Запуск ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
Π Π΅ΠΆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ
Π Π°Π±ΠΎΡ‚Π° с GIT

Requirements

ОглавлСниС

ΠšΠ»ΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ рСпозитория

Π’Π°ΠΆΠ½ΠΎ!!! Π‘ΠΊΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ с ΠΊΠ»ΡŽΡ‡Π΅ΠΌ: ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git clone ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ "--config core.autocrlf=input". Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π² Π΄ΠΎΠΊΠ΅Ρ€Π΅, Ссли Ρƒ вас Windows.

Запуск ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°

ВсС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ Π² Π΄Π°Π½Π½ΠΎΠΌ руководствС, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΈΠ· ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, Ссли ΠΈΠ½ΠΎΠ΅ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² описании.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° docker
По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ запускаСтся Π² Π΄ΠΎΠΊΠ΅Ρ€Π΅. ΠŸΠ΅Ρ€Π΅Π΄ запуском ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠΊΠ΅Ρ€ установлСн. ΠžΡ‚ΠΊΡ€ΠΎΠΉ любой Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π» ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:
docker --version

Π”ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π° вСрсия Π΄ΠΎΠΊΠ΅Ρ€Π°, это выглядит ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊ:

Docker version 20.10.21, build baeda1f

Если Π΄ΠΎΠΊΠ΅Ρ€ Π½Π΅ установлСн, Ρ‚ΠΎ установи Π΅Π³ΠΎ, слСдуя инструкции.

Настройка ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ окруТСния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° хранятся Π² Ρ„Π°ΠΉΠ»Π΅ .env , для ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π΅ΡΡ‚ΡŒ шаблон .env.template. Π‘ΠΎΠ·Π΄Π°ΠΉ Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Ρ„Π°ΠΉΠ» .env простым ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π° .env.template.

Запуск сСрвисов

Π’ΠΠ–ΠΠž!!! Π΄Π°Π½Π½Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» устарСл ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ обновлСния. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈ ΠΊ Ρ€Π°Π·Π΄Π΅Π»Ρƒ "Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ"


Для запуска ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

docker-compose up -d --build

УбСдимся, Ρ‡Ρ‚ΠΎ всС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹:

docker-compose ps

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ (список сСрвисов ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ, Π½ΠΎ статус всСх сСрвисов Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ running):

NAME                           COMMAND                  SERVICE             STATUS              PORTS
bmc_companion_bot-bot-1        "/scripts/entrypoint…"   bot                 running
bmc_companion_bot-nginx-1      "/docker-entrypoint.…"   nginx               running             0.0.0.0:80->80/tcp
bmc_companion_bot-postgres-1   "docker-entrypoint.s…"   postgres            running             0.0.0.0:5435->5432/tcp
bmc_companion_bot-redis-1      "docker-entrypoint.s…"   redis               running             0.0.0.0:6379->6379/tcp
bmc_companion_bot-webapi-1     "/scripts/entrypoint…"   webapi              running

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈ ΠΏΠΎ адрСсу http://127.0.0.1/api/v1/healthcheck/ping/. Если всС ΠΎΠΊ, Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ сообщСниС pong.

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π» Π±ΠΎΡ‚, Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Ρ‚ΠΎΠΊΠ΅Π½ Π±ΠΎΡ‚Π° для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ BOT_TOKEN Π² Ρ„Π°ΠΉΠ»Π΅ .env, Π° Π·Π°Ρ‚Π΅ΠΌ снова Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ всС сСрвисы Ρ‡Π΅Ρ€Π΅Π· docker-compose.

ΠžΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹:

docker-compose down

ОглавлСниС

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ срСды Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Установка Poetry

Poetry - это ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ для python, Π°Π½Π°Π»ΠΎΠ³ pip. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΎ установку Poetry здСсь.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ для установки Poetry:

Linux, macOS, Windows (WSL)

curl -sSL https://install.python-poetry.org | python3 -

Windows (Powershell)

(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | py -

Π’Π°ΠΆΠ½ΠΎ: послС установки Π½ΡƒΠΆΠ½ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ Poetry Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ срСды PATH.

НапримСр, Π½Π° Mac это ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ, Π΄ΠΎΠ±Π°Π²ΠΈΠ² Π² Ρ„Π°ΠΉΠ» .zprofile (/Users/your-user-name/.zprofile) ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ строки:

PATH="$HOME/.local/bin:$HOME/bin:$PATH"
export PATH

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ здСсь ΠΈ Ρ€Π°Π·Π΄Π΅Π» Add Poetry to your PATH Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ.

Π’Π°ΠΆΠ½ΠΎ: послС установки Poetry, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π».

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Poetry установлСн ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ:

poetry --version

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ (вСрсия Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Π½ΠΈΠΆΠ΅):

Poetry (version 1.3.1)
Установка зависимостСй

Π‘Π½Π°Ρ‡Π°Π»Π° Π½ΡƒΠΆΠ½ΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ срСду:

poetry shell

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ всС зависимости:

poetry install
Установка pre-commit Ρ…ΡƒΠΊΠΎΠ²

ΠŸΠ°ΠΊΠ΅Ρ‚ pre-commit Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ Π² список зависимостСй ΠΈ устанавливаСтся ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ poetry install. Для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ коррСктности установки pre-commit Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

pre-commit --version

Π’ ΠΎΡ‚Π²Π΅Ρ‚ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π²Π΅Π΄Π΅Π½Π° вСрсия pre-commit - это Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ всС установлСно ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ:

pre-commit 2.20.0

Установи pre-commit Ρ…ΡƒΠΊΠΈ:

pre-commit install
pre-commit install --hook-type commit-msg

Если установка ΠΏΡ€ΠΎΡˆΠ»Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Ρ‚ΠΎ Ρ‚Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡˆΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ сообщСниС:

pre-commit installed at .git/hooks/pre-commit

Π’Π΅ΠΏΠ΅Ρ€ΡŒ всС Π³ΠΎΡ‚ΠΎΠ²ΠΎ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

ОглавлСниС

Π Π΅ΠΆΠΈΠΌ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

Запуск ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° сСрвиса adminpanel

Для запуска ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ сСрвиса adminpanel Π½ΡƒΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±Ρ‹Π»Π° Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ….

Π‘Π½Π°Ρ‡Π°Π»Π° остановим всС Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹:

docker-compose down
# make down

Запустим Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ redis:

docker-compose up -d --build postgres
# make run s="postgres"

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ. Для этого ΠΏΠ΅Ρ€Π΅ΠΉΠ΄Π΅ΠΌ Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ adminpanel/src

cd adminpanel/src

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ:

python manage.py migrate

ΠŸΡ€ΠΈ нСобходимости создадим ΡΡƒΠΏΠ΅Ρ€ΡŽΠ·Π΅Ρ€Π°:

python manage.py createsuperuser

ЗапускаСм сСрвСр:

python manage.py runserver

Для Π΄Π΅Π±Π°Π³Π° Π² PyCharm Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π² Script Path ΠΏΡƒΡ‚ΡŒ ΠΊ Ρ„Π°ΠΉΠ»Ρƒ manage.py, Π° Π² Parameters ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ runserver ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡŽΠ·Π°Ρ‚ΡŒ ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ. Π›ΠΈΠ±ΠΎ просто Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Ρ„Π°ΠΉΠ» manage.py Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ.

Запуск ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° сСрвиса bot
Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±ΠΎΡ‚ Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π», Π½ΡƒΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΉ Ρ‚ΠΎΠΊΠ΅Π½ Π±ΠΎΡ‚Π° для ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ окруТСния `BOT_TOKEN`.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ запуска ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ сСрвиса bot Π½ΠΈΡ‡Π΅ΠΌ Π½Π΅ отличаСтся ΠΎΡ‚ процСсса запуска ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ сСрвиса webapi, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ„Π°ΠΉΠ».

Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвис bot:

python bot/src/run.py
Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ миграциями Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…

Π‘Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… управляСт сСрвис webapi.

ПослС измСнСния ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ Π² Ρ„Π°ΠΉΠ»Π΅ models.py Π½ΡƒΠΆΠ½ΠΎ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ. ΠŸΠ΅Ρ€Π΅Π΄ этим ΡƒΠ±Π΅Π΄ΠΈΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ тСбя Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ….

Π’Π°ΠΆΠ½ΠΎ: для выполнСния ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΉ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ webapi/src.

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈ Π² ΠΏΠ°ΠΏΠΊΡƒ webapi/src:

cd webapi/src

Π‘Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ:

python -m flask db migrate -m "Your comment"

ΠŸΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ:

python -m flask db upgrade
Запуск ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ° сСрвиса celery
Для запуска сСрвиса ΠΎΠΏΠΎΠ²Π΅Ρ‰Π΅Π½ΠΈΠΉ Π½ΡƒΠΆΠ½ΠΎ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ /adminpanel/src/

Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвис celery worker:

celery -A config.celery worker -l info

Π—Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ сСрвис celery beat:

celery -A config.celery beat -l info

ОглавлСниС

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

ΠŸΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ установлСнных ΠΏΡ€Π°Π²ΠΈΠ» оформлСния ΠΊΠΎΠ΄Π°. Π’ этом Ρ€Π°Π·Π΄Π΅Π»Π΅ Ρ‚Ρ‹ найдСшь описаниС настроСк Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π°, Π»ΠΈΠ½Ρ‚Π΅Ρ€Ρ‹ ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅Ρ€Ρ‹, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ особСнности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимостями

Π’ качСствС ΠΏΠ°ΠΊΠ΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Poetry. Для управлСния зависимостями ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π³Ρ€ΡƒΠΏΠΏΡ‹ (см. Ρ„Π°ΠΉΠ» pyproject.toml).

ВсС основныС зависимости Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² Π³Ρ€ΡƒΠΏΠΏΠ΅ tool.poetry.dependencies:

[tool.poetry.dependencies]
python = "^3.10"
Django = "^4.1"

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ основной зависимости:

poetry add pendulum

ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ зависимости дСлятся Π½Π° Π³Ρ€ΡƒΠΏΠΏΡ‹. НапримСр, Π³Ρ€ΡƒΠΏΠΏΠ° lint - зависимостСй для Π»ΠΈΠ½Ρ‚ΠΈΠ½Π³Π°:

[tool.poetry.group.lint.dependencies]
flake8 = "^5.0.4"
flake8-broken-line = "^0.5.0"
flake8-quotes = "^3.3.1"
pep8-naming = "^0.13.2"

Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ зависимости Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π³Ρ€ΡƒΠΏΠΏΡƒ (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ Ρ„Π»Π°Π³ --group ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹):

poetry add pytest --group test
Руководства ΠΏΠΎ ΡΡ‚ΠΈΠ»ΡŽ

Π˜ΠΌΠΏΠΎΡ€Ρ‚Ρ‹

Выполняй ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹ ΠΈΠ· ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… Π² src. Π‘Π»Π΅Π΄ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π²ΠΎΠΈ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹ Π½Π΅ Π½Π°Ρ‡ΠΈΠ½Π°Π»ΠΈΡΡŒ с ΠΏΠ°ΠΏΠΊΠΈ src.

Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ структуры ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²:

\
β”œβ”€β”€ project_name
β”‚   β”œβ”€β”€ src
β”‚   β”‚   β”œβ”€β”€ app
β”‚   β”‚   β”‚   β”œβ”€β”€ auth
β”‚   β”‚   β”‚   β”‚   └── routes.py
β”‚   β”‚   β”‚   └── models.py
β”‚   β”‚   └── manage.py
└── └── docker

НСобходимо Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈΠ· Ρ„Π°ΠΉΠ»Π° models.py Π² Ρ„Π°ΠΉΠ» routes.py.

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:

from src.app.models import User

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ:

from app.models import User

Если Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΡˆΡŒ PyCharm, Ρ‚ΠΎ моТСшь ΠΏΠΎΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ src ΠΊΠ°ΠΊ Source Root (ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ -> Mark Directory as -> Mark as Source Root), Ρ‚ΠΎΠ³Π΄Π° PyCharm Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ ΠΈΠΌΠΏΠΎΡ€Ρ‚Ρ‹.

Π’Π°ΠΊΠΎΠ΅ использованиС ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΎΠ² Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ прилоТСния Π² Π΄ΠΎΠΊΠ΅Ρ€Π΅. Π’Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΎΠΊΠ΅Ρ€-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΏΠ°ΠΏΠΊΠ° прилоТСния ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΏΠΎ-Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΌΡ‹ Π·Π°Ρ…ΠΎΡ‚ΠΈΠΌ Π½Π°Π·Π²Π°Ρ‚ΡŒ Π΅Ρ‘ app. Π’ Dockerfile это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

ARG HOME_DIR=/app
WORKDIR $HOME_DIR

COPY ./src .

На хостС ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ называСтся src, Π° Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ app. Π˜ΠΌΠΏΠΎΡ€Ρ‚ ΠΈΠ· src ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС:

ModuleNotFoundError: No module named 'src'
Conventional Commits

Π’Π²ΠΎΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Conventional Commits. Pre-commit Ρ…ΡƒΠΊ conventional-pre-commit Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ коммСнтария ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠΌ.

Если Ρ‚Π²ΠΎΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Π½Π΅ соотвСтствуСт ΠΊΠΎΠ½Π²Π΅Π½Ρ†ΠΈΠΈ, Ρ‚ΠΎ Π² Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π΅ Ρ‚Ρ‹ ΡƒΠ²ΠΈΠ΄ΠΈΡˆΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ΅ сообщСниС:

commitizen check.........................................................Failed
- hook id: conventional-pre-commit
- exit code: 1

Для Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ написания ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°ΠΌ, Ρ‚Ρ‹ моТСшь Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠΌ Conventional Commit для PyCharm: conventional-commit-plugin.png

Настройки IDE

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ содСрТит Ρ„Π°ΠΉΠ» .editorconfig - ознакомься с Π½ΠΈΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅ настройки Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² Ρ‚Π²ΠΎΠ΅ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅.

Π€ΠΎΡ€ΠΌΠ°Ρ‚Π΅Ρ€ ΠΈ Π»ΠΈΠ½Ρ‚Π΅Ρ€

Π’ качСствС Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅Ρ€Π° ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ black. ΠšΠΎΠ½Ρ„ΠΈΠ³ black см. Π² Ρ„Π°ΠΉΠ»Π΅ pyproject.toml Π² сСкции [tool.black].

Π›ΠΈΠ½Ρ‚Π΅Ρ€ - flake8, ΠΊΠΎΠ½Ρ„ΠΈΠ³ находится Π² Ρ„Π°ΠΉΠ»Π΅ setup.cfg.

Если Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΡˆΡŒ PyCharm, Ρ‚ΠΎ моТСшь Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ black Ρ‡Π΅Ρ€Π΅Π· External Tools: add-external-tool.png

Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ hot key для этого дСйствия: add-hot-key.png

ОглавлСниС

Π Π°Π±ΠΎΡ‚Π° с GIT

ОсновноС

ВсС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π½Π° русском языкС.

Π’Π°ΠΆΠ½ΠΎ!!! Для быстрого прохоТдСния ΠΊΠΎΠ΄-Ρ€Π΅Π²ΡŒΡŽ, для сниТСния merge conflict придСрТивайся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΏΡ€Π°Π²ΠΈΠ»:

  1. Один PR ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ нСсколько ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ².
  2. Π’ ΠΊΠΎΠΌΠΌΠΈΡ‚ добавляй Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ твоя Π·Π°Π΄Π°Ρ‡Π°.
  3. НС добавляй ΠΏΠ°ΠΏΠΊΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ, добавляй Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.
  4. НС измСняй Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π½Π΅ добавляй ΠΈΡ… Π² ΠΊΠΎΠΌΠΌΠΈΡ‚.
ΠŸΡ€Π°Π²ΠΈΠ»Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ

ΠŸΡ€Π°Π²ΠΈΠ»Π° имСнования Π²Π΅Ρ‚ΠΎΠΊ

НазваниС Π²Π΅Ρ‚ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ сформировано ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Ρƒ {type}/{name}, Π³Π΄Π΅:

  • type: Ρ‚ΠΈΠΏ (feat, fix ΠΈ Ρ‚.ΠΏ.) согласно conventional-commits;
  • name: внятноС ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π½Π° английском (слова Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Ρ‹ дСфисом).

ΠŸΡ€Π°Π²ΠΈΠ»Π° написания ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ²

Богласно conventional-commits ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΊ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρƒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Ρ‚ΠΈΠΏΠ° (feat, fix ΠΈ Ρ‚.ΠΏ.).

ΠŸΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΠΉΡΡ простых Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΎΠΊ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉ слова "Π΄ΠΎΠ±Π°Π²Π»Π΅Π½", "исправлСн" вмСсто "Π΄ΠΎΠ±Π°Π²ΠΈΠ»(Π°)", "исправил(Π°)", "пофиксил(Π°)",

РСшСниС ошибок ΠΏΡ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚Π°Ρ…

Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π±Ρ‹Π»ΠΎ ошибок ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ², ΠΏΠ΅Ρ€Π΅Π΄ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠ² Π² индСкс, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°):

isort .
black .

ПослС этого моТСшь смСло Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ git add ΠΈ git commit.

ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ git commit ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Ρ‚ΡŒ нСпонятныС Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд ошибки. НапримСр, Ρ‚Π°ΠΊΠΈΠ΅:

isort.............................Failed
- hook id: isort
- files were modified by this hook

Skipped 2 files
.../site-packages/isort/main.py:104: UserWarning: Unable to parse file ./bot/src/run.py due to [Errno 2] No such file or directory: '/Users/denis/Documents/projects/bmc/bmc_companion_bot/bot/src/run.py.isorted' -> '/Users/denis/Documents/projects/bmc/bmc_companion_bot/bot/src/run.py'
  warn(f"Unable to parse file {file_name} due to {error}")
/Users/denis/Library/Caches/pypoetry/virtualenvs/bmc-TOtCo-TH-py3.10/lib/python3.10/site-packages/isort/main.py:104: UserWarning: Unable to parse file ./webapi/src/app/__init__.py due to [

Π’ этом Π½Π΅Ρ‚ Π½ΠΈΡ‡Π΅Π³ΠΎ ΡΡ‚Ρ€Π°ΡˆΠ½ΠΎΠ³ΠΎ, просто Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈ Π΅Ρ‰Π΅ Ρ€Π°Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ добавлСния Π² индСкс:

git add .

Π—Π°Ρ‚Π΅ΠΌ снова ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ‚.

Flow Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠ΅ΠΌ

  1. ΠšΠ»ΠΎΠ½ΠΈΡ€ΡƒΠΉ Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΉ:
git clone git@github.com:Studio-Yandex-Practicum/bmc_companion_bot.git

Если Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ всС измСнСния ΠΈΠ· Π³Π»Π°Π²Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ:

git pull origin develop
  1. Π‘ΠΎΠ·Π΄Π°ΠΉ Π²Π΅Ρ‚ΠΊΡƒ для своСй Π·Π°Π΄Π°Ρ‡ΠΈ, слСдуя ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ;

  2. ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡΡŒ Π½Π° ΡΠΎΠ·Π΄Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ:

git checkout feat/model_user
  1. ВнСси измСнСния Π² ΠΊΠΎΠ΄;

  2. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ (Π½Π°Ρ…ΠΎΠ΄ΡΡΡŒ Π² ΠΊΠΎΡ€Π½Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°):

isort .
black .
  1. ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±Ρ‹Π»ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Ρ‹:
git status

Π”ΠΎΠ±Π°Π²ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π² индСкс:

git add model.py service.py

Π‘ΠΎΠ·Π΄Π°ΠΉ Π½ΠΎΠ²Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ ΠΈ Π·Π°ΠΏΡƒΡˆ Π΅Π³ΠΎ:

git commit -m 'feat: commit description'
git push origin feat/model_user
  1. Π‘ΠΎΠ·Π΄Π°ΠΉ pull request ΠΈΠ· своСй Π²Π΅Ρ‚ΠΊΠΈ Π² Π²Π΅Ρ‚ΠΊΡƒ develop

ОглавлСниС

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages