Alexander "SonnySlave"
я сказал, что пакеты системы и пакеты к языку - разные вещи
Alexander "SonnySlave"
да, я именно это и имел в виду
Alexander "SonnySlave"
у каждого дистра свои правила для пакетов
Alexander "SonnySlave"
та же федора держит только последние версии пакетов в дистре. понятное дело, что это не подходит для ЯП
Alexander "SonnySlave"
не-не-не, НЕ ДОЛЖНЫ, но так получилось, что у каждого ЯП есть свой пакетный менеджер
Alexander "SonnySlave"
а то и несколько
Alexander "SonnySlave"
1) Интеграция - это дело мейнтейнеров. Вот пусть пакетят либы себе в дистр по их правилам и так далее. Не хотят пакетить? flatpak, snap, appimage . да, два пакета
Alexander "SonnySlave"
ещё раз. У каждого дистра свои полиси для пакетирования. Всем не угодишь. Поэтому у нас для разработки свой пакетный менеджер, а для распространения в системе ПРИДЁТСЯ пакетить по правилам дистра (для этого мейнтейнеры и работают)
vladislav
и как дргуие языки живут с пакетиниками, непонятно, только C++ особенный, у него свой, сложный путь
Alexander "SonnySlave"
поиграем в игру: кто больше способаов деплоя назовёт?
Alexander "SonnySlave"
а это ведёт к тому, что всем не угодишь
Alexander "SonnySlave"
а Rust куда выбросил?
vladislav
и как много из них живы в продакшоне?
Alexander "SonnySlave"
ишь ты какой
Alexander "SonnySlave"
а Go? У Nim вроде тоже есть пакетник
vladislav
Rust вот прекрасно себя чувствует
Alexander "SonnySlave"
@berkus
vladislav
vladislav
Ну вот он один и жив
Pavel
В жаве сколько пакетников?
Alexander "SonnySlave"
Conan
Pavel
В самой жаве - 0
Pavel
В спеке жавы про мавен не сказано
vladislav
Чего? Зачем? Ты такой логикой чего добиться желаешь-то? Расскажи мне про пакетники и билд системы для ассемблера, плз, или для алгола, нууу. Время другое, чувак, то, что не соответствует современности должно быть выкинуто. Пакетник и система сборки для современного языка — это стандарт.
Alexander "SonnySlave"
и это показатель его тупости, не более
Alexander "SonnySlave"
ну тогда почему мы должны ориентироваться на даунов?
Igor
потому что на них легаси держится?
Alexander "SonnySlave"
то, что они так привыкли делать десятилетиями, не оправдывает
Alexander "SonnySlave"
Igor
что значит "и", так кресты ж все про легаси!
Alexander "SonnySlave"
Igor
¯\_(ツ)_/¯
Alexander "SonnySlave"
быстрее подождать, пока они умрут от старости, а молодые уже будут с пакетником в голове
Alexander "SonnySlave"
😊
vladislav
Ну ясно, что мир не черно-белый, но не делать этого, потому что кому-то там что-то не удобно, это поставить крест на себе.
Alexander "SonnySlave"
надо просто доносить это до толковых людей. и всё
Pavel
+1
Олександр
Так а зачем это в стандарте?
Igor
//тем временем пока где-то идут ожесточённые битвы за пакетник, где-то ещё собирают билды под пять платформ с пятью разными бустами
Alexander "SonnySlave"
так, секунду, лол
Alexander "SonnySlave"
кто-то говорит про прописывание этого в Стандарте?
Pavel
Как можно пакетный менеджер воткнуть в стандарт без единой системы сборки?
Pavel
Alexander "SonnySlave"
в комитете просто группу создали для думания над этим
Pavel
Alexander "SonnySlave"
Alexander "SonnySlave"
и не надо говорить мне, что я мудак и могу обновить - я разработчик, я так вижу
Matwey
Ты не правильно ставишь вопрос
Alexander "SonnySlave"
?
Matwey
Во-первых, не знаю как там в федоре, а стараются держать несколько параллельных поддерживаемых версий библиотек с несовместимым ABI.
Во-вторых, как ты понимаешь, если в заброшенной версии 1.0.5 зияющая проблема с безопасностью, которую не будет никто чинить, то тут уже проблема со сборкой твоего проекта далеко не первостепенная.
Alexander "SonnySlave"
Во-первых, не знаю как там в федоре, а стараются держать несколько параллельных поддерживаемых версий библиотек с несовместимым ABI.
Во-вторых, как ты понимаешь, если в заброшенной версии 1.0.5 зияющая проблема с безопасностью, которую не будет никто чинить, то тут уже проблема со сборкой твоего проекта далеко не первостепенная.
Про во-первых. А кто-то говорил про несовместимое ABI? мне просто не нравится либа версии иной чем моя, потому что там снижение перфоманса\баг внутри\whatever else. Мб когда-нибудь апргрейднусь. Мб
Про во-вторых, я понимаю конечно же. Я же сказал, я разраб этой либы, я так вижу.
Matwey
Про во-первых. А кто-то говорил про несовместимое ABI? мне просто не нравится либа версии иной чем моя, потому что там снижение перфоманса\баг внутри\whatever else. Мб когда-нибудь апргрейднусь. Мб
Про во-вторых, я понимаю конечно же. Я же сказал, я разраб этой либы, я так вижу.
Ну это все-таки очень общее рассуждение. Баг или снижение производительсти - это все-равно явный дефект, который нужно кому-то чинить. Если это происходит в рамках одной ветки со стабильным интерфейсом, то (при условии, что всё починено) не остается причины прилепать к определенной версии внутри. Если это разные ветки - ну так полно людей еще живет на openssl 1.0 и в ус не дует.
Прилипнуть к определенной версии зависимости и статически с ними слинковаться - это задачка не про пакеты, к огромному сожалению. Отсутсвие каких-то проблем с безопасностью можно хоть как-то гарантировать только на голове поддерживаемой ветки библиотеки, потому-что туда хоть как-то смотрят её разработчики. К сожалению, некоторые авторы библиотек видят так, что у них есть "вечно стабильный мастер" где вперемешку меняется интерфейс, что-то исправляется, добавляются какие-то фичи. Это популярно, например, в golang. И проблема тут в том, что никто не знает что там было исправлено при очередном рефакторинге. Существуют задукоментированные случаи когда в glibc случайно ретроспективно находили косяки с демонстрацией эксплоита через exim, например, которые случайно(!) уже были исправлены три года назад при рефакторинге, но продолжающие жить в старых версиях.
Вариантов решения этой проблемы три: либо ты забиваешь на безопасность своего проекта, либо ты инспектируешь все его зависимости (если у тебя есть очень много специалистов, которые могут решить эту задачу за конечное время), либо ты веришь наслово разработчикам каждой из зависимостей, что они ветку 2.4.x и 2.5.x поддерживают, а 2.3.x извините, они с завтрашнего дня выкидывают.
Alexander "SonnySlave"
Ну это все-таки очень общее рассуждение. Баг или снижение производительсти - это все-равно явный дефект, который нужно кому-то чинить. Если это происходит в рамках одной ветки со стабильным интерфейсом, то (при условии, что всё починено) не остается причины прилепать к определенной версии внутри. Если это разные ветки - ну так полно людей еще живет на openssl 1.0 и в ус не дует.
Прилипнуть к определенной версии зависимости и статически с ними слинковаться - это задачка не про пакеты, к огромному сожалению. Отсутсвие каких-то проблем с безопасностью можно хоть как-то гарантировать только на голове поддерживаемой ветки библиотеки, потому-что туда хоть как-то смотрят её разработчики. К сожалению, некоторые авторы библиотек видят так, что у них есть "вечно стабильный мастер" где вперемешку меняется интерфейс, что-то исправляется, добавляются какие-то фичи. Это популярно, например, в golang. И проблема тут в том, что никто не знает что там было исправлено при очередном рефакторинге. Существуют задукоментированные случаи когда в glibc случайно ретроспективно находили косяки с демонстрацией эксплоита через exim, например, которые случайно(!) уже были исправлены три года назад при рефакторинге, но продолжающие жить в старых версиях.
Вариантов решения этой проблемы три: либо ты забиваешь на безопасность своего проекта, либо ты инспектируешь все его зависимости (если у тебя есть очень много специалистов, которые могут решить эту задачу за конечное время), либо ты веришь наслово разработчикам каждой из зависимостей, что они ветку 2.4.x и 2.5.x поддерживают, а 2.3.x извините, они с завтрашнего дня выкидывают.
Согласен полностью. Я веду речь про "я забил"
Matwey
Ну, понимаешь, включать проект где автор "забил" в дистрибутив тоже не очень хорошо, потому-что авторы дистрибутива тоже как-бы неформально подписываются (с юридической точки зрения в опенсорсе коненчо нет гарантий) под тем, что пользователь может поставить любой из представленных пакетов и не огрести совсем уж серьезных проблем.
Alexander "SonnySlave"
Constantine
а есть кто-нибудь, кто понимает, как реализуются future/promises с detach?
Alexander "SonnySlave"
пусть только выберут один формат, чтобы проприетарщина наконец-то распространялась не через tar.gz
Matwey
Да, flatpak это такой способ переложить ответственность
Matwey
Ну вот ты смеешься, а мне каждый раз очень страшно ставить проприетарщину из Install.sh, потому-что я на полном серьезе ожидаю, что оно удалит все файлы из домашней директории.
Alexander "SonnySlave"
Alexander "SonnySlave"
чёрт знает, что там внутри
Stanislav
если шо, там 15.6 студия вышла :)
Stanislav
https://docs.microsoft.com/en-us/visualstudio/releasenotes/vs2017-relnotes#CPlusPlus
Олександр
А как же AppImage?
Matwey
Я читал уже не раз. К Flatpak у меня те же вопросы возникают. Как мне удостоверится что там не лежит дырявая патченная версия openssl? Которая получит в итоге доступ к моим данным, потому-что приложением то я буду пользоваться.
Stanislav
Matwey
Так так. "следует привязываться к бандлу с ним". А как-же предыдущий аргумент "я так вижу"? Уже забыли?
Stanislav
я не про флатпак а в целом
Egor
бандлы в системе это как пакеты, только бандлы?
Matwey
Аргумент был в том, что удобно таскать любимые версии зависимостей с собой
Matwey
Egor
то есть получился очередной уровень абстракции?
Matwey
Да, с теми же самыми проблемами, но другим названием.
Matwey
И чуть более удобно в использовании
Egor
как роллинг дистрибутивы?