# Отчетность по проблемам {#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}

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