Daniel
у вас написано перечислением
Мерль
https://goplay.space/
Anonymous
Я пока человек без вы :D
Daniel
ладно, а чем make лучше конфикурации для ci вашего?
Daniel
или нет ci?
Anonymous
Разработчиков тоже просить CI юзать?
Daniel
тогда чем он лучше sh/cmd
Anonymous
Или предлагаешь листы команд писать вручную?
Anonymous
Тем, что Make можно свободно разделять и подключать инклудом
Anonymous
sh - это просто сборник скриптов
Anonymous
Дополнение к мейку иногда хорошее
Daniel
смотрите
Daniel
есть go generate
Daniel
его запускает разработчик, редко
Daniel
есть go build
Илья
у нас раскладки rpm пакетами, есть сервер сборок, ldflags, для уверенности что за версия крутится на проде (которых дофига), generate файлы в репе не храним, тк в процессе там очень много изменений, и ревьюить это страшно, пока работает как часы
Daniel
а больше и нет ничего
Anonymous
Есть еще такая штука, как энвы
Anonymous
Не go build / go generate едины
Anonymous
И они точно не попадают под тематику мейка
Daniel
про "очень много изменений" - есть
$cat .gitattributes
gen/* linguist-generated
vendor/* linguist-vendored
Daniel
Не go build / go generate едины
ну вот я уже давно в бизнесе, и пока никакой необходимости в make не ощущаю. даже спилил его походя в паре мест, и там тоже никто дискомфорта не joenbk/
поэтому всякий раз, когда вижу его, задаю вопросы. ответов кроме "мы так привыкли" пока не получал...
Anonymous
Я накину вопросы, попробуй решить с помощью go build / go generate без длинных команд
- Каким образом мы будем решать проблему с подстановкой конфигов? На этапе билда под определенный энв мы в папочку deploy, мейков расфасовываем нужные файлы и переименовываем локальный конфиг с копированием, дабы не подставлять другой флаг конфига.
- Каким образом мы будем запускать проект, если он поддерживает несколько флагов, которые в зависимости от задачи, иногда могут меняться и желательно на каждый метод иметь свою команду запуска?
- Миграция, иногда они такие сякие, не поддерживают файловую конфигурацию (Что есть вполне правильно), тогда в таком случае у нас есть большааая dsn строка, которую мы автоматически воспроизводим отдельной тулзой из нашего конфига. Как можно решить проблему сокращения и подставления, на моменте запуска миграции up / down этот момент?
Это все относится к моменту запуска, параметризации у go build / go generate нет и не будет. Разделяться на множество файлов они тоже не умеют, дабы настраивать в большой монорепе каждый отдельный элемент.
Anonymous
Да, для большЕго количества случаев это утверждение подходит.
Anonymous
На больших проектах - хуй там лежал :)
Anonymous
И да, скрипты не предлагать, они всегда и в любых случаях многословнее мейка
Anonymous
И под скрипты нет автокомплита для zsh/fish/etc...
Anonymous
>поэтому всякий раз, когда вижу его, задаю вопросы. ответов кроме "мы так привыкли" пока не получал...
Это подходит под многие утверждения, и всегда выглядит, как троллинг.
Anonymous
Нормальным людям просто не хочется ввязываться в длинные артиклы, особенно в чатах
Anonymous
И "мы так привыкли" не плохой ответ
Anonymous
Если привычка работает быстро - почему бы и нет
Daniel
"проблема с подстановкой конфигов" - я не понял, что это. видимо, я не понял, что такое env.
"каким образом мы будем запускать проект" - опять не понятно. такое впечатление, что вы зашили в один бинарник несколько приложений. это так? если да - зачем?
"миграция" - при чем тут make вообще? менеджеры миграций существуют и для go. отдельно мне не понятно проблема "сокращения и подставления" - что там такое надо сокращать и подставлять?
Daniel
Anonymous
No problem, как говорится в таком случае :)
Anonymous
Не требуется, значит и не нужно.
Anonymous
Я такое называю - в поисках, как себе побольше гвоздей заколотить, а не инструменты юзать.
Но если это вызвано действительно без нужды и разработчиков не насилуете - то все хорошо в этой жизни.
Daniel
а разъяснения по трем проблемам - воспоследуют? или "нет времени объяснять"?
Daniel
обиделся? зря...
Daniel
я, видимо, не понял ответа.
про генеренное в репозитории - положено держать его там. и, если поразмыслить, окажется, что - да, там ему и место.
Илья
Daniel
для ревью можно таки освоить фокус с .gitattributes
Daniel
вообще - это правильно, знать и уметь свои инструменты, а не подставлять костыли под свое невежество...
Aleksandr
обиделся? зря...
ты дискуссию о необходимости вендоринга, принятого в го, свел к обвинению оппонента в незнании матчасти, хотя тут вообще-то практикующие в других языках программисты сидят, которые могут матчасть об управлении зависимостей в других языках и получше тебя знать. а потому просто некрасиво свое мнение пихать как аксиому.
Илья
Илья
но make я всё еще не считаю лишним в воркфлоу
Daniel
Илья
посмотрим, что stash по этому поводу думает :)
Daniel
Илья
ldfalgs, test при сборке, позволяют не получать плохие пакеты
Daniel
я не вижу для гошечки смысла в пакетах
Илья
+ при разборе инцидентов точно знать, какая версия проекта сейчас работает на конкретной машине
Daniel
и как связаны версия и ldflags - тоже пока не понял :)
Илья
LINKFLAGS = -ldflags="-X mail/version.RepoVersion=$(GIT_REV)"
Daniel
у меня для этой цели есть мелкое приложение на go, которое извлекает из гита версию и формирует файл с константой
Илья
у нас был bash скрипт, но перешли на ldflags - это удобно :)
Daniel
вызов приложения прописан в .gitlab-ci.yml
Axm
Daniel
который, кстати, заменяет вполне Makefile, как мы понимаем
Anonymous
а разъяснения по трем проблемам - воспоследуют? или "нет времени объяснять"?
Anonymous
Нет смысла их объяснять
Anonymous
Значит не было опыта такого
Anonymous
Поэтому и не продолжил дисскуссию
Anonymous
А сейчас вон выяснилось, что вместо мейка, отлаживали билд каждый раз деплоя гитлаб файл
Anonymous
У меня WTF в голове сплошной, как и у некоторых выше отписавшихся
Daniel
Axm
культурно-просветительская, это когда ты объясняешь свою точку зрения, а не говоришь "так надо" и не предлагаешь мне самому написать, почему именно так надо ("по ходу ответа поймешь")
Daniel
Значит не было опыта такого
за 25-то лет у меня всякий опыт был.
но технические аргументы - они технические аргументы. если они есть - их обычно не трудно предъявить...
Anonymous
Мне не трудно было - я расписал, не понятно - значит на это уже требуется доклад и личная встреча.
Anonymous
Дабы сразу все по полочкам разложить и урегулировать
Daniel
Aleksandr
Daniel
Anonymous
Конечно, есть только способы решения
Anonymous
Кто-то пишет отдельные цельные тулзы для генерации константс и дебажит билд на CI сервере
Axm
Anonymous
А кто-то локально задебажил, написал одну переменную и доволен жизнью