Здравствуйте, CreatorCray, Вы писали:
C>>Какие есть формальные методы, которые могут проверять скрипты сборки? CC>Отсутствие turing complete скриптов, которые могут не только собрать билд но и разобрать половину здания в процессе
Что конкретно полное по Тьюрингу в "touch / myfile"?
Здравствуйте, CreatorCray, Вы писали:
CC>>>Там в итоге бинари подписываются, так что хеши будут всегда разными просто по определению. S>>С чего этого? Время сборки включено в процесс подписывания? CC>Подпись timestamped
Берём timestamp из времени запуска билда. Какие проблемы-то? Для кросс-подписей просто сохраняем их, так как хэш файла будет всегда одинаковый, то и подписи не поменяются.
Более того, при полностью репродуцируемых сборках подпись вообще не нужна — достаточно хэша версии исходников.
Здравствуйте, Слава, Вы писали:
С>>>Формальными методами, наверное. У вас там даже TLA+ начали внедрять. C>>Какие есть формальные методы, которые могут проверять скрипты сборки? С>Вот уж не знаю, какие. Но слово "скрипты" мне уже не нравится. Этот весь sh с питоном.
Для реальных сборок сложных систем часто нужно проводить нетривиальные действия. И это не считая тестов, которые вообще могут быть отдельной не менее сложной системой.
Здравствуйте, CreatorCray, Вы писали:
C>>Ну так чем заменять будем? Люди имеют свойство ошибаться. CC>Теми, кто может
Нету таких.
C>>В том числе и мега-гении из Apple — см. Touchbar. CC>Тачбар придумывали не программисты, надеюсь им икается.
Нет, это только следствие. Apple goto fail — это их фсьо.
C>>Гарантии в том, что билд будет ВСЕГДА повторяемым. Сейчас идёт работа над идеальной повторяемостью — чтобы артефакты можно было с точностью до бита повторять. CC>Может просто надо прекратить порочные практики, которые приводят к тому что билд рушит свой же environment?
См. выше.
C>>Вот! Заметание! Нормальные программы не должны с AV падать. CC>Ну так у вас программа вместо того чтоб на тестах с AV упасть просто молча exception схарчит. Просто потому что вы за ней тут же прибираете и насранную кучу увидеть не сможете.
А у вас она просто работает. Может быть. А может и нет. Никто не знает.
C>>Есть и другие проблемы. Например, мега-гений может установить другую версию MSVS на хост, с другими багами. CC>У вас настолько бардак в билдсистеме?
Нет, у нас билд система повторяется с точностью до бита. Для любой версии. Например, мы можем точно воспроизвести версию 3 лет назад для того, чтобы проверить, что в ней есть (или нет) определённый баг.
Здравствуйте, CreatorCray, Вы писали:
C>>Что конкретно полное по Тьюрингу в "touch / myfile"? CC>То, что этот touch вызывает и потом проверяет.
А вот нифига, это была цель в Maven-скрипте, который типа декларативный.
Здравствуйте, CreatorCray, Вы писали:
S>>Нет гарантии, что кто-то не установит софт для решения своих задач (наиболее типичная проблема). CC>А на билдсервер нету доступа для "решения своих задач". Если у кого то это типичная проблема то это проходной двор и бардак.
Другой пример вспомнил — одно из минорных обновлений JDK сломало Tomcat. Причём очень тонко сломало — оно падало в определённых случаях из-за неправильного использования gzip-сжатия.
Так как вся среда у нас полностью детерминирована, то ошибку нашли бисекцией за пару часов. В случае твоего любимого варианта: "куча копролита" это сделать было бы невозможно. Так как копролит не бисектится — это куча, данная в ощущениях.
Здравствуйте, CreatorCray, Вы писали:
CC>Здравствуйте, Skorodum, Вы писали:
S>>В MSVС придется опции типа путей к библиотекам прописывать для всех вариантов. CC>Это в новых студиях идиоты сломали. Раньше один раз было достаточно.
Открой для себя пропсы. Делается пропс, подключается к желаемым конфигурациям. Все. Можно любые настройки так подключать, не только пути. Изменение в пропсе аффектится сразу на все.
Здравствуйте, IID, Вы писали:
IID>Открой для себя пропсы. Делается пропс, подключается к желаемым конфигурациям. Все. Можно любые настройки так подключать, не только пути. Изменение в пропсе аффектится сразу на все.
Я просто когда то закрыл для себя студии новее 2008й. VAX покрывает практически все нужды в intellisense, а компилер прикручен сторонний.
На работе же сейчас гнусный XCode
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Cyberax, Вы писали:
C>>>В том числе и мега-гении из Apple — см. Touchbar. CC>>Тачбар придумывали не программисты, надеюсь им икается. C>Нет, это только следствие. Apple goto fail — это их фсьо.
Да он как винда, уже много лет "уже не торт".
И всё же...
C>Нет, у нас билд система повторяется с точностью до бита. Для любой версии. Например, мы можем точно воспроизвести версию 3 лет назад для того, чтобы проверить, что в ней есть (или нет) определённый баг.
Строго говоря для этого было бы неплохо ещё и ОС поставить ту, что была тогда.
VM + snapshot тут будет куда более подходящее решение.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, IID, Вы писали:
J>>Формат меняется, потому что MS хочет от тебя бабла. IID>От меня — не хочет. Community Edition бесплатна.
Не совсем она бесплатная, под конец месяца отключается если, как понимаю, не зарегистрирована.
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Здравствуйте, 00011011, Вы писали:
0> Это просто списки файлов (без директорий) которые лежат внутри. Это не исходники. А просто какие-то файлы.
Если интересует сборка под windows, то из всех этих файлов интерес представляет ровно один: .appveyor.yml
Там внутри пошаговая инструкция по сборке проекта под windows.
0>Что я хочу сказать? 0>А то, что комитет по стандартизации должен принудить всех разработчиков компиляторов к тому, чтобы был один единый для всех компиляторов и для всех операционных систем формат файла проекта, с простым и понятным json- или xml-подобным синтаксисом. Он должен быть единый и достаточный для того, чтобы загрузить проект в любую среду разработки и собрать любым компилятором путем выполнения одной единственной команды. И все вопросы внешних зависимостей должны также решаться компилятором и быть учтены в этом формате.
Замечу, что к такой точке зрения msvs абсолютно препендикулярен.
Попробуй qt creator. Там единый для всех компиляторов и для всех операционных систем формат файла проекта, с простым и понятным json- или xml-подобным синтаксисом.
Здравствуйте, Vain, Вы писали:
IID>>От меня — не хочет. Community Edition бесплатна. V>Не совсем она бесплатная, под конец месяца отключается если, как понимаю, не зарегистрирована.
Здравствуйте, _Raz_, Вы писали:
_R_>Здравствуйте, Skorodum, Вы писали:
S>>А тебе слабо? Вот есть голая винда. Как автоматизировать установку git/CMake/компилятора? _R_>
_R_>https://chocolatey.org/
1. Выделил. Нет на голой винде choco
2. Опять же устанавливается компилятор от "осилиторов". Так что это аргумент больше в пользу "осиляторов", а не МС
Здравствуйте, Ops, Вы писали:
Ops>Мне нет. Навскидку, строчек 5-10, но будет еще choco.
1. Нет на голой винде сhoco.
2. Как с помощью сhoco установить C++ toolchain из MSVC2017?
Здравствуйте, Cyberax, Вы писали:
C>Так как вся среда у нас полностью детерминирована, то ошибку нашли бисекцией за пару часов. В случае твоего любимого варианта: "куча копролита" это сделать было бы невозможно. Так как копролит не бисектится — это куча, данная в ощущениях.
Мне вообще странно, что людям, занимающимся разработкой ПО за деньги, надо объяснять преимущества подхода Infrastructure as code
Здравствуйте, CreatorCray, Вы писали:
CC>Строго говоря для этого было бы неплохо ещё и ОС поставить ту, что была тогда.
Ты не поверишь...
CC>VM + snapshot тут будет куда более подходящее решение.
Ну примерно так и делается
Здравствуйте, Marty, Вы писали:
M>А гитхаб — это не система контроля версий. Гитхаб — это сборка мусора. Помойка кодовая
Это абсолютно не важно. 90% кода это мусор и студенческие поделки, но это же значит, что вся используемые для этого ЯП нодо выкинуть. И git и github это пример мега-успеха и прогресса в разработке ПО.
Здравствуйте, IID, Вы писали:
IID> Т.е. вы каждый билд откатываете сервер на голую ОС, потом разворачиваете тулчейн, ставите over9000 всяких dev пакетов и т.д. и т.п ? ЗАЧЕМ ? (Кажется кто-то заврался.)
Удивляет, что кто-то <пока еще> так НЕ делает и еще умудряется этим хвастаться.