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

OSCHINA-MIRROR/AliyunContainerService-swarmkit

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

Вклад в Docker

Хотите поработать над Docker? Отлично! У нас есть руководство для участников, которое объясняет, как настроить среду разработки Docker и процесс участия (https://docs.docker.com/opensource/project/who-written-for/).

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

Темы

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

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

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

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

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

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

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

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

  • Вывод команды docker version.
  • Вывод команды docker info.

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

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

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

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

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

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

Общение с другими пользователями и участниками Docker

Форумы Открытый форум для пользователей, где можно обсудить вопросы и изучить текущие шаблоны проектирования и лучшие практики, связанные с Docker и связанными проектами в экосистеме Docker. Чтобы принять участие, просто войдите в систему со своей учётной записью Docker Hub на https://forums.docker.com.
Интернет-ретранслятор (IRC)

IRC — прямая линия к нашим самым осведомлённым пользователям Docker; у нас есть группы #docker и #docker-dev на irc.freenode.net. IRC — это богатый протокол чата, но он может... **Конвенции**

Форкните репозиторий и внесите изменения в своей ветке:

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

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

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

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

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

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

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

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

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

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

После каждого коммита убедитесь, что тестовый набор проходит успешно (https://docs.docker.com/opensource/project/test-and-docs/). Включайте изменения документации в тот же запрос на вытягивание, чтобы при отмене изменений были удалены все следы функции или исправления.

Включайте ссылки на проблемы, такие как «Закрывает #XXXX» или «Исправлено #XXXX», в коммиты, которые закрывают проблему. Включение ссылок автоматически закрывает проблему при слиянии.

Пожалуйста, не добавляйте себя в файл AUTHORS, так как он регулярно восстанавливается из истории Git.

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

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

Сопровождающие Docker используют LGTM (Looks Good To Me) в комментариях к проверке кода, чтобы указать на принятие.

Изменение требует LGTMs от абсолютного большинства сопровождающих каждого затронутого компонента. Например, если изменение затрагивает docs/ и registry/, оно требует абсолютного большинства от сопровождающих docs/ И отдельно — абсолютного большинства сопровождающих registry/.

Подробнее см. страницу MAINTAINERS.

Подпишите свою работу

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

Сертификат разработчика происхождения версии 1.1

Авторское право (C) 2004, 2006 The Linux Foundation и его участники. 660 York Street, Suite 102, Сан-Франциско, Калифорния 94110 США

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

Сертификат разработчика о происхождении 1.1

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

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

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

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

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

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

Signed-off-by: Joe Smith <joe.smith@email.com>

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

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

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

Процедуры добавления новых сопровождающих описаны в глобальном файле MAINTAINERS в репозитории https://github.com/docker/opensource/.

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

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

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

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

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

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

  • Не отправляйте электронные письма администраторам: нет необходимости отправлять электронные письма администраторам с просьбой изучить проблему или просмотреть запрос на вытягивание. Вместо отправки электронного письма следует использовать упоминания GitHub, чтобы уведомить администраторов о необходимости просмотра запроса на вытягивание, предложения или проблемы.

Нарушения правил — метод трёх предупреждений

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

  1. Первое нарушение: мы дадим вам дружеское, но публичное напоминание о том, что поведение не соответствует нашим правилам.

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

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

Примечания:

  • Очевидные спамеры блокируются при первом нарушении. Если мы этого не сделаем, у нас будет спам повсюду.

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

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

  • Правила одинаково применимы ко всем членам сообщества, независимо от того, какой вклад они внесли.

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

  • Чтобы сообщить о злоупотреблении или обжаловать нарушения, обратитесь по адресу abuse@docker.com. В случае апелляций мы знаем, что ошибки случаются, и мы будем работать с вами, чтобы найти справедливое решение, если произошло недоразумение.

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

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

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

Правила:

  1. Весь код должен быть отформатирован с помощью gofmt -s.

  2. Весь код должен пройти стандартные уровни golint.

  3. Весь код должен следовать рекомендациям, изложенным в Effective Go и Go Code Review Comments.

  4. Комментируйте код. Расскажите нам, почему, историю и контекст.

  5. Документируйте все объявления и методы, даже частные. Объявляйте ожидания, предостережения и всё остальное, что может быть важным. Если тип экспортируется, наличие комментариев уже там гарантирует, что он готов.

  6. Длина имени переменной должна быть пропорциональна её контексту и не более того. noCommaALongVariableNameLikeThisIsNotMoreClearWhenASimpleCommentWouldDo. На практике короткие методы будут иметь короткие имена переменных, а глобальные переменные будут иметь более длинные имена.

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

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

  9. Все тесты должны запускаться с помощью команды go test, и внешнее инструментальное обеспечение не требуется. Нет, нам не нужна ещё одна среда модульного тестирования. Пакеты утверждений приемлемы, если они обеспечивают реальную дополнительную ценность.

  10. Хотя мы называем это «правилами», на самом деле это просто рекомендации. Поскольку вы прочитали все правила, теперь вы это знаете.

Если вам трудно проникнуться идиоматикой Go, рекомендуем прочитать Effective Go. Также отличным ресурсом является Go Blog. Утолить жажду кул-эйдом гораздо проще, чем испытывать жажду.

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

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

1
https://api.gitlife.ru/oschina-mirror/AliyunContainerService-swarmkit.git
git@api.gitlife.ru:oschina-mirror/AliyunContainerService-swarmkit.git
oschina-mirror
AliyunContainerService-swarmkit
AliyunContainerService-swarmkit
master