diff options
author | Vladislav Rudskoy <rudskoy.vladislav@gmail.com> | 2022-02-10 16:45:39 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:39 +0300 |
commit | 40818269bfff82d9f57f47db333acbdda5c44fb0 (patch) | |
tree | 80b4c7c6300e95384218422adf3a140229b5372c /contrib/README.md | |
parent | bf9e69a933f89af083d895185f01ed65e4d90766 (diff) | |
download | ydb-40818269bfff82d9f57f47db333acbdda5c44fb0.tar.gz |
Restoring authorship annotation for Vladislav Rudskoy <rudskoy.vladislav@gmail.com>. Commit 1 of 2.
Diffstat (limited to 'contrib/README.md')
-rw-r--r-- | contrib/README.md | 136 |
1 files changed, 68 insertions, 68 deletions
diff --git a/contrib/README.md b/contrib/README.md index 44863a0baf..292415da98 100644 --- a/contrib/README.md +++ b/contrib/README.md @@ -1,25 +1,25 @@ Все спорные вопросы, пожелания по процессу, фичереквесты можно присылать на [arcadia-wg@](mailto:arcadia-wg@yandex-team.ru) ## Что такое contrib? - -Это набор общих компонент в Аркадии из внешнего интернета, от которых зависят проекты внутри Аркадии. - -Компоненты в contrib подразделяются на ЯП-специфичные, общие тулы (англ. tools) и библиотеки: - -* [contrib/java](https://a.yandex-team.ru/arc/trunk/arcadia/contrib/java) -* [contrib/python](https://a.yandex-team.ru/arc/trunk/arcadia/contrib/python) -* [vendor (aka go)](https://a.yandex-team.ru/arc/trunk/arcadia/vendor) -* [contrib/libs (aka C++)](https://a.yandex-team.ru/arc/trunk/arcadia/contrib/libs) -* [contrib/tools (общие тулы (jdk, python, cython)](https://a.yandex-team.ru/arc/trunk/arcadia/contrib/tools) - -Каждый компонент внутри contrib собирается ya make и добавляется при соблюдении нескольких условий, в том числе подтверждении от профильных групп людей. - + +Это набор общих компонент в Аркадии из внешнего интернета, от которых зависят проекты внутри Аркадии. + +Компоненты в contrib подразделяются на ЯП-специфичные, общие тулы (англ. tools) и библиотеки: + +* [contrib/java](https://a.yandex-team.ru/arc/trunk/arcadia/contrib/java) +* [contrib/python](https://a.yandex-team.ru/arc/trunk/arcadia/contrib/python) +* [vendor (aka go)](https://a.yandex-team.ru/arc/trunk/arcadia/vendor) +* [contrib/libs (aka C++)](https://a.yandex-team.ru/arc/trunk/arcadia/contrib/libs) +* [contrib/tools (общие тулы (jdk, python, cython)](https://a.yandex-team.ru/arc/trunk/arcadia/contrib/tools) + +Каждый компонент внутри contrib собирается ya make и добавляется при соблюдении нескольких условий, в том числе подтверждении от профильных групп людей. + ## Добавление библиотеки в contrib - + Перед добавлением библиотеки нужно убедиться, что библиотека действительно полезна. См. ниже про то, "Как комитеты согласуют новые библиотеки в contrib". Это те факторы, которые стоит учесть до начала процесса согласования. Возможно, в процессе анализа вы найдете более подходящие альтернативы в Аркадии или внешнем мире. Добавление новой библиотеки начинается с **[создания тикета в очереди CONTRIB](https://st.yandex-team.ru/createTicket?queue=CONTRIB)**. - + ## Мне нужна библиотека, написанная в Яндексе, которой нет в Аркадии. Можно ли положить её в contrib? Нет, `contrib/` — место для внешнего кода, которым мы (компания Яндекс) не владеем. @@ -36,76 +36,76 @@ Список таких библиотек приведён в тикете: [CONTRIB-396](https://st.yandex-team.ru/CONTRIB-396) ## Обновление библиотеки в Contrib - -Если в обновлении библиотеки нужна помощь Devtools и/или это мажорное обновление библиотеки, то это лучше проводить через тикет в очереди CONTRIB. - -Минорные обновления можно сделать самостоятельно до зеленой проверки, для этого по умолчанию никакие подтверждения и тикеты в очереди CONTRIB не требуются. -Разделение на минорные и мажорное обновление следует понимать "по духу", а не "по номеру версии". Например, обновление openssl с 1.0 на 1.1 – это задача на пол года, -несмотря на то что изменилась минорная версия. - -А если вы обновляете библиотеку, которую используют всего пара проектов, то можно со всеми потребителями договориться сразу в PR. -Тикет не обязателен. - + +Если в обновлении библиотеки нужна помощь Devtools и/или это мажорное обновление библиотеки, то это лучше проводить через тикет в очереди CONTRIB. + +Минорные обновления можно сделать самостоятельно до зеленой проверки, для этого по умолчанию никакие подтверждения и тикеты в очереди CONTRIB не требуются. +Разделение на минорные и мажорное обновление следует понимать "по духу", а не "по номеру версии". Например, обновление openssl с 1.0 на 1.1 – это задача на пол года, +несмотря на то что изменилась минорная версия. + +А если вы обновляете библиотеку, которую используют всего пара проектов, то можно со всеми потребителями договориться сразу в PR. +Тикет не обязателен. + ## Команда, правила и процессы Contrib - -Текущий процесс относится к каждому ЯП в Аркадии: C++, Java, Python, Go -Весь текущий и грядущий workflow работы команд, отвечающих за общие библиотеки, реализован на базе Стартрека и очереди **[Contrib](https://st.yandex-team.ru/contrib)**. - -Happy Path для пользователя, которому понадобилась новая библиотека в Аркадии, выглядит следующим образом + +Текущий процесс относится к каждому ЯП в Аркадии: C++, Java, Python, Go +Весь текущий и грядущий workflow работы команд, отвечающих за общие библиотеки, реализован на базе Стартрека и очереди **[Contrib](https://st.yandex-team.ru/contrib)**. + +Happy Path для пользователя, которому понадобилась новая библиотека в Аркадии, выглядит следующим образом ![](https://jing.yandex-team.ru/files/alexeykruglov/contrib1.png) - + Основная задача _**Профильного комитета**_ – помочь пользователю, сообщив о наличии уже существующих решений на релевантном или другом ЯП в Аркадии (в util/library/contrib). В профильном комитете необходимо 2 человека, чтобы сделать окончательное решение. [Arcadia WG](https://abc.yandex-team.ru/services/arcadia-wg/) привлекается профильными комитетами для обсуждения сложных случаев (есть сомнения, проблемы с лицензиями). Ограничения использования библиотек контролируется [макросами управления лицензиями](https://docs.yandex-team.ru/ya-make/general/rules#licenzii). -Итого, процесс состоит из этапов: - +Итого, процесс состоит из этапов: + * Подтверждение от языкового комитета (1) * Подтверждение от языкового комитета (2) * Подтверждение от Arcadia WG, при необходимости. Все библиотеки с [запрещенными](https://wiki.yandex-team.ru/devrules/overall/aboutlicences/#zapreshhennyelicenzii) лицензиями требуют ок от Arcadia WG. -* Импорт библиотеки - * Самостоятельно - * Или с помощью Devtools - -Процесс импорта кода библиотеки (самостоятельно или с помощью Devtools) описан тут: [Как импортировать код в contrib](https://wiki.yandex-team.ru/devrules/overall/Contrib/how-to-import-contrib/) - -Итоговый процесс импорта библиотеки выглядит следующим образом: +* Импорт библиотеки + * Самостоятельно + * Или с помощью Devtools + +Процесс импорта кода библиотеки (самостоятельно или с помощью Devtools) описан тут: [Как импортировать код в contrib](https://wiki.yandex-team.ru/devrules/overall/Contrib/how-to-import-contrib/) + +Итоговый процесс импорта библиотеки выглядит следующим образом: ![alt](https://jing.yandex-team.ru/files/alexeykruglov/contrib2.png) - + ## Java (note) - -1. Для java "обновление библиотеки" – это заливка новой версии, тикет в этом случае необязателен. -2. На время переезда, библиотеку, разрабатываемую в Яндексе можно положить в контриб, если нет возможность перевезти её в Аркадию. На это нужен тикет. После заезда библиотеки в Аркадию, её нужно будет удалить из contrib и перейти на зависимость по исходникам. - + +1. Для java "обновление библиотеки" – это заливка новой версии, тикет в этом случае необязателен. +2. На время переезда, библиотеку, разрабатываемую в Яндексе можно положить в контриб, если нет возможность перевезти её в Аркадию. На это нужен тикет. После заезда библиотеки в Аркадию, её нужно будет удалить из contrib и перейти на зависимость по исходникам. + ## SLA (committees) - -Мы переложили некоторую часть вышеописанного процесса на рельсы Трекера с его тригерами и SLA. - -**5 дней** на каждый этап с участием комитета (за исключением этапа сборки библиотеки силами Devtools). С течением времени мы ожидаем оптимизации этой границы в меньшую сторону. - -Для примера, – на ответ от профильного комитета (i.e. Python) даётся 5 рабочих дней. - -Уведомления о нарушении SLA приходят заранее (пока только кому:rudskoy и кому:saint), и мы постараемся своевременно на это реагировать. - + +Мы переложили некоторую часть вышеописанного процесса на рельсы Трекера с его тригерами и SLA. + +**5 дней** на каждый этап с участием комитета (за исключением этапа сборки библиотеки силами Devtools). С течением времени мы ожидаем оптимизации этой границы в меньшую сторону. + +Для примера, – на ответ от профильного комитета (i.e. Python) даётся 5 рабочих дней. + +Уведомления о нарушении SLA приходят заранее (пока только кому:rudskoy и кому:saint), и мы постараемся своевременно на это реагировать. + ## Для переезжающих в Аркадию проектов - -Базовые рекомендации по процессу: -1. Не забывайте указывать родительский тикет для переезда из очереди ARCADIA и/или MIGRATION. -2. По умолчанию создавайте отдельные задачи на отдельные зависимости. - -Мы допускаем, что зависимостей может быть по-настоящему много, поэтому вы можете перечислить зависимости большими пачками или одним большим списком при создании тикета через форму. - -Но исполнитель задачи, при необходимости обсудить какую-либо библиотеку, попросит автора унести это обсуждение в отдельную задачу. - + +Базовые рекомендации по процессу: +1. Не забывайте указывать родительский тикет для переезда из очереди ARCADIA и/или MIGRATION. +2. По умолчанию создавайте отдельные задачи на отдельные зависимости. + +Мы допускаем, что зависимостей может быть по-настоящему много, поэтому вы можете перечислить зависимости большими пачками или одним большим списком при создании тикета через форму. + +Но исполнитель задачи, при необходимости обсудить какую-либо библиотеку, попросит автора унести это обсуждение в отдельную задачу. + ## Проектные contrib -В Аркадии не допускается существование проектных contrib. Это усложняет поиск по коду, его переиспользование и аудит лицензий. - -В процессе миграции допускается временно смигрировать библиотеку, у которой есть явные аналоги в Аркадии. Это возможно лишь при наличии коммитментов от команды со сроком на переезд на общеаркадийные компоненты. - -В некотором приближении мы будем запрещать для проектов внутри Аркадии зависеть от таких библиотек. +В Аркадии не допускается существование проектных contrib. Это усложняет поиск по коду, его переиспользование и аудит лицензий. + +В процессе миграции допускается временно смигрировать библиотеку, у которой есть явные аналоги в Аркадии. Это возможно лишь при наличии коммитментов от команды со сроком на переезд на общеаркадийные компоненты. + +В некотором приближении мы будем запрещать для проектов внутри Аркадии зависеть от таких библиотек. ## Как комитеты согласуют новые библиотеки в contrib |