Woorkflow, VsCode, Gitlab, CI, Giga, Makefile
https://giga.chat/link/gcsWxJqDsl
I. ЛОКАЛЬНАЯ РАБОТА (VSCode):
Интеграция инструментов в VSCode поможет тебе получать немедленную обратную связь и
автоматически исправлять ошибки,
делая код чище и качественнее.
Настройка VSCode:
- Форматирование с помощью Black:
- Скачай расширение Python от Microsoft (официальное).
- В настройках (
Ctrl + ,) найди раздел Python > Formatting: Provider и выбери Black.- Теперь при сохранении файла (
Ctrl+S) или нажатии сочетания клавиш (Shift+Alt+F)- код будет автоматически переформатирован.
- Автоформатирование на сохранение:
- Включить автоприменение форматирования при сохранении можно,
- включив опцию Editor: Format On Save.
- Linter (flake8):
- Тот же самый Python extension поддерживает встроенный линтер Flake8.
- Настройте его в VSCode, найдя раздел Python > Linting: Engine и выберите Flake8.
- Сразу увидите предупреждения и ошибки в коде, не покидая редактор.
- Type Checking (mypy & pyright):
- Есть официальные расширения для VSCode для mypy и pyright.
- Эти расширения предоставляют статическую проверку типов прямо в редакторе,
- выделяя ошибки и несоответствия.
- Импорт Sorter (isort):
- Isort можно запускать вручную, но для постоянного эффекта можно подключить через форматирование.
- Через настройки VSCode (
Python > Formatting: Additional Arguments)- можно задать аргументы для запуска isort совместно с Black.
II. НАСТРОЙКА CI НА GITLAB:
Работа с CI (Continuous Integration) полезна для того, чтобы постоянно следить за качеством кода,
даже когда изменения вносятся несколькими людьми.
Конфигурация .gitlab-ci.yml:
Рассмотрим настройку CI с учётом инструментов, которые ты упомянул.
image: python:3.12-slim-buster before_script: - pip install poetry - poetry config virtualenvs.create false - poetry install --no-root stages: - lint - format - type-check format-code: stage: format script: - poetry run black src/annotation_ci_proj - poetry run isort src/annotation_ci_proj type-check-mypy: stage: type-check script: - poetry run mypy src/annotation_ci_proj type-check-pyright: stage: type-check script: - poetry run pyright src/annotation_ci_proj lint-check: stage: lint script: - poetry run flake8 src/annotation_ci_proj
Подробности по каждому шагу:
- Stage: format:
- Запускает Black и isort для переформатирования и очистки импорта.
- Если найденные изменения значительные, то лучше остановить билд и попросить автора поправить код вручную.
- Stage: type-check:
- Параллельный запуск mypy и pyright для проверки аннотаций типов.
- Это помогает поймать ошибки раньше и увеличить уверенность в работоспособности кода.
- Stage: lint:
- Запуск Flake8 для обнаружения стилистических ошибок и плохого кода.
III. Автоматика и стратегия работы:
Лучше всего комбинировать оба подхода:
- Местная разработка (VSCode): быстрое получение обратной связи и автоисправления.
- GitLab CI: регулярная проверка при каждом коммите или пушинге, гарантирующая высокий уровень качества кода.
IV. Алгоритм дальнейших действий:
- Подготовь
.gitignore, - чтобы сохранять чистые локальные изменения
- (не допускать попадания временных файлов).
- Настрой
Makefileдля локального запуска всех инструментов сразу:
.PHONY: clean lint types help
help:
@echo "Available commands:"
@echo " make clean Remove all generated files"
@echo " make lint Run linters on the project"
@echo " make types Check type annotations using mypy/pyright"
clean:
poetry lock --no-update
poetry cache clear --all
lint:
poetry run flake8 src/annotation_ci_proj
types:
poetry run mypy src/annotation_ci_proj
poetry run pyright src/annotation_ci_proj
- Запускай локально через Makefile:
make lint make types
Заключение:
Такое сочетание локальной интеграции в VSCode и постоянной проверки через CI гарантирует,
что твой код будет оставаться качественным, красивым и безопасным для будущих модификаций.
Комментариев нет:
Отправить комментарий