Правила внесения вклада
Содержание
Как вы можете внести свой вклад?
Brawe приветствует все виды вклада! Вы можете оказать огромное влияние, не написав ни одной строки кода.### Помощь в сортировке задач
Один из самых простых способов помочь — это просмотреть нашу вкладку "Issues"
- Проблема всё ещё актуальна? Иногда мы исправляем проблему, но не всегда закрываем её.
- Есть ли четкие шаги для воспроизведения проблемы? Если нет, найдите и запишите их.
- Является ли эта проблема дубликатом? Если да, укажите задачу, которая является дубликатом, в беседе.
- Подробнее см. страницу Правил сортировки задач.
- Убедитесь, что задачи, которые были решены, имеют правильную метку версии. Возможно, есть запросы на слияние, которые исправляют ошибку на разных каналах продуктов, и иногда задачи забываются (и не обновляются).### Обновление документации
Документация крайне важна. Есть множество областей, где можно улучшить ситуацию:
- Добавление более понятных или актуальных инструкций в README для как
brave-browser
так и brave-core
.
- Запись/обновление полезной информации в нашей вики. Вам потребуется обратиться к члену команды Brave за разрешением — вы можете сделать это, создав новую задачу или упомянув члена команды Brave в существующей задаче.
- Помощь в предложении способа перевода документации на другие языки. В настоящее время всё представлено на английском языке.
- Улучшение этого документа
Помощь с переводами
Все тексты, добавляемые в браузер Brave, создаются сначала на английском языке (en-US) и затем переводятся людьми на другие языки.
Мы нуждаемся в переводе многих языков, а некоторые переводы могут быть незаконченными или плохого качества.
Для всего необходимого для начала работы проверьте https://www.transifex.com/brave/brave/:smile:### Работа над кодом
- Вики-страницы репозитория содержат инструкции по клонированию репозитория и установке на вашей выбранной платформе
- Обратитесь к странице решения проблем, если вы столкнулись с трудностями
- Как только вы начнете работу, найдите интересный вопрос для решения. Ознакомьтесь с задачами, помеченными как good first issue
- некоторые вопросы требуют знаний только JavaScript (например, страницы, использующие React и нашу библиотеку UI Brave)
- другие вопросы могут потребовать изменений на C++ в коде Brave или Chromium## Начало работы
- Убедитесь, что у вас есть аккаунт на GitHub.
- Подайте тикет для вашего вопроса, если он ещё не существует. Пожалуйста, укажите версию браузера Brave, операционную систему и шаги для воспроизведения проблемы.
- Создайте форк репозитория на GitHub (это может быть
brave-browser
, brave-core
или оба).
- Для изменений в файлах JavaScript мы рекомендуем установить плагин Standard для вашего предпочитаемого текстового редактора, чтобы обеспечить согласованность стиля кода.
- Для изменений на C++, вы можете рассмотреть возможность настройки clang-format для вашего редактора.
- Для изменений, которые включают патчи, пожалуйста, ознакомьтесь с нашей руководства по патчингу Chromium.
Внесение изменений
Как только вы склонировали репозиторий на свой компьютер, вы готовы приступить к правкам!Пожалуйста, обратите внимание, что здесь представлено два репозитория:
- основной проект (этот репозиторий,
brave-browser
), который загружает весь код Chromium в src/
-
brave-core
представляет собой подмодуль (вложенный репозиторий), расположенный на диске под корнем в src/brave
. В зависимости от того, что вы правите, вам потребуется добавить ваш форк в список удалённых репозиториев. По умолчанию, origin
установлен как основной репозиторий.Например, вот как это делает пользователь GitHub bsclifton
, чтобы добавить оба удалённых репозитория brave-browser
и brave-core
:
# Корневая директория, где проект клонирован
cd ~/brave-browser/
git remote add bsclifton git@github.com:bsclifton/brave-browser.git
git fetch bsclifton
# Корневая директория для репозитория `brave-core`
cd src/brave
git remote add bsclifton git@github.com:bsclifton/brave-core.git
git fetch bsclifton
После настройки, мы можем предложить несколько советов:
- Создайте новую ветку для вашей работы. Полезно иметь описательное имя, например
fix-fullscreen-issue
.
- Делайте коммиты логическими единицами. Если требуется, используйте команду
git rebase -i
для объединения коммитов перед отправкой pull-запроса.
- Новые возможности и большинство других pull-запросов требуют написания нового теста до принятия pull-запроса. Исключения могут быть связаны с небольшими изменениями в области кода, которая ещё не имеет тестов, текстовыми изменениями, изменениями конфигурации сборки, вещами, которые невозможно протестировать из-за ограничений тестового набора, и т.д.
- Используйте автоматически закрывающиеся ключевые слова GitHub в сообщении коммита, и сделайте тело сообщения коммита максимально описательным. Пример:
Добавление руководства для новых участников
Это первая версия руководства для новых участников, которое поможет людям быстрее получать свои pull-запросы.
```Закрывает #108
- Выполните тесты, запустив
npm run test brave_unit_tests
и npm run test brave_browser_tests
- JavaScript юнит-тесты можно выполнить из директории
src/brave
с помощью команды npm run test-unit
Сохранение вашего форка в актуальном состоянии
- Оба
brave-browser
и brave-core
клонируются с удалённым репозиторием origin
, который является основным репозиторием, поэтому вы можете обновлять любой из них с помощью git pull
.
- После получения
origin
, вы можете сделать ребейз своей ветви master
относительно origin/master
git fetch origin
git fetch bsclifton
git checkout -b fork_master bsclifton/master
git rebase origin/master
git push bsclifton fork_master:master
Более простой стратегией может быть поддержание origin
в актуальном состоянии и создание ветвей на основе этого (и отправка этих ветвей в ваш форк).
Внесение пулл-запросов
После внесения изменений в вашей ветке вы готовы отправить патч. Патчи на GitHub отправляются в виде пулл-запроса.#### Рассмотрите перед отправкой пулл-запроса
Некоторые полезные вещи, которые стоит учесть перед отправкой своего пулл-запроса:
- Вы тестировали изменения вручную?
- Ваш пулл-запрос исправляет несколько проблем? Если да, возможно, следует разделить его на отдельные пулл-запросы.
- Вы включили тесты? (мы используем юнит-тесты, браузерные тесты и тесты на JavaScript)
- Если вы сделали изменения дизайна или макета, был ли предоставлен макет? Соответствуют ли ваши изменения этому макету?
- Если ваши изменения затрагивают сессии или предпочтения, были ли включены шаги для проверки этих изменений? Возможно, стоит также выполнить ручной тест обновления.#### Каждый pull-request должен содержать
- Описание изменений; это используется в заметках выпуска (десктоп или Android).
- Короткое описание изменений.
- Ссылку на задачу, которую он решает.
- Шаги для проверки исправления (если применимо).
- Для изменений, связанных с дизайном, полезно приложить скриншоты.
После того как вы отправите pull-request, вам следует отметить рецензентов и добавить метки, если это необходимо. Если у вас нет необходимых прав доступа к GitHub, сотрудник компании Brave сделает это за вас.
Сотрудники должны
- Убедиться, что владелец указан через поле
Assignees
.
- Убедиться, что минимум один другой сотрудник или участник указан через поле
Reviewers
.
- Пройти по списку, предоставляемому шаблоном pull-request, и отметить подходящие пункты.### Закрытие задач
- Задачи должны быть привязаны к этапу после слияния пулл-запроса (и внедрения исправления в nightly, то есть в мастер).
- Некоторым задачам может потребоваться перемещение на другие каналы (Dev / Beta / Release). Обратитесь к нашим заметкам о перемещении пулл-запроса.
- Если задача закрывается без исправления, потому что она была дубликатом или, возможно, недействительной, все маркеры этапа должны быть удалены.
- Если баг не полностью исправлен после закрытия задачи, создайте новую задачу вместо повторного открытия существующей (если код не был откатлен).
Помощь в сортировке задач* Недействительные ошибки должны быть закрыты, помечены как недействительные или добавлен комментарий, указывающий на то, что они должны быть закрыты, если у вас нет прав доступа.
- Запрос дополнительной информации по проблеме при необходимости полезен.
- Добавление подходящих меток к проблеме полезно.
- Добавление и поиск дубликатов, а также связывание их между собой полезно.
- Создание отслеживаемых задач для области работы с несколькими связанными проблемами полезно.
- Выделение вещей, которые кажутся важными для дополнительного внимания, полезно.
- Улучшение шагов воспроизведения полезно.
- Тестирование и добавление комментария с "не удалось воспроизвести", если проблема кажется запутанной, полезно.
- Тестирование открытых запросов на слияние.
- Вам могут быть предоставлены права записи, если вы много помогли с сортировкой задач, обратившись к @bbondy, @bsclifton, @kjozwiak или другому члену команды Brave.
- Помощь в обеспечении того, чтобы проблемы имели четкое и понятное название (например, нечто вроде "Brave сломан").
- Первый комментарий в проблеме желательно содержал бы четкое описание проблемы и описание влияния на пользователей. Взаимодействие с пользователями для получения скриншотов, шагов воспроизведения и дополнительной информации настоятельно рекомендуется, чтобы проблема была максимально ясной.* Если проблема является дубликатом, пожалуйста, сообщите создателю проблемы в вежливой форме, как он может следить за прогрессом родительской проблемы (включая сроки выполнения, если она помечена майлстоуном).
Опубликовать ( 0 )