- Создаем окружение:
- macOS / Linux:
python3 -m venv venv
- Windows:
python -m venv venv
- macOS / Linux:
- Активируем окружение:
- macOS / Linux:
source ./venv/bin/activate
- Windows:
./venv/Scripts/Activate
- macOS / Linux:
- Устанавливаем пакеты:
pip install -r requirements.txt
- Поднимаем docker контейнеры:
- macOS / Linux:
sudo docker compose -f ./deployment/docker-compose.local.yaml up -d --build
- Windows:
docker compose -f ./deployment/docker-compose.local.yaml up -d --build
- macOS / Linux:
С помощью bash скрипта: sudo bash ./deployment/scripts/start.sh
Ручной запуск:
- Применяем миграции alembic:
alembic upgrade head
- Проверяем подключение к БД:
- macOS / Linux:
python3 ./scripts/connection.py
- Windows:
python ./scripts/connection.py
- macOS / Linux:
- Запускаем проект:
- macOS / Linux:
python3 ./cmd/bot/main.py
- Windows:
python ./cmd/bot/main.py
- macOS / Linux:
* /common - Вспомогательные зависимости
* /config - Директория с настройками
- /db - Настройки баз даннных
- /settings
- /settings.py - Основные настройки
* /deps - Зависимости
* /filters - Фильтры
* /keyboards - Клавиатуры
* /loader - Загрузка сущность бота
* /nlp - Логика NLP модуля
* /models - ORM модели для SQLAlchemy
* /routers - Обработчики событий
* /schemas - Pydantic модели
* /server - Сервер бота
* /services - Бизнес-логика
* /usecases - Логика обработчиков событий
Перед каждым пушем прописываем следующие команды:
black .
isort .
ruff .
А также можно включить pre-commit: install pre-commit
- Ведем 2 ветки: master и dev
- Мержимся и пулимся к dev
- Периодически сливаем изменения в master и обновляем версию проекта
- На прод лить только протестированный master
- Нейминг веток:
- feature/<feature_name> - если написал что-то новое
- fix/<fix_name> - если исправил какой-то баг
- refactor/<refactor_name> - если переписал старый код
- Историю изменений по версиям фиксируем в
changelog.md