# Отчёт об ошибках {#issue-reporting}

Как пользователь Tuist, вы можете столкнуться с ошибками или неожиданным поведением. Если это произойдёт, мы рекомендуем сообщить о них, чтобы мы могли их исправить.

## GitHub Issues — наша система отслеживания задач {#github-issues-is-our-ticketing-platform}

Ошибки следует сообщать на GitHub в виде [GitHub issues](https://github.com/tuist/tuist/issues), а не в Slack или на других платформах. GitHub лучше подходит для отслеживания и управления ошибками, ближе к кодовой базе и позволяет нам следить за ходом решения проблемы. Кроме того, он стимулирует подробное описание проблемы, что заставляет автора подумать над ней и предоставить больше контекста.

## Контекст имеет решающее значение {#context-is-crucial}

Ошибка без достаточного контекста будет считаться неполной, и у автора запросят дополнительную информацию. Если она не будет предоставлена, ошибка будет закрыта. Подумайте об этом так: чем больше контекста вы предоставите, тем проще нам понять проблему и исправить её. Поэтому, если вы хотите, чтобы ваша ошибка была исправлена, предоставьте как можно больше контекста. Постарайтесь ответить на следующие вопросы:

- Что вы пытались сделать?
- Как выглядит ваш граф зависимостей?
- Какую версию Tuist вы используете?
- Это блокирует вашу работу?

Мы также требуем предоставить минимальный **воспроизводимый проект**.

## Воспроизводимый проект {#reproducible-project}

### Что такое воспроизводимый проект? {#what-is-a-reproducible-project}

Воспроизводимый проект — это небольшой проект Tuist, демонстрирующий проблему — часто эта проблема вызвана ошибкой в Tuist. Ваш воспроизводимый проект должен содержать минимум возможностей, необходимых для чёткой демонстрации ошибки.

### Зачем создавать воспроизводимый тест-кейс? {#why-should-you-create-a-reproducible-test-case}

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

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

### Шаги по созданию воспроизводимого проекта {#steps-to-create-a-reproducible-project}

- Создайте новый git-репозиторий.
- Инициализируйте проект с помощью `tuist init` в директории репозитория.
- Добавьте код, необходимый для воспроизведения ошибки, которую вы видели.
- Опубликуйте код (ваш аккаунт на GitHub хорошо подходит для этого) и затем добавьте ссылку на него при создании ошибки.

### Преимущества воспроизводимых проектов {#benefits-of-reproducible-projects}

- **Меньшая площадь поиска:** Убрав всё, кроме ошибки, вам не придётся копаться в коде, чтобы найти баг.
- **Не нужно публиковать секретный код:** Вы можете не иметь возможности опубликовать свой основной проект (по многим причинам). Создание небольшой его части в виде воспроизводимого тест-кейса позволяет публично продемонстрировать проблему, не раскрывая секретный код.
- **Доказательство ошибки:** Иногда ошибка вызвана определённой комбинацией настроек на вашей машине. Воспроизводимый тест-кейс позволяет участникам загрузить вашу сборку и протестировать её на своих машинах. Это помогает проверить и сузить круг причин проблемы.
- **Получите помощь в исправлении ошибки:** Если кто-то другой может воспроизвести вашу проблему, у него часто есть хорошие шансы её исправить. Практически невозможно исправить ошибку, не имея возможности сначала её воспроизвести.
