diff options
author | thegeorg <thegeorg@yandex-team.ru> | 2022-02-10 16:45:08 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:45:08 +0300 |
commit | 4e839db24a3bbc9f1c610c43d6faaaa99824dcca (patch) | |
tree | 506dac10f5df94fab310584ee51b24fc5a081c22 /contrib/README.md | |
parent | 2d37894b1b037cf24231090eda8589bbb44fb6fc (diff) | |
download | ydb-4e839db24a3bbc9f1c610c43d6faaaa99824dcca.tar.gz |
Restoring authorship annotation for <thegeorg@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/README.md')
-rw-r--r-- | contrib/README.md | 64 |
1 files changed, 32 insertions, 32 deletions
diff --git a/contrib/README.md b/contrib/README.md index 44863a0baf..e1dfacafc6 100644 --- a/contrib/README.md +++ b/contrib/README.md @@ -1,6 +1,6 @@ Все спорные вопросы, пожелания по процессу, фичереквесты можно присылать на [arcadia-wg@](mailto:arcadia-wg@yandex-team.ru) -## Что такое contrib? +## Что такое contrib? Это набор общих компонент в Аркадии из внешнего интернета, от которых зависят проекты внутри Аркадии. @@ -14,13 +14,13 @@ Каждый компонент внутри contrib собирается ya make и добавляется при соблюдении нескольких условий, в том числе подтверждении от профильных групп людей. -## Добавление библиотеки в contrib +## Добавление библиотеки в contrib Перед добавлением библиотеки нужно убедиться, что библиотека действительно полезна. См. ниже про то, "Как комитеты согласуют новые библиотеки в contrib". Это те факторы, которые стоит учесть до начала процесса согласования. Возможно, в процессе анализа вы найдете более подходящие альтернативы в Аркадии или внешнем мире. Добавление новой библиотеки начинается с **[создания тикета в очереди CONTRIB](https://st.yandex-team.ru/createTicket?queue=CONTRIB)**. -## Мне нужна библиотека, написанная в Яндексе, которой нет в Аркадии. Можно ли положить её в contrib? +## Мне нужна библиотека, написанная в Яндексе, которой нет в Аркадии. Можно ли положить её в contrib? Нет, `contrib/` — место для внешнего кода, которым мы (компания Яндекс) не владеем. @@ -35,7 +35,7 @@ Из этого правила есть де-факто исключения для библиотек, которые были помещены в `contrib/` до его введения. Впоследствии они должны быть исключены из contrib. Список таких библиотек приведён в тикете: [CONTRIB-396](https://st.yandex-team.ru/CONTRIB-396) -## Обновление библиотеки в Contrib +## Обновление библиотеки в Contrib Если в обновлении библиотеки нужна помощь Devtools и/или это мажорное обновление библиотеки, то это лучше проводить через тикет в очереди CONTRIB. @@ -46,7 +46,7 @@ А если вы обновляете библиотеку, которую используют всего пара проектов, то можно со всеми потребителями договориться сразу в PR. Тикет не обязателен. -## Команда, правила и процессы Contrib +## Команда, правила и процессы Contrib Текущий процесс относится к каждому ЯП в Аркадии: C++, Java, Python, Go Весь текущий и грядущий workflow работы команд, отвечающих за общие библиотеки, реализован на базе Стартрека и очереди **[Contrib](https://st.yandex-team.ru/contrib)**. @@ -74,12 +74,12 @@ Happy Path для пользователя, которому понадобил Итоговый процесс импорта библиотеки выглядит следующим образом: ![alt](https://jing.yandex-team.ru/files/alexeykruglov/contrib2.png) -## Java (note) +## Java (note) 1. Для java "обновление библиотеки" – это заливка новой версии, тикет в этом случае необязателен. 2. На время переезда, библиотеку, разрабатываемую в Яндексе можно положить в контриб, если нет возможность перевезти её в Аркадию. На это нужен тикет. После заезда библиотеки в Аркадию, её нужно будет удалить из contrib и перейти на зависимость по исходникам. -## SLA (committees) +## SLA (committees) Мы переложили некоторую часть вышеописанного процесса на рельсы Трекера с его тригерами и SLA. @@ -89,7 +89,7 @@ Happy Path для пользователя, которому понадобил Уведомления о нарушении SLA приходят заранее (пока только кому:rudskoy и кому:saint), и мы постараемся своевременно на это реагировать. -## Для переезжающих в Аркадию проектов +## Для переезжающих в Аркадию проектов Базовые рекомендации по процессу: 1. Не забывайте указывать родительский тикет для переезда из очереди ARCADIA и/или MIGRATION. @@ -99,15 +99,15 @@ Happy Path для пользователя, которому понадобил Но исполнитель задачи, при необходимости обсудить какую-либо библиотеку, попросит автора унести это обсуждение в отдельную задачу. -## Проектные contrib - +## Проектные contrib + В Аркадии не допускается существование проектных contrib. Это усложняет поиск по коду, его переиспользование и аудит лицензий. В процессе миграции допускается временно смигрировать библиотеку, у которой есть явные аналоги в Аркадии. Это возможно лишь при наличии коммитментов от команды со сроком на переезд на общеаркадийные компоненты. В некотором приближении мы будем запрещать для проектов внутри Аркадии зависеть от таких библиотек. -## Как комитеты согласуют новые библиотеки в contrib +## Как комитеты согласуют новые библиотеки в contrib **Зачем нужно согласовывать новые библиотеки.** Чтобы сообщить пользователю о наличии уже существующих решений на релевантном или другом ЯП в Аркадии или более подходящих решений из внешнего мира. @@ -147,27 +147,27 @@ Happy Path для пользователя, которому понадобил **Что случится, если будет отказ** Сколько стоит переход на альтернативные решения и т.д. - -## После импорта - -### Подключение к автосборке - -Добавленную библиотеку нужно подключить к автосборке. -По умолчанию считается, что все добавленные contrib-ы должны собираться под серверный Linux. -Подключить контриб к дополнительным платформам можно в [autocheck/$PLATFORM](https://arcanum.yandex-team.ru/arc/trunk/arcadia/autocheck). - -### Тесты на contrib - -Тесты контрибов делятся на нативные (существующие в апстриме) и написанные внутри (далее — кастомные). -Последние могут понадобиться, чтобы проверить, что контриб обеспечивает какую-то функциональность -(например, работу с кодировкой CP1251, про которую в апстриме никто не знает) и чтобы удостовериться, -что контриб правильно работает в условиях аркадийной сборки в монобинарь. - -Нативные тесты можно подключить к автосборке, если они используют поддерживаемый в Аркадии фреймворк для тестирования -(`BOOSTTEST` или `GTEST` для С++, `PY23_TEST` / `PY3TEST` для Python). - -Кастомные тесты пишутся точно также, как и обычные аркадийные тесты (см. [документацию](https://docs.yandex-team.ru/arcadia-cpp/cpp_test)). -Такие тесты нужно сложить в директорию [devtools/contrib_tests](https://arcanum.yandex-team.ru/arc/trunk/arcadia/devtools/contrib_tests). + +## После импорта + +### Подключение к автосборке + +Добавленную библиотеку нужно подключить к автосборке. +По умолчанию считается, что все добавленные contrib-ы должны собираться под серверный Linux. +Подключить контриб к дополнительным платформам можно в [autocheck/$PLATFORM](https://arcanum.yandex-team.ru/arc/trunk/arcadia/autocheck). + +### Тесты на contrib + +Тесты контрибов делятся на нативные (существующие в апстриме) и написанные внутри (далее — кастомные). +Последние могут понадобиться, чтобы проверить, что контриб обеспечивает какую-то функциональность +(например, работу с кодировкой CP1251, про которую в апстриме никто не знает) и чтобы удостовериться, +что контриб правильно работает в условиях аркадийной сборки в монобинарь. + +Нативные тесты можно подключить к автосборке, если они используют поддерживаемый в Аркадии фреймворк для тестирования +(`BOOSTTEST` или `GTEST` для С++, `PY23_TEST` / `PY3TEST` для Python). + +Кастомные тесты пишутся точно также, как и обычные аркадийные тесты (см. [документацию](https://docs.yandex-team.ru/arcadia-cpp/cpp_test)). +Такие тесты нужно сложить в директорию [devtools/contrib_tests](https://arcanum.yandex-team.ru/arc/trunk/arcadia/devtools/contrib_tests). ## Как работает контрибная автоматика После заведения CONTRIB-тикета приходит автоматика и по языку из компонента выбирает тех, кто будет одобрять библиотеку. Список одобряющих прописан в скрипте. |