Существует множество способов внести свой вклад в проект OneFuzz: регистрация ошибок, отправка pull-запросов, отчет о проблемах и создание предложений.
Пожалуйста, ознакомьтесь с нашими значками проекта.
Пожалуйста, не сообщайте о проблемах безопасности через публичные issues GitHub. Вместо этого сообщите об этом в Microsoft Security Response Center (MSRC). Дополнительную информацию см. в SECURITY.md.
Пожалуйста, следуйте этой простой правиле, чтобы помочь нам избежать ненужных потерь времени и разочарований, и обеспечить эффективное и эффективное использование времени всех участников - вашего, нашего и других членов сообщества:
👉 Если у вас есть вопрос, вы считаете, что обнаружили проблему, хотите предложить новую функцию и т. д., то найдите/создайте issue ДО начала работы по устранению/реализации этой проблемы.
Перед созданием нового issue, сначала поищите существующие открытые и закрытые issues: Этот проект развивается быстро! Вероятно, кто-то уже столкнулся с той же проблемой, и кто-то может работать над или уже внедрил решение!
Если нет существующего item, описывающего вашу проблему/функцию, отлично - создайте новый issue:### Создание нового Issue
Когда вы нажимаете "Новый Issue", выберите тип issue, наиболее соответствующий тому, что вы хотите сообщить/спросить/запросить.
<ваш дистрибутив/инструмент выбора>
. Обучите нас, как нам помочь!хотите указать, что вы затронуты данной проблемой, то поставьте лайк оригинальному сообщению, нажав на кнопку [+😊] и на значок 👍 (+1). Таким образом мы сможем измерить значимость проблемы.## Внесение вклада в исправление проблем / реализацию функций
Для тех, кто готов и хочет помочь исправить проблемы и/или реализовать функции...
Некоторые проблемы/функции могут быть легко описаны и поняты. В таких случаях, если команда одобрила ваш подход, пропустите к разделу "Fork, Branch, и Create your PR" ниже.
Мелкие проблемы, которые не требуют спецификации, будут помечены как Issue-Bug или Issue-Task.
Однако, некоторые проблемы/функции требуют тщательного анализа и формального проектирования перед реализацией. В таких случаях мы будем просить написать спецификацию, а связанную с ней проблему пометить как Issue-Feature.
Спецификации помогают участникам обсуждать различные подходы к решению проблемы, описывать поведение функции, её влияние на пользователя, что произойдет, если что-то пойдет не так, и т.д. Достигая согласия в спецификации до написания кода, часто получается более простый код и меньше потраченных усилий в долгосрочной перспективе.
Спецификации будут управляться аналогично вкладам в код, поэтому следуйте инструкциям "Fork, Branch и Create your PR" ниже.
Чтобы написать/внести вклад в спецификацию: fork, branch и commit через PRs, как вы бы делали это с любыми изменениями кода.Спецификации пишутся в markdown, хранятся в папке \doc\spec
и названы
[issue id] - [описание спецификации].md
.
👉 Важно следовать шаблонам спецификаций и заполнить запрошенную информацию. Доступные шаблоны спецификаций помогут убедиться, что спецификации содержат минимальную информацию и решения, необходимые для начала разработки. В частности, спецификации требуют подтверждения того, что вы уже обсудили проблему/идею с командой в сообщении и что вы предоставили ID сообщения для ссылки.
Участники команды будут рады помочь в проверке спецификаций и помочь довести их до завершения.
После того как команда одобрила задачу/спек, можно приступить к разработке. Если сразу нет доступных разработчиков, спек можно приостановить, ожидая, пока разработчик возьмется за работу. Задачи приостановленных спеков будут помечены меткой "Help Wanted" (Помощь нужна). Чтобы найти список разработочных возможностей, ожидающих участия разработчиков, посетите раздел Issues (Задачи) и отфильтруйте по метке Help-Wanted.
После того как вы обсудили свой предлагаемый функционал/фикс/и т.д. с членом команды, и вы согласовали подход или спецификацию, которая была написана и одобрена, настало время начать разработку:1. Создайте форк репозитория, если вы еще этого не сделали.
Dict[UUID, int]
лучше, чем Any
.OneFuzz состоит из нескольких компонентов и работает на Linux и Windows:
Хотя локальная сборка возможна для каждого компонента системы, новые участники могут найти автоматическую сборку для PR полезной.
Сначала создайте форк репозитория OneFuzz, чтобы вы могли отправить pull request. Затем клонируйте свой форк локально:
git clone https://github.com/<<<ваш-github-аккаунт>>>/onefuzz.git
```Иногда вам потребуется объединить изменения из основного репозитория (официального репозитория кода) с вашим форком.
```bash
cd onefuzz
git checkout main
git pull https://github.com/microsoft/onefuzz.git main
Управляйте любыми конфликтами слияния, коммитируйте их и затем отправляйте их в ваш форк.
👉 Репозиторий
microsoft/onefuzz
содержит GitHub Actions, которые автоматически собирают OneFuzz и сортируют компоненты во время разработки. Если вы не хотите, чтобы эти действия выполнялись на вашем форке, вы можете отключить Actions для вашего форка черезhttps://github.com/YOUR_USERNAME/onefuzz/settings/actions
.
Эти инструкции предполагают наличие рабочей установки Python 3.7 (или более поздней версии) и активированной сессии Azure CLI.
release-artifacts
из вашего сборочного процесса CICD.release-artifacts.zip
в эту новую директорию.onefuzz-deployment
.python3 -m venv onefuzz-deploy-venv
. onefuzz-deploy-venv/bin/activate
pip install wheel
pip install -r requirements.txt
python deploy.py ${REGION} ${GROUP} ${INSTANCE} ${OWNER}
### Обзор кодаКогда вы хотите, чтобы команда взглянула на вашу работу (даже если она ещё не завершена), отметьте ваш запрос на внесение изменений как 'Готов к обзору', чтобы команда могла просмотреть вашу работу, оставить комментарии, предложения и запросы на изменения. Это может занять несколько циклов, но в конечном итоге результат будет надёжным, проверяемым и соответствующим кодом, безопасным для слияния.
Мы будем рассматривать запросы на внесение изменений от сообщества с таким же уровнем внимания и строгостью, как и коммиты, отправленные нашей внутренней командой.
Как только ваш код будет проверен и одобрен необходимым количеством членов команды, он будет слит в ветку master. После слияния ваш запрос на внесение изменений будет автоматически закрыт.
Благодарим вас за ваш вклад заранее!
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )