Опишите наблюдаемое поведение после выполнения шагов и укажите, в чём именно заключается проблема с этим поведением.
Объясните, какое поведение вы ожидали увидеть вместо этого и почему.
Включите скриншоты и анимированные GIF-файлы консоли или системной платы, если это возможно, которые показывают выполнение описанных шагов и наглядно демонстрируют проблему.
Если вы сообщаете о сбое RMP, включите полный дамп памяти в .hex файле. Многие инструментальные цепочки, такие как Keil или GDB, генерируют эти файлы.
Если проблема связана с производительностью или памятью, включите эти профилирующие данные в свой отчёт.
Если проблема не была вызвана конкретным шагом, опишите, что вы делали перед тем, как возникла проблема, и предоставьте дополнительную информацию, используя приведённые ниже рекомендации.
Предоставьте больше контекста, ответив на следующие вопросы:
Можете ли вы воспроизвести проблему?
Проблема появилась недавно (например, после обновления до новой версии RMP) или она всегда существовала?
Если проблема появилась недавно, можете ли вы воспроизвести её в более старой версии RMP? Какая самая последняя версия, в которой проблема не возникает? Вы можете загрузить старые версии RMP со страницы релизов.
Можно ли надёжно воспроизвести проблему? Если нет, предоставьте подробную информацию о том, как часто возникает проблема и при каких условиях она обычно возникает, особенно если есть внешнее вмешательство.
Включите сведения о вашей конфигурации и среде:
Какую версию RMP вы используете?
Как называется и какая версия операционной системы хостинга используется?
Вы компилируете RMP на виртуальной машине? Если да, то какое программное обеспечение для виртуальных машин вы используете и какие операционные системы и версии используются для хоста и гостя?
Этот раздел поможет вам подать предложение по улучшению RMP, включая совершенно новые функции и незначительные улучшения существующей функциональности. Следование этим рекомендациям помогает разработчикам и сообществу понять ваше предложение и найти похожие предложения
.
Предложения по улучшению отслеживаются как проблемы GitHub. Создайте проблему в этом репозитории и предоставьте следующую информацию:
Используйте ясный и описательный заголовок для проблемы, чтобы идентифицировать предложение.
Предоставьте пошаговое описание предлагаемого улучшения как можно подробнее.
Приведите конкретные примеры для демонстрации шагов. Включите копируемые фрагменты кода, которые вы используете в этих примерах, в виде блоков кода Markdown.
Опишите текущее поведение и объясните, какое поведение вы ожидаете увидеть вместо него и почему.
Объясните, почему это улучшение будет полезно большинству пользователей RMP и не является чем-то, что может или должно быть реализовано как отдельный пакет.
Перечислите некоторые другие ОСРВ или приложения, где существует это улучшение.
Укажите, какую версию RMP и инструментальную цепочку вы используете.
Заполните необходимый шаблон
Не включайте номера проблем в название PR
Включайте скриншоты и анимированные GIF-файлы в свой запрос на вытягивание, когда это возможно.
Следуйте C руководствам по стилю.
Документируйте новый код на основе Руководства по стилю документации.
Завершайте все файлы новой строкой (иначе вы получите массу предупреждений на некоторых инструментальных цепочках)!
Избегайте платформозависимого кода, если только вы не работаете над поддержкой нового процессора.
Используйте настоящее время («Добавить функцию», а не «Добавлена функция»)
Ограничьте первую строку 80 символами или меньше
После первой строки свободно ссылайтесь на проблемы и запросы на вытягивание.
Рассмотрите возможность начала сообщения о фиксации с соответствующего эмодзи:
:art:
при улучшении формата/структуры кода:racehorse:
при повышении производительности:non-potable_water:
при устранении утечек памяти:memo:
при написании документации:penguin:
при исправлении чего-либо в Linux или GNU toolchain:apple:
при исправлении чего-либо на macOS или Clang/LLVM toolchain:checkered_flag:
при исправлении чего-либо на Windows или официальном инструментарии производителя:bug:
при исправлении ошибки:fire:
при удалении кода или файлов:green_heart:
при исправлении CI сборки:white_check_mark:
при добавлении тестов:lock:
при работе с надёжностью или формальным доказательством:arrow_up:
при обновлении зависимостей или добавлении функций:arrow_down:
при понижении зависимостей или удалении функций:shirt:
при устранении предупреждений линтераa=b
вместо a = b
foo(a, b, c)
, либо foo(a,b,c)
— всё в порядке.(a==b)||(c==d)
вместо a==b||c==d
.Пример файла заголовка на C:
/******************************************************************************
Filename : <Filename>.h
Author : <Name>
Date : <DD/MM/YYYY>
Licence : LGPL v3+; see COPYING for details.
Description : <File description>
******************************************************************************/
/* Define ********************************************************************/
#ifdef __HDR_DEF__
#ifndef __<FILENAME>_DEF__
#define __<FILENAME>_DEF__
/*****************************************************************************/
<Place your defines here>
/*****************************************************************************/
/* __<FILENAME>_DEF__ */
#endif
/* __HDR_DEF__ */
#endif
/* End Define ****************************************************************/
/* Struct ********************************************************************/
#ifdef __HDR_STRUCT__
#ifndef __<FILENAME>_STRUCT__
#define __<FILENAME>_STRUCT__
/* Use defines in these headers */
#define __HDR_DEF__
<Place external define import headers here>
#undef __HDR_DEF__
/* We used structs in these headers */
<Place external struct import headers here>
/*****************************************************************************/
<Place struct definitions here>
/*****************************************************************************/
/* __<FILENAME>_STRUCT__ */
#endif
/* __HDR_STRUCT__ */
#endif
/* End Struct ****************************************************************/
/* Private Variable **********************************************************/
#if(!(defined __HDR_DEF__||defined __HDR_STRUCT__))
#ifndef __<FILENAME>_MEMBER__
#define __<FILENAME>_MEMBER__
/* In this way we can use the data structures and definitions in the headers */
#define __HDR_DEF__
<Place external define import headers here>
#undef __HDR_DEF__
#define __HDR_STRUCT__
<Place external struct import headers here>
#undef __HDR_STRUCT__
/* If the header is not used in the public mode */
#ifndef __HDR_PUBLIC__
/*****************************************************************************/
<Place private global variables here> **Пример исходного файла на языке C:**
/******************************************************************************
Имя файла: <имя файла>.c
Автор: <имя>
Дата: <ДД/ММ/ГГГГ>
Лицензия: LGPL v3+; подробности см. в файле COPYING.
Описание: <описание файла>
******************************************************************************/
/* Включить *******************************************************************/
#define __HDR_DEF__
<Поместите сюда определения заголовков, которые вы хотите импортировать>
#undef __HDR_DEF__
#define __HDR_STRUCT__
<Поместите сюда заголовки, структуры которых вы хотите импортировать>
#undef __HDR_STRUCT__
/* Частное включение */
<Разместите здесь частные заголовки>
#define __HDR_PUBLIC__
<Поместите здесь заголовки, глобальные переменные которых вы хотите импортировать>
#undef __HDR_PUBLIC__
/* Конец включения ***********************************************************/
/* Функция:<имя> *************************************************************
Описание: <Описание функции>.
Вход: <тип> <аргумент> — <объяснение>.
Выход: <тип> <аргумент> — <объяснение>.
Возврат: <тип> — <объяснение>.
*****************************************************************************/
<Тип> <Имя>(<список параметров>)
{
<Тело функции>
}
/* Конец функции:<имя> *******************************************************/
/* Конец файла ***************************************************************
* Все функции и файлы должны содержать документацию, которая должна соответствовать изменениям кода.
* При значительном изменении кода, особенно их API, создайте проблему, чтобы предупредить о возможных ручных изменениях.*
## Атрибуция
Этот CONTRIBUTING адаптирован из проекта [Atom](https://github.com/atom).
В этом тексте присутствуют фрагменты кода на языке C, но они не содержат функций или переменных, поэтому перевод не требует специальных знаний.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )