1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xurime-aurora

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CONTRIBUTING.md 29 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 27.11.2024 20:19 6ff4e24

Вклад в проект Aurora

Хотите поработать над проектом Aurora? Отлично! Эта страница содержит информацию об отчётах о проблемах, а также некоторые советы и рекомендации, полезные для опытных участников проектов с открытым исходным кодом. Наконец, перед тем как начать участвовать, обязательно прочитайте наши правила сообщества.

Темы

Отчёт о проблемах безопасности

Разработчики Aurora серьёзно относятся к безопасности. Если вы обнаружите проблему безопасности, немедленно сообщите о ней!

Пожалуйста, НЕ создавайте публичный отчёт, вместо этого отправьте свой отчёт конфиденциально на xuri.me.

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

Сообщение о других проблемах

Отличный способ внести вклад в проект — отправить подробный отчёт при возникновении проблемы. Мы всегда ценим хорошо написанные и подробные отчёты об ошибках и будем благодарны вам за это!

Прежде чем отправлять отчёт, проверьте, что наша база данных проблем уже не включает эту проблему или предложение. Если вы найдёте совпадение, вы можете использовать кнопку «Подписаться», чтобы получать уведомления об обновлениях. Не оставляйте случайные комментарии «+1» или «У меня тоже есть эта проблема», так как они только засоряют обсуждение и не помогают решить проблему. Однако, если у вас есть способы воспроизвести проблему или дополнительная информация, которая может помочь решить проблему, пожалуйста, оставьте комментарий.

При сообщении о проблемах всегда включайте вывод команды go env.

Также включите шаги, необходимые для воспроизведения проблемы, если это возможно и применимо. Эта информация поможет нам быстрее рассмотреть и исправить вашу проблему. При отправке длинных файлов журналов рассмотрите возможность публикации их в виде гиста (https://gist.github.com). Не забудьте удалить конфиденциальные данные из ваших файлов журналов перед публикацией (вы можете заменить эти части на «ОТРЕДАКТИРОВАНО»).

Краткие советы и рекомендации для опытных участников

Этот раздел даёт опытным участникам несколько советов и рекомендаций.

Запросы на включение всегда приветствуются

Не уверены, стоит ли отправлять запрос на включение из-за опечатки? Нашли ошибку и знаете, как её исправить? Сделайте это! Мы будем признательны. Любое существенное улучшение должно быть задокументировано как проблема GitHub, прежде чем кто-либо начнёт работать над ним.

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

Предложения по дизайну и очистке

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

Мы стараемся поддерживать Aurora компактной и сфокусированной. Aurora не может делать всё для всех. Это означает, что мы можем отказаться от включения новой функции. Однако может быть способ реализовать эту функцию поверх Aurora.

Соглашения

Форкните репозиторий и внесите изменения в своём форке в функциональной ветке:

— Если это ветка исправления ошибок, назовите её XXXX-что-то, где XXXX — номер проблемы. — Если это функциональная ветка, создайте проблему улучшения, чтобы объявить о своих намерениях, и назовите её XXXX-что-то, где XXXX — номер проблемы.

Напишите модульные тесты для своих изменений. Go имеет отличную встроенную среду тестирования; используйте её! Взгляните на существующие тесты для вдохновения. Перед отправкой запроса на включение запустите полный тест на своей ветке.

Обновляйте документацию при создании или изменении функций. Проверьте свои изменения документации на ясность, лаконичность и правильность, а также на чистоту сборки документации.

Пишите чистый код. Универсально отформатированный код способствует лёгкости написания, чтения и обслуживания. Всегда запускайте gofmt -s -w file.go для каждого файла. Изменён файл перед фиксацией изменений. Большинство редакторов имеют плагины, которые делают это автоматически.

Описания запросов на включение (pull request) должны быть как можно более ясными и включать ссылку на все проблемы, которые они решают.

Успешные изменения

Прежде чем вносить большие или важные изменения, постарайтесь скоординироваться с сопровождающими проекта перед отправкой запроса на включение. Это избавит вас от лишней работы, которая может быть не объединена.

Большие запросы на включение, отправленные без предварительного общения, вряд ли будут успешными.

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

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

Более крупные изменения обычно лучше работают с проектными документами. Они сосредоточены на предоставлении контекста дизайну во время разработки функции и могут информировать будущие вклады в документацию.

Сообщения о фиксации

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

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

На практике лучший подход к поддержанию хорошего сообщения о фиксации — использовать git add -p и git commit --amend, чтобы сформулировать надёжный набор изменений. Это позволяет собирать изменение по мере поступления информации.

Если вы объединяете серию коммитов, не просто отправьте это. Перепишите сообщение о фиксации, как будто серия коммитов была одним гениальным ходом.

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

Помните, вы рассказываете часть истории с помощью сообщения о фиксации. Не делайте свою главу странной.

Проверка

Комментарии проверки кода могут быть добавлены к вашему запросу на включение. Обсудите, затем внесите предложенные изменения и отправьте дополнительные коммиты в свою ветку функций. Оставьте комментарий после отправки. Новые коммиты отображаются в запросе на включение автоматически, но рецензенты уведомляются только тогда, когда вы комментируете.

Запросы на включение должны быть аккуратно перебазированы поверх мастера без смешивания нескольких веток в PR.

Совет Git: если ваш PR больше не объединяется чисто, используйте rebase master в своей функциональной ветке, чтобы обновить свой запрос на включение, вместо merge master.

Перед тем как сделать запрос на включение, объедините свои коммиты в логические единицы работы с помощью git rebase -i и git push -f. Логическая единица работы — это согласованный набор исправлений, которые следует рассматривать вместе: например, обновление версии сторонней зависимости и использование её теперь доступной новой функции составляют две отдельные единицы работы. Реализация новой функции и вызов её в другом файле составляют одну логическую единицу работы. Подавляющее большинство представлений должно иметь один коммит, поэтому, если сомневаетесь: объедините до одного.

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

Включите ссылку на задачу вроде Closes #XXXX или Fixes #XXXX в коммитах. Закрыть вопрос.

Вопросы закрываются автоматически при слиянии.

Пожалуйста, ознакомьтесь с разделом Стиль кодирования для получения дополнительных рекомендаций.

Утверждение слияния

Для подтверждения принятия кода в процессе проверки разработчики Aurora используют комментарий LGTM (Looks Good To Me).

Подписывать работу

Подписание представляет собой простую строку в конце пояснения к патчу. Ваша подпись подтверждает, что вы написали патч или иным образом имеете право передать его как патч с открытым исходным кодом. Правила довольно просты: если вы можете подтвердить следующее (с сайта developercertificate.org):

Сертификат разработчика версии 1.1

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

Сертификат разработчика версии 1.1

Внося вклад в этот проект, я подтверждаю, что:

(a) Вклад полностью или частично создан мной, и у меня есть право представить его под открытой лицензией, указанной в файле; или

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

(c) Вклад был предоставлен мне непосредственно другим лицом, которое подтвердило пункты (а), (b) или (c), и я не вносил в него изменений.

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

Затем вы просто добавляете строку к каждому сообщению git commit:

Signed-off-by: Ri Xu https://xuri.me

Используйте своё настоящее имя (извините, никаких псевдонимов или анонимных вкладов).

Если вы установите свои git-конфигурации user.name и user.email, вы сможете подписывать коммиты автоматически с помощью команды git commit -s.

Как стать сопровождающим?

Во-первых, все сопровождающие имеют три качества:

  • Они разделяют ответственность за успех проекта.
  • Они сделали долгосрочные, регулярные инвестиции времени, чтобы улучшить проект.
  • Они тратят это время на выполнение любой необходимой работы, не обязательно самой интересной или весёлой.

Сопровождающих часто недооценивают, потому что их работу труднее оценить. Легко оценить действительно крутую и технически продвинутую функцию. Труднее оценить отсутствие ошибок, медленное, но устойчивое улучшение стабильности или надёжность процесса выпуска. Но именно эти вещи отличают хороший проект от отличного.

Не забывайте: быть сопровождающим — это инвестиция времени. Убедитесь, что у вас будет время, чтобы быть доступным. Вам не нужно быть сопровождающим, чтобы внести свой вклад в проект!

Если вы хотите стать сопровождающим, свяжитесь с xuri.me и расскажите о себе.

Рекомендации сообщества

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

  • Будьте вежливы: будьте вежливы, уважительны и вежливы по отношению к другим членам сообщества: региональное, расовое, гендерное или другое насилие недопустимо. Нам нравятся хорошие люди гораздо больше, чем плохие!

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

  • Соблюдайте закон: в основном, не втягивайте нас в неприятности. Делитесь только контентом, который вам принадлежит, не делитесь личной или конфиденциальной информацией и не... Нарушения правил — метод трёх предупреждений

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

  1. Первое нарушение: мы дадим вам дружеское, но публичное напоминание о том, что поведение не соответствует нашим правилам.
  2. Второе нарушение: мы отправим вам личное сообщение с предупреждением о том, что любые дополнительные нарушения приведут к исключению из сообщества.
  3. Третье нарушение: в зависимости от нарушения, нам может потребоваться удалить или заблокировать вашу учётную запись.

Примечания:

  • Очевидные спамеры блокируются при первом нарушении. Если мы этого не сделаем, у нас будет спам повсюду.
  • Нарушения прощаются после 6 месяцев хорошего поведения, и мы не будем держать обиду.
  • Люди, совершившие незначительные нарушения, получат образование, а не будут наказаны по методу трёх предупреждений.
  • Правила одинаково применимы ко всем членам сообщества, независимо от того, какой вклад вы внесли.
  • Чрезвычайные нарушения угрожающего, оскорбительного, разрушительного или незаконного характера будут рассмотрены немедленно и не подлежат методу трёх предупреждений или прощению.
  • Свяжитесь с xuri.me, чтобы сообщить о злоупотреблении или обжаловать нарушения. В случае апелляций мы знаем, что ошибки случаются, и мы будем работать с вами, чтобы прийти к справедливому решению, если произошло недоразумение.

Стиль кодирования

Если явно не указано иное, мы следуем всем правилам кодирования сообщества Go. Хотя некоторые из этих стандартов могут показаться произвольными, они каким-то образом приводят к надёжной и согласованной кодовой базе.

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

Правила:

  1. Весь код должен быть отформатирован с помощью gofmt -s.
  2. Весь код должен пройти стандартные уровни golint.
  3. Весь код должен следовать правилам, описанным в Effective Go и Go Code Review Comments.
  4. Комментируйте код. Расскажите нам, почему, историю и контекст.
  5. Документируйте все объявления и методы, даже частные. Объявляйте ожидания, предостережения и всё остальное, что может быть важным. Если тип экспортируется, наличие комментариев уже там гарантирует, что он готов.
  6. Длина имени переменной должна быть пропорциональна её контексту и не более. noCommaALongVariableNameLikeThisIsNotMoreClearWhenASimpleCommentWouldDo. На практике короткие методы будут иметь короткие имена переменных, а глобальные переменные будут иметь более длинные имена.
  7. Никаких подчёркиваний в названиях пакетов. Если вам нужно составное имя, сделайте шаг назад и ещё раз подумайте, зачем вам нужно составное имя. Если вы всё ещё думаете, что вам нужно составное имя, избавьтесь от подчёркивания.
  8. Никаких утилит или вспомогательных пакетов. Если функция недостаточно общая, чтобы гарантировать собственный пакет, она недостаточно универсальна, чтобы быть частью пакета утилит. Просто оставьте её неэкспортированной и хорошо задокументированной.
  9. Все тесты должны выполняться с go test и снаружи.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/xurime-aurora.git
git@api.gitlife.ru:oschina-mirror/xurime-aurora.git
oschina-mirror
xurime-aurora
xurime-aurora
master