Size: a a a

2018 February 04

AM

Andrey Melikhov in Node.js SPb
Опять же тот кто вносит правки в либу не может прогнать тесты на всех проектах, её использующих, так как это разные репо
источник

AM

Andrey Melikhov in Node.js SPb
Крупные компании, такие как фб, гугл и яндекс сидят на монорепо
источник

AV

Alexey Vykhrystyuk in Node.js SPb
источник

AM

Andrey Melikhov in Node.js SPb
В целом я вижу сейчас две тенденции: возврат к монорепозиториям и уменьшение количества зависимостей
источник

AS

Alex Shevnin in Node.js SPb
Не надо забывать что у всяких svn и git идеологии разные. Не надо хранить в одном гит репозитории разные продукты, это самоубийство. Фейсбук использует монорепозиторий потому что у них svn был сначала, а там так положено, потом когда все залагало, переехали на допиленный меркуриал. Гугл... за их piper можно отдельно разговаривать, но что-то я не видел чтобы базель, ангуляр и хромиум лежали в одном гит репозитории. Главный (единственный?) плюс монорепозитория - один коммит = всему продукту. Взять тимсити - можно настроить разные билды, сервер, мобильные приложения и т.д. / интегрейшн тесты и т.д. в одну цепочку которая соберется из одного коммита на разных машинах. Этим и пользоваться удобнее и поддерживать проще  (e.g. один PR меняет и REST API и его юзеров) чем солянку из микросервисов. Если это реально шаренная либа между кучей всяких проектов, и она самостоятельна - лучше уж собственный npm.
источник

AM

Andrey Melikhov in Node.js SPb
собственный npm это безоговорочно, но как заставить все продукты вовремя обновлять либу? поставить звёздочку и пусть чинят когда билд упадёт?
источник

OR

Oleg Rusak in Node.js SPb
Зачем заставлять? Можно же оповещать потребителей. Если у них нет потребности в новой версии тогда и ладно. Если они заказчики новой версии, то вероятно следят за изменениями.
источник

OR

Oleg Rusak in Node.js SPb
Сейчас если мне интересна либа я могу следить за новостями в твиттере например или в github watch. Если мне достаточно ее текущего функционала, ну их Хег с ней.
источник

AM

Andrey Melikhov in Node.js SPb
Oleg Rusak
Зачем заставлять? Можно же оповещать потребителей. Если у них нет потребности в новой версии тогда и ладно. Если они заказчики новой версии, то вероятно следят за изменениями.
в том и дело, что интереса обновлять нет, потому что потребует зачастую переписывания кода (при прыжке на мажор). Это ведёт к неконсистентности и к ситуации, что в один из дней для закрытия критической уязвимости или большой баги придётся экстренно прыгать на несколько мажоров.
источник

AM

Andrey Melikhov in Node.js SPb
Я говорю о внутренних либах. Часто несколько крупных проектов внутри одной компании юзают одни и теже бэкенды и должны, например, обновляться вслед за бэками
источник

OR

Oleg Rusak in Node.js SPb
Возможно ты пытаешься решить программным путем, организационную проблему?
источник

AM

Andrey Melikhov in Node.js SPb
а как бы ты решал? Принудительной проверкой в понедельник свежих обновлений внутренних библиотек в каждом проекте?
источник

OR

Oleg Rusak in Node.js SPb
Вопрос почему ментейнеры проектов не видят этой проблемы и не заинтересованы в ее раннем устронении
источник

AM

Andrey Melikhov in Node.js SPb
Oleg Rusak
Вопрос почему ментейнеры проектов не видят этой проблемы и не заинтересованы в ее раннем устронении
о, тут всё просто. мейнтейнеры проектов решают задачи бизнеса, а бизнесу скорость выкатки бизнес-фичи сейчас важнее, чем поддержание консистентности для устранения проблемы потом. Если выкатка будет остановлена принудительно, то придётся чинить зависимости, а если можно проблему отложить, то она будет отложена.
источник

OR

Oleg Rusak in Node.js SPb
Если решать проблему не затрагивая потребителей ) То
Например, можно делать авто рассылку команде или только тиму с описанием какие зависимости в проекте отстают по версии.  С описанием что есть патчи по безопасности.
источник

AM

Andrey Melikhov in Node.js SPb
потому и собираю отзывы, как кто решал такие проблемы
источник

AM

Andrey Melikhov in Node.js SPb
конечно, монорепо не единственный вариант
источник

OR

Oleg Rusak in Node.js SPb
Andrey Melikhov
о, тут всё просто. мейнтейнеры проектов решают задачи бизнеса, а бизнесу скорость выкатки бизнес-фичи сейчас важнее, чем поддержание консистентности для устранения проблемы потом. Если выкатка будет остановлена принудительно, то придётся чинить зависимости, а если можно проблему отложить, то она будет отложена.
Это я к тому надо понять почему у них нет проблемы и есть ли она вообще. Вы не сможете автоматическим путем решить проблему психологическую. Если на той стороне пофиг, то косяки всегда будут.
источник

AM

Andrey Melikhov in Node.js SPb
но есть и второй фактор — удобство разработки. Допустим, для твоего проекта требуется правка в трёх либах. Как ты будешь разрабатывать и отлаживать это? отдельно править каждую либу, пушить в репу и затягивать в основной проект?
источник

OR

Oleg Rusak in Node.js SPb
Andrey Melikhov
но есть и второй фактор — удобство разработки. Допустим, для твоего проекта требуется правка в трёх либах. Как ты будешь разрабатывать и отлаживать это? отдельно править каждую либу, пушить в репу и затягивать в основной проект?
я пока так работал
источник