Документация проекта
Исследование данных тут: Data Analysis
Production
Build and run
- Нужно собрать docker образ:
make build-image
- Запустить docker контейнер с проектом:
make run-container
Development
Workflow
Данный репозиторий ведется по методологии Github flow
:
- Главная ветка -
main
. - Новые фичи разрабатываются в отдельных ветках.
- Затем при необходимости делается
Merge Request
для запроса на слияние новой ветки с главной веткойmain
. - Проводится
Code Review
нового кода, все замечания указываются в самомMerge Request'e
наgitlab'e
. - После
Code Review
, если не нужно больше ничего исправлять, выполняетсяMerge
. - Если новая ветка слита с
main
, после этого ее можно удалить.
Environment
Installation
В данном проекте используется пакетный менеджер miniconda, его установка описана на офф.сайте.
Все необходимые пакеты для разработки прописаны в environments/dev.yml. 1. Для создания новой conda среды со всеми необходимыми зависимостями нужно запустить следующую команду:
make install-env
- Далее активировать dev среду:
conda activate mlops-dev
- Далее нужно инициализировать
pre-commit
:
pre-commit install
New dependencies
Новые зависимости можно добавлять с помощью conda
либо pip
.
Далее их нужно зафиксировать в environments/dev.yml файле следующей командой:
make export-env
Для prod среды нужно скопировать новые зависимости из environments/dev.yml в environments/prod.yml.
Code linters
Для поддержания чистоты кода используются следующие линтеры и форматтеры:
isort
- для проверки и исправления порядка импортируемых в каждом файле библиотек и модулей.black
- для проверки и исправления кода под стандарт PEP-8.mypy
- для нахождения ошибок несоответствия типов в коде.
Для применения линтеров и форматтеров:
make lint
Также во время commit’a код прогоняется через линтеры и форматтеры автоматически, благодаря pre-commit’у, и в случае несоответствия кода появятся warning’и, и некоторые несоответствия форматтеры исправляют сами.
Configuration
Файл конфигурации pre-commit'a
: .pre-commit-config.yaml. В нем прописаны используемые линтеры и форматтеры.
Настройки самих линтеров и форматтеров прописаны в pyproject.toml файле.
Gitlab CI
Этапы в CI:
docker
- Сборка docker образа и его публикация в Container Registry gitlab’a.linting
- Проверка кода с помощью линтеров.build
- Сборка и публикация python пакета в Package Registry.pages
- Рендер документации с помощью quarto.