Quick start: как начать проект с нуля

Данный гайд предполагает работу с GitHub

1. Создайте новый репозиторий

Ведение репозитория позволит управлять версиями проекта, хранить и модифицировать исходный код, вести совместную работу над проектом вместе с другими участниками.

При создании репозитория необходимо:

2. Создайте нулевую версию README

В README.md можно включить краткое описание проекта, инструкции по установке и использованию. Рекомендуется использовать следующую структуру (многие из пунктов невыполнимы на начальном этапе и дополняются в будущем):

При создании репозитория на GitHub можно выбрать опцию “Add a README file”, чтобы создать пустой файл README.md.

3. Настройте .gitignore

В файле .gitignore вы можете указать, какие файлы или каталоги не следует отслеживать Git. Обычно указываются временные файлы, сгенерированные средой разработки, файлы с тяжеловесными данными, или же файлы, которые содержат конфиденциальную информацию.

При создании репозитория на GitHub можно выбрать опцию “Add .gitignore”, чтобы выбрать шаблон, содержащий нежелательные файлы конкретного языка или конкретной технологии.

4. Создайте типовые задачи

Создание типовых задач на начальном этапе поможет организовать работу над проектом и дать четкие указания определенным участникам проекта.

Предлагается рассмотреть следующие виды задач, которые необходимо выполнить в рамках проекта:

Для создания типовых задач необходимо выполнить следующие действия:

  1. Откройте раздел Issues на странице вашего репозитория;
  2. Нажмите кнопку “New” для создания новой задачи;
  3. Задайте заголовок для задачи и опишите ее в поле “Comment”;
  4. Назначьте ответственных за выполнение задачи (Assignees) участников при необходимости;
  5. Добавьте метки (Labels), которые нужны для указания типа задачи, расставления приоритета задачи и других характеристик;
  6. Нажмите кнопку “Submit new issue”, для создания задачи;

Вы можете создать несколько типовых задач с различными метками, чтобы помочь участникам проекта понять, какие задачи находятся в работе, какие требуют наивысшего приоритета и. т. д.

5. Настройте защиту master-ветки

Настройка защиты master ветки позволяет предотвратить случайное, нежелательное, или несанкционированное изменение в главной ветке проекта.

Для настройки защиты необходимо выполнить следующие действия:

  1. Перейти в настройки репозитория и выбрать “Branches” в разделе “Code and automation”.
  2. В разделе “Branch protection rules” добавить правило, нажав на кнопку “Add branch protection rule”.
  3. В поле “Branch name pattern” ввести “master”/”main”
  4. Настройте различные параметры защиты, например “Require a pull request before merging”, “Require status checks to pass before merging”.
  5. Нажмите на кнопку “Create” для сохранения правила защиты.

Также можно установить более строгие настройки PR-ов: в разделе Settings деактивировать “Allow merge commits” и “Allow rebase merging”, оставив лишь “Allow squash merging” - для обеспечения большей лаконичности master-ветки с помощью склеивания всех коммитов в PR-е в один.

6. Настройте PEP8-бота

PEP 8 (Python Enhanced Proposal) - общепринятый стиль написания кода на языке Python.

PEP8-бот предназначен для проверки вашего кода на соответствие стандарту кодирования PEP8 и предотвращению ошибок в вашем коде.

Гайд по добавлению бота к репозиторию

7. Создайте модули проекта

После создания базовой структуры проекта, содержащую README.md, LICENSE, .gitignore, создайте модули, которые необходимы для вашего проекта.

Примеры часто создаваемых модулей:

Когда вы создаете модули, обязательно придерживайтесь хороших практик, вот некоторые из них:

8. Настройте CI/CD

Continuous Integration and Continuous Delivery (CI/CD) автоматизируют разработку, тестирование и развёртывание приложения. Это помогает быстро определять проблемы/ошибки в коде и автоматически развертывать новую версию приложения.

Чтобы настроить CI/CD, вам может потребоваться создать файлы конфигурации, такие как .github/workflows, и настроить тесты, сборку и развертывание вашего проекта.

[Ссылка на гайд] - Work in progress

Return to Homepage