Daniel
проговори, почему в других языках не коммитят зависимости, и тебе станет ясным, почему это неочевидно.
в других языках не коммитят зависимости потому, что там не используют статическую линковку (хотя в некоторых - могли бы). поэтому вендоринг там ничего не даст
Daniel
только и всего
Daniel
как не даст, если ты сам про выпиленные из инета зависимости рассказывал?
при динамической линковке - и в интерпретаторе - зависимости требуются не только на компе, где происходит сборка, но и на том, где происходит запуск. поэтому вендоринг не даст ничего. так понятно?
Aleksandr
при динамической линковке - и в интерпретаторе - зависимости требуются не только на компе, где происходит сборка, но и на том, где происходит запуск. поэтому вендоринг не даст ничего. так понятно?
ок. нам в первом случае вендоринг нужен для сборки, во втором для запуска после деплоя. и? проблемы во втором случае нет? или это только в первом случае проблема?
Daniel
коллега, я не понимаю вашего вопроса :(
Daniel
вендоринг имеет смысл только в том случае, если ваша репа - единственный источник артефактов
Aleksandr
коллега, я не понимаю вашего вопроса :(
нам в обоих случаях нужны зависимости. почему во втором вендоринг излишен?
Daniel
что возможно только при статической линковке
Daniel
он не излишен - он бесполезен
Aleksandr
вендоринг имеет смысл только в том случае, если ваша репа - единственный источник артефактов
вот ты выдвинул тезис, но его не обосновал. мне кажется он ровным счетом ни на чем не основан.
Daniel
коллега, ну что непонятно-то?
Daniel
вот у вас есть машина
Daniel
вы либы откуда на нее поставили?
Daniel
вам же нужны либы приложение запустить, правда?
Daniel
так - откуда?
Roman
Есть ещё момент - у го нет единого репозитария для пакетов, каждый использует то что хочет
Aleksandr
коллега, ну что непонятно-то?
условно, на go мне надо с зависимостями сбилдить бинарник на этапе сборки, а на php мне надо с зависимостями собрать контейнер для дальнейшего деплоя на сервера. что не понятно, коллега?
Daniel
не понятно, как вы так ловко в одну кучу язык с либами и контейнеризацию смешали. собирают, кстати, образ, а не контейнер...
Daniel
но, вообще, для повторяемости результата (если она вам нужна) совсем не грех куда-нибудь свои зависимости закоммитить.
Aleksandr
не понятно, как вы так ловко в одну кучу язык с либами и контейнеризацию смешали. собирают, кстати, образ, а не контейнер...
ну мне нужно же как-то деплоить свое приложение? значит его надо как-то собирать, в том числе зависимости подтягивать. это же очевидный момент, если мы упираем на очевидность всего и вся?
Daniel
для запуска статического бинарника зависимости не нужны. только для сборки. в этом принципиальная разница. кивните, пожалуйста, если поняли
Daniel
а развейте мысль, пожалуйста. что из этого следует в плане вендоринга?
Aleksandr
а развейте мысль, пожалуйста. что из этого следует в плане вендоринга?
гипотетическая проблема выпилки зависимости из инетов, что сломает сборку
Anonymous
а развейте мысль, пожалуйста. что из этого следует в плане вендоринга?
Что неплохо было бы иметь копию сторонних пакетов на случай, если их удалит разработчик? (извиняюсь что влез в ваш диалог)
Daniel
кой толк их иметь на этапе сборки, если на этапе запуска их может не оказаться?
Aleksandr
кой толк их иметь на этапе сборки, если на этапе запуска их может не оказаться?
а зачем тогда сборка нужна - что она будет собирать, если не работающее приложение?
Daniel
коллега, вы совсем на птичий язык перешли. я не распарсил :(
Aleksandr
коллега, вы совсем на птичий язык перешли. я не распарсил :(
как может не оказаться зависимости на этапе запуска, если при сборке мы все установили, протестили и запаковали в имидж, архив, деб/рпм и прочая?
Daniel
как может не оказаться зависимости на этапе запуска, если при сборке мы все установили, протестили и запаковали в имидж, архив, деб/рпм и прочая?
несколькими способами и есть у меня подозрение, что вы в курсе, как, и просто едите мой мозг. а я не люблю, когда кто-то ест мне мозг
Anonymous
например какими? мне кажется ровно наоборот.
Мне кажется Даниэль говорит про модули, которые подключаются в рантайме. С 1.8, насколько я помню, появились.
Anonymous
Я слабо себе представляю, как еще можно подключить зависимости на этапе запуска, когда бинарник уже скомпилен.
Daniel
например какими? мне кажется ровно наоборот.
1. вы все свои зависимости запаковали в образ контейнера? кто-то сделал на базе вашего контейнера свой со свежими либами 2. вы все свои зависимости запаковали в архив? динамический линкер нашел вам в системе другую либу. 3. вы все свои зависимости запаковали в rpm/deb? кто-то поставил другой пакет с той же либой другой версии если вы никогда не сталкивались с этим - я вам завидую. если сталкивались - перестаньье уже тупить, а?
Aleksandr
Мне кажется Даниэль говорит про модули, которые подключаются в рантайме. С 1.8, насколько я помню, появились.
не думаю. мне кажется, его мнение о своей "очевидно" правильной точке зрения мешает ему дискутировать с неизвестным ему оппонентом, который, по его мнению, заведомо проигрывает ему в опыте
Anonymous
мы тут за разницу в языках трем...
А, тогда я не в тему, отчаливаю)
Axm
мы вроде говорили об управлении зависимостями
Daniel
типа того, да
Daniel
и оно имеет разный вид в разных языках
Daniel
в некоторых имеет смысл нарисовать cpanfile с указанием версий
Daniel
в некоторых - сложить в поставку все либы нужных версий, уже скомпиленные
Daniel
в некоторых, которые go, имеет смысл зафиксировать сорцы у себя в репе
Daniel
вендоринг - это как раз последнее
Axm
вот цепочка. я лишь указал, что твой способ не работает для дотнета как минимум. то есть, твои аргументы неверны.
Aleksandr
вот цепочка. я лишь указал, что твой способ не работает для дотнета как минимум. то есть, твои аргументы неверны.
для php и js так же, но "php/js/perl. там еще и не то может произойти..." вот такой уровень аргументации
Daniel
Axm
все три пункта верны для определенных ситуаций с определенными языками и подавать их как некий универсальный аргумент является логически неверным.
Daniel
это вы их подали, как универсальный, чтобы разбить вдребезги. прямо вдребезги! а я аргументирую простую мысль, и в довольно узком диапазоне смыслов
Axm
какую мысль?
Daniel
для php и js так же, но "php/js/perl. там еще и не то может произойти..." вот такой уровень аргументации
ну коллега, ну что тут вам аргументировать-то? нет, я понимаю, вы обижены, и теперь будете просить аргументировать все, что угодно. но двайте все же очевидные-то вещи оставим в покое, а?
Daniel
какую мысль?
способ сборки и дистрибуции golang позволяет извлечь пользу из вендоринга, и, раз так - надо этим пользоваться
Axm
способ сборки и дистрибуции golang позволяет извлечь пользу из вендоринга, и, раз так - надо этим пользоваться
было бы круто, если бы ты сразу так написал. позволило бы избежать половины этого спора.
Daniel
а я сразу так и написал
Aleksandr
ну коллега, ну что тут вам аргументировать-то? нет, я понимаю, вы обижены, и теперь будете просить аргументировать все, что угодно. но двайте все же очевидные-то вещи оставим в покое, а?
я не обижен. я указываю тебе на недопустимые приемы в дискуссии. также тебе указывают на неверную аргументацию и неочевидность того, что ты считаешь очевидным. но ты широким жестом продолжаешь нести народу истину.
Daniel
не все же до меня домогаться...
Aleksandr
речь о том, перевешивают ли плюсы минусы, а конкретно тащить в репу 100-500 мб, если сам код весит 1-5 мб
Daniel
Прям так? Рили?
а я о чем?! в этом суть гошного вендоринга! сделал dep (или что у вас там), vendor пушнул, и спишь спокойно
Aleksandr
вот и аргументируй, а?
так уже выЯснили - выпиленная зависимость, переименование завивсимости, несоответствие версии (если вдруг менеджеры зависимостей не поддерживают коммиты)
Aleksandr
что мы выяснили? что?
после слова "выяснили" идет уточнение. кивни
Daniel
после слова "выяснили" идет уточнение. кивни
там перечисление какое-то, без тезиса