Skip to content

Instantly share code, notes, and snippets.

@andy-takker
Last active August 8, 2023 11:59
Show Gist options
  • Select an option

  • Save andy-takker/87ce4ca94bf929dc0e498da7a0744a28 to your computer and use it in GitHub Desktop.

Select an option

Save andy-takker/87ce4ca94bf929dc0e498da7a0744a28 to your computer and use it in GitHub Desktop.
Чек-лист по публичным репозиториям для pet-проектов

Что проверить в публичном репозитории перед тем как выложить его на GitHub?

  1. Наличие корректного .gitignore файла (или может быть нескольких для front и backend частей проекта, если они в одной репе). В хорошем .gitignore файле должны быть прописано виртуальное окружение, различные кэши __pycache__, .pytest_cache, логи, файлы баз данных (.sqlite3) и т. д. В идеале, чтобы команда git add . запущенная в корне проекта не добавила ничего лишнего в индекс. (Примеры хороших можно взять здесь)
  2. Подбробный и понятный README.md. Например, можно воспользоваться вот этой инструкцией. Главное в readme должно быть:
    • название проекта
    • описание
    • разделы "Как запустить/установить проект/приложение" (здесь должны быть указаны необходимые переменные окружения для запуска/сборки, желательно готовые команды, чтобы можно было клонировать проект, скопировать .env и запустить.
    • примеры или описание того, как использовать ваш проект
    • соавторы или команда, в которой работали над проектом, ссылки на проекты, которые может быть брали в основу
    • шилдики со всякой полезной информацией https://shields.io/ (необязательно)
    • лицензия (необязательно)
    • как контрибьютить в проект (если у вас Open Source) (необязательно)
    • примеры команд и настроки среды для запуска тестов, проверок на вашем проекте (необязательно)

Обязательно попробуйте после заполнения README.md, следуя инструкции по шагам, развернуть проект с нуля сами или попросите коллегу, чтобы он попробовал.

  1. Code Style. Соблюдайте PEP 8. Перед публикацией всегда запускайте линтеры и форматеры для проверки вашего кода. Идеальный вариант - настроить автоматические проверки (pre-commit).
  2. Типизация и MyPy. Используйте в проекте Type Hints и обязательно проверяйте код с помощью mypy
  3. Проверьте наличие ключей, токенов, credentials и т. д. при чем как явно в коде, так и файлами в проекте. Если они уже попали в коммит, то удалить так, чтобы в истории их не было. Это можно сделать, например, с помщью git rebase или просто создайте новый репозиторий и начните коммитить с нуля. Используйте env-переменные (dotenv, pydantic-settings)
  4. Замените все print на logger. Сделайте или найдите хорошую конфигурацию логгеров, подходящую именно вашему проекту
  5. Проанализируйте структуру проекта. Плохо если у вас один main.py на 1000 строк или 30 файлов по 5 строк в каждом. Нужен разумный баланс и понятные имена файлов и папок. Обратитесь к примерам проектов ваших коллег.
  6. Проверьте файл с зависимостями вашего проекта. Там должны быть только необходимые библиотеки актуальных версий
  7. Контейнеры. Особенно важно для веб-проектов. Добавьте в репозиторий Dockerfile или даже docker-compose.yml. Полезные советы по контейнерам для Python
  8. CI/CD. Если речь идет про GitHub, то это Github Actions, если GitLab - Gitlab CI. Покажите, что вы умеете настраивать хотя бы простую автоматизацию для проверки проекта линтерами и форматерами (пример).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment