Проекты
Проект — это совместная работа по созданию определённого результата: это может быть код, документация или другие материалы. У проекта должен быть спонсор: одна или несколько групп. У проекта могут быть веб-страницы, один или несколько файловых репозиториев и одна или несколько рассылок.
Bylaws (устав) описывают несколько способов расширения сообщества через проекты. Для следующих распространённых случаев здесь приведены пошаговые инструкции:
- Как стать Author
- Назначение участника на роль Author
- Выдвижение участника или Author на роль Committer
- Выдвижение Committer на роль Reviewer
- Предложение нового проекта
Эта страница — краткое изложение и толкование Bylaws. Если эта страница противоречит Bylaws, преимущество имеют Bylaws.
Как стать Author
Любой участник (Contributor) может запросить роль Author, обратившись к соответствующему Project Lead. Требуются ссылки как минимум на два спонсированных вклада в проект. Author получает следующие права сверх прав участника:
имя пользователя OpenJDK, которое даёт право записи на сервер рецензирования кода и в другие инфраструктурные сервисы, и
возможность создавать в Git запросы на слияние (pull requests, PR), связанные с именем пользователя OpenJDK этого Author.
Author, не являющийся Committer, по-прежнему нуждается в помощи Committer, чтобы отправить (push) PR, но роль Author всё же на ступень выше, чем статус незарегистрированного участника.
Project Lead рекомендуется давать роль Author только тем участникам, которые, по всей видимости, продолжат вносить вклад ещё какое-то время, чтобы со временем их выдвинули на роль Committer.
Ниже приведено минимальное сообщение.
To: <OpenJDK Project Lead>
Subject: <project name> Author request for: <full name>
<contributor's e-mail>
<contributor's references>В сообщении делаются следующие подстановки:
- <OpenJDK Project Lead>
- Project Lead, указанный в Census.
- <project name>
- Краткое название проекта, как оно указано в левой боковой панели главной страницы OpenJDK.
- <full name>
- Полное имя участника (не адрес электронной почты, не имя пользователя OpenJDK и т. п.).
- <contributor's e-mail>
- Адрес электронной почты участника.
- <contributor's references>
- Краткое описание квалификации, включая ссылки на прошлые вклады в проект. Ссылки должны быть в виде URL конкретных PR в Git, автором которых является участник. Следует привести не менее двух ссылок.
Новый Author получит по электронной почте приглашение зарегистрироваться в OpenJDK, и тогда ему будет присвоено имя пользователя OpenJDK. Когда приглашение будет принято, Census будет обновлён. Получив имя пользователя OpenJDK, вы должны связать своё имя пользователя GitHub с именем пользователя OpenJDK.
В обычных обстоятельствах между обращением к Project Lead и получением приглашения проходит не больше недели.
Назначение участника на роль Author
Project Lead может назначить на роль Author любого участника, внёсшего в проект не менее двух спонсированных вкладов, уведомив об этом регистратора. Регистратор свяжется с новым Author, чтобы получить дополнительную информацию, и обновит Census.
Ниже приведено минимальное сообщение.
To: registrar at openjdk dot org
Subject: New <project name> Author: <full name>
<author's e-mail>
<contributor's qualifications>В сообщении делаются следующие подстановки:
- <project name>
- Краткое название проекта, как оно указано в левой боковой панели главной страницы OpenJDK.
- <full name>
- Полное имя выдвинутого участника (не адрес электронной почты, не имя пользователя OpenJDK, не имя пользователя GitHub и т. п.).
- <author's e-mail>
- Адрес электронной почты нового Author.
- <contributor's qualifications>
- Краткое описание квалификации, включая ссылки.
В обычных обстоятельствах между обращением к регистратору и получением приглашения проходит не больше недели.
Выдвижение участника или Author на роль Committer
Любой Committer может выдвинуть участника на роль нового Committer. Роль Author может помочь заслужить доверие, необходимое для того, чтобы стать Committer, но она не обязательна.
Ориентировочно участнику следует внести в проект не менее восьми значимых вкладов, прежде чем его выдвинут.
- Шаг 1: выдвижение
Отправьте призыв к голосованию (call-for-votes) в рассылку OpenJDK этого проекта. Метод голосования для одобрения — Lazy Consensus, голосовать могут только действующие Committer.
To: <OpenJDK project mailing list> Subject: CFV: New <project name> Committer: <full name> I hereby nominate <full name> to <project name> Committer. <contributor description> Votes are due by <deadline>. Only current <project name> Committers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. For Lazy Consensus voting instructions, see [2]. <nominator> [1] https://openjdk.org/census [2] https://openjdk.org/projects/#committer-voteВ сообщении делаются следующие подстановки:
- <рассылка проекта OpenJDK>
- Основная рассылка OpenJDK проекта.
- <full name>
- Полное имя выдвинутого участника (не адрес электронной почты, не имя пользователя OpenJDK, не имя пользователя GitHub и т. п.).
- <project name>
- Краткое название проекта, как оно указано в левой боковой панели главной страницы OpenJDK.
- <contributor description>
Опишите прошлые вклады участника в проект и любую имеющую отношение к делу квалификацию, включая ссылки на прошлые вклады. Ссылки должны быть в виде списка URL конкретных PR или HTML-запроса, который выдаёт такой список. Например, вот запрос для имени пользователя GitHub
GHusernameк репозиториям основной линии разработки JDK:https://github.com/openjdk/jdk/commits?author=GHusername- <deadline>
- Укажите дату и время с часовым поясом — через две недели после отправки призыва к голосованию.
- <nominator>
- Имя выдвигающего Committer.
- Шаг 2: голосование
Committer голосуют, отвечая на предложение; первая строка текста сообщения должна иметь следующий вид:
Vote: <vote>где
<vote>— одно из значенийyes,vetoилиabstain. Обоснование голоса можно привести на следующих строках; для голосаvetoоно обязательно, иначе голос недействителен. Голосовать можно несколько раз, но учитывается только последний голос. Голосовать нужно открыто, в той рассылке, куда изначально был отправлен призыв к голосованию; голоса, отправленные личными ответами, не учитываются.Ниже приведён минимальный положительный ответ.
To: <OpenJDK project mailing list> Subject: Re: CFV: New <project name> Committer: <full name> Vote: yes- Шаг 3: объявление результата
Когда проголосуют все члены проекта (Project Members) или истечёт срок, результат должен быть объявлен в рассылке, где проходили призыв к голосованию и голосование. Если кандидатура одобрена, объявление также должно быть отправлено регистратору. Регистратор при необходимости свяжется с новым Committer, чтобы получить дополнительную информацию, и обновит Census.
Типичное объявление об одобрении:
To: <OpenJDK mailing list> CC: registrar at openjdk dot org Subject: Result: New <project name> Committer: <full name> Voting for <full name> [1] is now closed. Yes: <number of "yes" votes> Veto: 0 Abstain: <number of "abstain" votes> According to the Bylaws definition of Lazy Consensus, this is sufficient to approve the nomination. <nominator> [1] https://mail.openjdk.org/<reference to original CFV>В сообщении делаются следующие подстановки:
- <reference to original CFV>
- Найдите исходный призыв к голосованию в архивах рассылок OpenJDK и дайте на него ссылку.
Выдвижение Committer на роль Reviewer
Эта роль имеет значение только для проектов, в которых перед отправкой (push) требуется формальное рецензирование изменений. В Census отмечено, у каких проектов есть это требование.
Любой Reviewer проекта может выдвинуть любого из Committer проекта на роль Reviewer того же проекта. Project Lead автоматически считается Reviewer и остаётся Reviewer после того, как перестаёт быть Project Lead.
Ориентировочно Committer следует написать и отправить в проект не менее 32 значимых PR, прежде чем его выдвинут на роль Reviewer.
- Шаг 1: выдвижение
Отправьте призыв к голосованию (call-for-votes) в рассылку OpenJDK этого проекта. Метод голосования для одобрения — Three-Vote Consensus, голосовать могут только действующие Reviewer.
To: <OpenJDK project mailing list> Subject: CFV: New <project name> Reviewer: <full name> I hereby nominate <full name> to <project name> Reviewer. <committer description> Votes are due by <deadline>. Only current <project name> Reviewers [1] are eligible to vote on this nomination. Votes must be cast in the open by replying to this mailing list. For Three-Vote Consensus voting instructions, see [2]. <nominator> [1] https://openjdk.org/census [2] https://openjdk.org/projects/#reviewer-voteВ сообщении делаются следующие подстановки:
- <рассылка проекта OpenJDK>
- Основная рассылка OpenJDK проекта.
- <full name>
- Полное имя выдвинутого участника (не адрес электронной почты, не имя пользователя OpenJDK, не имя пользователя GitHub и т. п.).
- <project name>
- Краткое название проекта, как оно указано в левой боковой панели главной страницы OpenJDK.
- <committer description>
- Опишите прошлые вклады Committer в проект и любую имеющую отношение к делу квалификацию, включая ссылки.
- <deadline>
- Укажите дату и время с часовым поясом — через две недели после отправки призыва к голосованию.
- <nominator>
- Имя выдвигающего Reviewer.
- Шаг 2: голосование
Reviewer голосуют, отвечая на предложение; первая строка текста сообщения должна иметь следующий вид:
Vote: <vote>где
<vote>— одно из значенийyes,vetoилиabstain. Обоснование голоса можно привести на следующих строках; для голосаvetoоно обязательно, иначе голос недействителен. Голосовать можно несколько раз, но учитывается только последний голос. Голосовать нужно открыто, в той рассылке, куда изначально был отправлен призыв к голосованию; голоса, отправленные личными ответами, не учитываются.Ниже приведён минимальный положительный ответ.
To: <OpenJDK project mailing list> Subject: Re: CFV: New <project name> Reviewer: <full name> Vote: yes- Шаг 3: объявление результата
Когда проголосуют все Reviewer или истечёт срок, результат должен быть объявлен в рассылке, где проходили призыв к голосованию и голосование. Если кандидатура одобрена, объявление также должно быть отправлено регистратору. Регистратор при необходимости свяжется с новым Reviewer, чтобы получить дополнительную информацию, и обновит Census.
Типичное объявление об одобрении:
To: <OpenJDK mailing list> CC: registrar at openjdk dot org Subject: Result: New <project name> Reviewer: <full name> Voting for <full name> [1] is now closed. Yes: <number of "yes" votes> Veto: 0 Abstain: <number of "abstain" votes> According to the Bylaws definition of Three-Vote Consensus, this is sufficient to approve the nomination. <nominator> [1] https://mail.openjdk.org/<reference to original CFV>В сообщении делаются следующие подстановки:
- <reference to original CFV>
- Найдите исходный призыв к голосованию в архивах рассылок OpenJDK и дайте на него ссылку.
Предложение нового проекта
Любой участник может предложить создать новый проект.
- Шаг 0: обсуждение [необязательно]
Рекомендуется публично обсудить любое предложение о новом проекте, прежде чем выносить его на голосование. Отправьте в список общих обсуждений письмо с описанием мотивации, целей и первоначального руководителя (Lead) предлагаемого проекта. Укажите предлагаемых первоначальных Author, Committer и Reviewer, если они известны. (Reviewer нужны, только если в проекте будет требоваться формальное рецензирование изменений.) Опишите существующий код, если он есть, который станет отправной точкой проекта. Предлагающий участник должен активно участвовать во всём последующем обсуждении и при необходимости дорабатывать предложение с учётом комментариев.
Заголовок письма с предложением проекта выглядит так:
To: discuss at openjdk dot org Subject: Call for Discussion: New Project: <project name>Где
<project name>— предлагаемое краткое название проекта в том виде, в каком оно будет отображаться в левой боковой панели главной страницы OpenJDK.Как минимум один Group Lead должен объявить, что его группа выступает спонсором предлагаемого проекта.
- Шаг 1: предложение
Отправьте в рассылку объявлений объединённое предложение о создании проекта и назначении его первого руководителя (Lead). Письмо должно содержать название проекта, описание, имя первого руководителя и его квалификацию, группы-спонсоры, а также предлагаемых первых Author, Committer и Reviewer, если они есть. Голосование проводится методом Lazy Consensus, голосовать могут только действующие OpenJDK Members.
Письмо с призывом к голосованию оформляется так:
To: announce at openjdk dot org Subject: CFV: New Project: <project name> I hereby propose the creation of the <project name> Project with <lead name> as the Lead and <group list> as the sponsoring Group(s). <project description> <lead description> <list of suggested initial authors, committers, and reviewers> Votes are due by <deadline>. Only current OpenJDK Members [1] are eligible to vote on this motion. Votes must be cast in the open on the discuss list. Replying to this message is sufficient if your mail program honors the Reply-To header. For Lazy Consensus voting instructions, see [2]. <nominator> [1] https://openjdk.org/census#members [2] https://openjdk.org/projects/#new-project-voteВ сообщении делаются следующие подстановки:
- <project name>
- Название предлагаемого проекта в том виде, в каком оно будет показано на левой боковой панели главной страницы OpenJDK.
- <project description>
- Опишите результат работы проекта.
- <lead name>
- Полное имя предлагаемого Project Lead (не адрес электронной почты, не имя пользователя OpenJDK, не имя пользователя GitHub и т. п.)
- <lead description>
- Опишите квалификацию предлагаемого руководителя, имеющую отношение к проекту.
- <group list>
- Список через запятую, содержащий хотя бы одну группу, руководитель которой согласился спонсировать проект.
- <список предлагаемых первых Author, Committer и Reviewer>
- Укажите полные имена (не адреса электронной почты, не имена в OpenJDK и т. п.) людей, которых будущий Project Lead может при необходимости назначить первыми Author, Committer и Reviewer.
- <deadline>
- Укажите дату и время с часовым поясом — через две недели после отправки призыва к голосованию.
- <nominator>
- Имя участника, вносящего предложение.
Устав (Bylaws) предусматривает отдельные голосования: о создании нового проекта голосуют OpenJDK Members, а о назначении его первого руководителя — Group Lead групп-спонсоров. Поэтому любой такой Group Lead может потребовать, чтобы по двум предложениям голосовали независимо, хотя ожидается, что обычно этого не происходит.
- Шаг 2: голосование
Имеющие право голоса голосуют, отправляя письмо в общую рассылку для обсуждений. Ответ на предложение делает это автоматически у тех, чьи почтовые программы учитывают заголовок
Reply-To. Первая строка тела письма должна иметь следующий вид:Vote: <vote>где
<vote>— одно из значенийyes,vetoилиabstain. Обоснование голоса можно привести в следующих строках, а для голосаvetoоно обязательно, иначе голос недействителен. Голосовать можно несколько раз, но учитывается только последний голос. Голосовать нужно открыто, в общей рассылке для обсуждений; голоса, отправленные личным ответом, не учитываются.Минимальный ответ «за» выглядит так:
To: discuss at openjdk dot org Subject: Re: CFV: New Project: <project name> Vote: yes- Шаг 3: объявление результатов
Когда проголосуют все OpenJDK Members или истечёт срок, участник, внёсший предложение, должен отправить результаты в рассылку объявлений. Если объявляется об одобрении, результаты также нужно отправить регистратору.
Типичное объявление об одобрении:
To: announce at openjdk dot org CC: registrar at openjdk dot org Subject: Result: New Project: <project name> Voting on the <project name> Project with initial Lead <lead name> [1] is now closed. Yes: <number of "yes" votes> Veto: 0 Abstain: <number of "abstain" votes> According to the Bylaws definition of Lazy Consensus, this is sufficient to approve the new Project and its initial Lead. <nominator> [1] https://mail.openjdk.org/<reference to original CFV>В сообщении делаются следующие подстановки:
- <reference to original CFV>
- Найдите исходный призыв к голосованию в архивах рассылок OpenJDK и дайте на него ссылку.
- Шаг 4: назначение
Регистратор отправит новому Project Lead по электронной почте анкету, чтобы собрать сведения, необходимые для запуска проекта в OpenJDK. Помимо сведений для веб-страниц, файловых репозиториев и рассылки (или рассылок), руководителя попросят при необходимости выбрать первых Author, Committer и Reviewer. Регистратор разошлёт приглашения к регистрации, если это требуется, и обновит Census.