Поделиться через


Участие в семантическом ядре

Вы можете внести свой вклад в семантический ядро, отправив проблемы, запуская обсуждения и отправляя запросы на вытягивание (PR). Вклад в код очень ценен, но просто подачи вопросов для проблем, с которыми вы сталкиваетесь, также отличный способ внести свой вклад, так как это помогает нам сосредоточить наши усилия.

Сообщение о проблемах и отзывы

Мы всегда приветствуем отчеты об ошибках, предложения API и общие отзывы. Так как мы используем GitHub, вы можете использовать вкладки "Проблемы и обсуждения", чтобы начать беседу с командой. Ниже приведены несколько советов при отправке вопросов и отзывов, чтобы мы могли реагировать на ваши отзывы как можно быстрее.

Создание отчетов о проблемах

Новые проблемы пакета SDK можно сообщить в нашем списке проблем, но перед отправкой новой проблемы выполните поиск по списку проблем, чтобы убедиться, что он еще не существует. Если у вас возникли проблемы с документацией по семантике ядра (на этом сайте), отправьте проблему в репозиторий документации по семантике ядра.

Если вы найдете существующую проблему для того, что вы хотите сообщить, укажите собственные отзывы в обсуждении. Мы также настоятельно рекомендуем проголосовать (👍 реакция) исходного поста, так как это помогает нам определять приоритеты популярных вопросов в нашем невыполненной работы.

Написание хорошего отчета об ошибках

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

  • Высокоуровневое описание проблемы.
  • Минимальное воспроизведение, т. е. наименьший размер кода или конфигурации, необходимый для воспроизведения неправильного поведения.
  • Описание ожидаемого поведения, контрастное с фактическим поведением , наблюдаемое.
  • Сведения о среде: ОС/дистрибутив, архитектура ЦП, версия пакета SDK и т. д.
  • Дополнительные сведения, например, регрессия из предыдущих версий? Существуют ли известные обходные пути?

Отправка отзыва

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

Мы рекомендуем использовать категорию идей, если у вас есть определенная идея, поделиться и категорией Q&A, если у вас есть вопрос о семантическом ядре.

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

Помогите нам определить приоритет отзывов

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

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

Отправка запросов на вытягивание

Мы приветствуем вклад в семантический ядро. Если у вас есть исправление ошибок или новая функция, которую вы хотите внести, выполните приведенные ниже действия, чтобы отправить запрос на вытягивание (PR). После этого специалисты по обслуживанию проектов будут просматривать изменения кода и объединять их после их принятия.

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

  1. Создайте проблему для вашей работы.
    • Этот шаг можно пропустить для тривиальных изменений.
    • Повторно используйте существующую проблему в этой теме, если она существует.
    • Получите согласие от команды и сообщества, что предлагаемое изменение является хорошим, используя обсуждение в этом вопросе.
    • Четко укажите в проблеме, которую вы возьмете на себя реализацию. Это позволяет нам назначать проблему вам и гарантировать, что кто-то другой не случайно работает над ним.
  2. Создайте личный вилок репозитория на GitHub (если у вас еще нет).
  3. Создайте вилку ветвь от main (git checkout -b mybranch).
    • Назовите ветвь так, чтобы она четко сообщила о ваших намерениях, таких как "проблема-123" или "githubhandle-issue".
  4. Внесите и зафиксируйте изменения в ветви.
  5. При необходимости добавьте новые тесты, соответствующие изменению.
  6. Создайте репозиторий с изменениями.
    • Убедитесь, что сборки чисты.
    • Убедитесь, что тесты проходят все, включая новые тесты.
  7. Создайте pr-запрос к главной ветви репозитория.
    • Состояние в описании того, какая проблема или улучшение изменения устранена.
    • Убедитесь, что все проверки непрерывной интеграции передаются.
  8. Подождите отзыв или утверждение изменений от обслуживающих кодов.
  9. Когда владельцы областей подписаны, и все проверки зеленые, ваш PR будет объединен.

Dos и Don'ts во время участия

Ниже приведен список dos и не рекомендуется при участии в семантическом ядре, чтобы помочь нам просматривать и объединять изменения как можно быстрее.

Сделайте:

  • Следуйте стандартному стилю кода .NET и стилю кода Python
  • При изменении текущего стиля проекта или файла следует уделять приоритет, если он расходится с общими рекомендациями.
  • Включите тесты при добавлении новых функций. При исправлении ошибок начните с добавления теста, в котором показано, как текущее поведение нарушено.
  • Следите за обсуждениями. Когда новая или связанная тема часто лучше создать новую проблему, чем для бокового отслеживания обсуждения.
  • Четко укажите о проблеме, которую вы собираетесь принять на себя реализацию.
  • Блог и /или твит о ваших вкладах!

Не давайте:

  • Не удивляйтесь команде с большими запросами на вытягивание. Мы хотим поддержать участников, поэтому мы рекомендуем подать вопрос и начать обсуждение, чтобы мы могли договориться о направлении, прежде чем инвестировать большое количество времени.
  • Не зафиксируйте код, который вы не написали. Если вы считаете, что код подходит для добавления в семантическое ядро, отправьте проблему и запустите обсуждение перед продолжением.
  • Не отправляйте PR, изменяющие связанные с лицензированием файлы или заголовки. Если вы считаете, что есть проблема с ними, отправьте вопрос, и мы будем рады обсудить его.
  • Не делайте новые API без подачи проблемы и обсуждения с командой. Добавление новой общедоступной поверхности в библиотеку является большим делом, и мы хотим убедиться, что мы получите его правильно.

Критические изменения

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

Процесс непрерывной интеграции (CI)

Система непрерывной интеграции (CI) автоматически выполняет необходимые сборки и выполняет тесты (включая те, которые также следует запускать локально) для PR. Сборки и тестовые запуски должны быть чистыми перед объединением PR.

Если сборка CI завершается сбоем по какой-либо причине, проблема с pr будет обновлена со ссылкой, которую можно использовать для определения причины сбоя, чтобы ее можно было устранить.

Участие в документации

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