Comments 97
Вся суть статьи в этой картинке (она упоминается в статье):

2. zlib —...Последний значимый релиз — 2022 год. Что будет дальше — неизвестно.
21. log4net (.NET) — ...Коммиты приходят редко, активность минимальна.
А никто не задумывался, зачем мы вообще гонимся за коммитами и релизами? Что если библиотека уже умеет делать всё, что от неё требовалось. Может стоит рассматривать проекты как «завершённые» в том смысле, что они «уже готовые и добавить к ним нечего», а не в смысле «заброшенные»?
А никто не задумывался
Задумывался. Я задумывался.
Результат "задумывания": довольно часто проекты необходимо менять, даже если там всё хорошо: выходит новый стандарт языка, меняются компиляторы, меняются версии ОС (например, появляются новые системные API, в которых поддерживаются длинные/национальные пути к файлам).
Если проект не меняется годами (хотя он и рабочий), то нет никакого отличия от заброшенного проекта. Вероятность, что проект именно заброшен - выше. Проверять самому, что всё ещё рабочее? Лучше поискать что-то более свежее.
Вывод из "задумывания": если проект живой, то можно делать в репозитории небольшие изменения (даже не в коде). Например, в readme обновлять список поддерживаемых версий компиляторов.
Ну вот тот же zlib:
выходит новый стандарт языка, меняются компиляторы — это C, он будет вечно обратно-совместим, более того, злиб специально написан так, чтобы компилироваться любыми компиляторами
меняются версии ОС (например, появляются новые системные API, в которых поддерживаются длинные/национальные пути к файлам). — да этой библиотеке как-то пофиг, это же чистый алгоритм, он не лезет в ОС, и работает даже там, где нет ОС
это C, он будет вечно обратно-совместим
Пример приключений с обратной совместимостью C: https://habr.com/companies/cloud4y/articles/996168/ (typedef enum { false, true } boolean;)
Проект в наше время не может быть финальным, завершенным.
Могут появится уязвимости. Особенно сейчас, когда за их поиск взялись нейросети, не имеющие потолка по продуктивности в отличие от кожаного хакера.
Для проектов с зависимостями банально устаревают зависимости, и проект больше не собирается в актуальном окружении.
Иногда появляются неожиданные баги, даже в самом вылизанном коде.
Если единственный мейнтейнер умер, или другим способом пропал насовсем (сел в тюрьму или в дурку, ушел в монастырь, ...), есть приличный такой шанс на то, что злоумышленник через энное время восстановит доступ к репозиторию через поддержку от имени автора. "У меня сломался ноут, бекапа не было, всё потеряно, помогите, вот сканы паспорта и другие доказательства, что это я." Ведь автора, чаще всего, никак нельзя точно верифицировать, особенно если он живет за пределами ЕС/США.
Вроде бы эти события не требуют коммитить каждый день и релизить каждую неделю (ну кроме экосистемы js, где ваши зависимости успевают устареть к моменту, когда завершается npm install, а новый фреймворк выходит каждые 300 наносекунд)
А что значит это "наше время"? Что есть завершенность продукта? Я вот одну утилиту использую уже около 30 лет - Total commander. Начинал еще с 16 битной версии в вин3.1. В середине нулевых вышел какой-то большой апдейт, я один раз его настроил на быструю навигацию по фс, завернул в него портабельные приложения, вынес необходимое на панельку, и с тех пор этот чемодан ездит со мной. Продукт обновляется, но даже не помню какая там версия сейчас актуальная и какая у меня установлена. Я просто знаю что при загрузке ос меня встретят те же 2 панельки что и вчера, и внутри будет все разложено так как я привык за десятилетия.
Ты это скажи безопасникам на аудите. Завернут твой релиз из-за протухшей зависимости, и пойдешь сам форкать "идеальную" библиотеку)
Так они при аудите только на коллекцию CVE смотрят (даже не вникая, а вообще применимо оно сейчас или нет), а не на последний апдейт
Не только. Например со временем в целом меняются подходы к разработке ПО и некоторые подходы ранее считавшиеся ок, теперь считаются небезопасными. В одной компании для mission-critical софта, например, явно запрещено использовать старые сильные функции типа strcpy, в вместо них предписывается всегда использовать strncpy. И старый код просто не пройдет аудит безопасности.
Наверное, можно было бы выступить против самого подхода к разработке. Можно ли было бы представить мир, в котором есть только проприетарное программное обеспечение? Но если мы хотим, чтобы любой труд всегда оплачивался, то надо сделать так, чтобы оплавичался именно любой труд. Человек что-то протестировал, что-то проанализировал — заплатите ему. Например.
С другой стороны, нужно централизованное производство программного обеспечения. То есть — всегда должна быть группа людей, к которым стекается программный код и которые всегда на связи. И нужны некие общие спецификации. Без спецификаций не будет никакого порядка.
Мы нормализовали это до такой степени, что удивляемся, когда что-то идёт не так.
Всё идёт не так, как запланировано, потому что нет плана, нет архитектуры, никто не занимается архитектурой, никто не считает это необходимым, все считают, что не может быть никакой архитектуры. Между тем, именно архитектура задаёт границы (не нужно слишком много релизов, не нужно слишком много разного программного кода) и направления деятельности (что и как нужно делать, а чего делать не надо).
Опенсорс изначально рос из хаоса и личных пет-проектов, немного наивно требовать от него корпоративной архитектуры
С другой стороны, нужно централизованное производство программного обеспечения
Нет, спасибо
"Лес рубят - щепки летят".
open server берут деньги за скачивание дистрибутива пара сотен рублей и правильно делают. я платил и не разорился. а то что разработчики годами работают бесплатно это им к психологу надо. брали бы по 1 центу за скачивание хотя бы. к нейросетям запросы идут по токену апи. что мешает сделать такой же доступ к npm. npm раздает платные токены. а потом оплату делит между разработчиками пропорционально количеству скачиваний.
Они не берут. Они предлагают заплатить. Можешь и не платить.
Хорошо бы иметь общественно одобряемый механизм получения каких-то копеек за скачивание - это да. Гитхаб мог бы озолотиться как посредник....
Достаточно большая часть опенсорса пишется за зарплату и некоторая часть за гранты.
Я сам сейчас пишу за зарплату какую-то часть, другую в свободное время.
Один знакомый, мейнтейнер openbgpd, получал гранты от RIPE и живёт на них вполне успешно.
а потом оплату делит между разработчиками пропорционально количеству скачиваний.
Схема легко абузится.
Хватает авторов, которые заворачивают свои же в пакеты в другие свои пакеты по одной или пару строк и выстраивают их в большие цепочки зависимости от друг-друга. Они на них зарабатывают и сейчас, а при оплате за каждое скачивание, просто будут выжирать весь основной бюджет.
А корпорации, зарабатывающие миллиарды на чужом труде, в большинстве своём не чувствуют никакой обязанности это исправить.
Во-первых, у корпораций нет никакого "своего" труда. Есть только труд рабочих. А заработок корпораций — это неоплаченный труд рабочих
Во-вторых, корпорации не могут ничего чувствовать. Чувствуют только люди.
В-третьих, ожидать социальной ответственности от коммерческих предприятий, это наивность граничащая с глупостью. Особенно от корпораций. Единственная ответственность, которая у них есть — перед акционерами.
Мейнтейнерам же, чтобы не выгорать, стоит заняться управлением собственным временем и тратить на любимый проект не более чем комфортно именно им.
А заработок корпораций — это неоплаченный труд рабочих
Это верно только если минус на балансе тоже распределяется пропорционально между рабочими и они несут пропорциональные риски.
Минус на балансе, а так же "движение рынка" или фантазия таролога запросто заканчивается для рабочего увольнением. Является ли этот "риск" пропорциональным? По-моему нет. Но есть нюанс...
Для владельца бизнеса минус на балансе может закончиться банкротством или уголовным срок. Не хотите ли разделить этот риск? Ну например квартиру продать чтобы компания по долгам рассчиталась.
Это было давно. Сейчас - в редких случаях, если бизнес маленький. Подавляющее большинство (со)владельцев бизнеса рискуют только долей в уставном капитале/стоимостью акций и больше ничем. Риски уголовки и административки несут наёмный управляющий(гендиректор) , глав.бух., главный инженер и т.п.
Ну давайте посмотрим новости только за последние пару лет(это первая страница гугла, даже искать не надо):
Основателя ChronoPay Павла Врублевского приговорили к 10 годам колонии
Владелицу ювелирного дома Darvol приговорили к семи годам колонии
Основательницу стартапа Frank приговорили к семи годам тюрьмы по иску JPMorgan
Суд в Сан-Хосе штат Калифорния признал виновной основательницу стартапа Theranos Элизабет Холмс в обмане инвесторов и назначил наказание в виде 11 лет и трех месяцев лишения свободы
Ну так как, вы готовы вместе с владельцем бизнеса сесть на 11 лет? Ну чтобы по справедливости было, это же ваш труд в компанию вложен.
Основателя ChronoPay Павла Врублевского приговорили к 10 годам колонии
За мошенничество - изготовление фиктивных платежек и хищение
Владелицу ювелирного дома Darvol приговорили к семи годам колонии
За мошенничество - обманным путём получила свыше 200 млн
Основательницу стартапа Frank приговорили к семи годам тюрьмы по иску JPMorgan
За мошенничество - завысили в 10 раз количество пользователей перед продажей (цена считалась от количества пользователей - 300к вместо 4.7млн)
Суд в Сан-Хосе штат Калифорния признал виновной основательницу стартапа Theranos Элизабет Холмс в обмане инвесторов и назначил наказание в виде 11 лет и трех месяцев лишения свободы
За мошенничество - это тот самый чудо-стартап который обещал экспресс-тесты крови по цене шаурмы, который раздували даже после того как поняли что реализация невозможна
Во всех примерах рассматриваются провальные решения конкретного человека, в отрыве от организации, и неприменимы в данном контексте
Кроме последнего - там заранее весь стартап был надувательством
Ну так за что еще по вашему должно уголовное дело заводиться против бизнеса? За потери прибыли что ли? Вы сначала пишите что уголовные риски владелец бизнеса не несет, а теперь начинается "ну это решение конкретного человека". Мало того, что это никак не аргументирует вашу позицию, так еще и является тавтологией, потому что любое решение это всегда решение конкретных людей, с именами и фамилиями.
Подавляющее большинство (со)владельцев бизнеса рискуют только долей в уставном капитале/стоимостью акций
Так это тоже огромный риск. Тысячи историй, когда натурально человек вкладывал все свои накопления, взятые кредиты и даже недвижимость под залог в свой бизнес, а бизнес прогорал.
Так что вполне справедливо, кто несет риски, тот и снимает сливки.
Уголовка — для жуликов. Продажа квартиры для покрытия долгов бизнеса, это что-то из 96го года. Современные стартаперы и шаурмячные открывают ООО и рискуют исключительно уставным капиталом. Все остальные владеют акциями и рискуют ими же.
Как раз минус часто именно между рабочими распределяется: "Сложные времена, мы семья, надо затянуть пояса(нет денег на премии)", нелплачиваемые переработки, уволили половину, раскидали обязанности на оставшихся без доплат или с минимальной доплатой...
Зато если прибыль, рабочие её не ощущают никогда или почти никогда.
Заметной отвратительной чертой левацких агиток является то, что они всегда транслируются с позиции превосходства, цедятся сквозь зубы: во-первых во-вторых, категоричный безапелляционный тон, "учение Ленина всесильно, потому что оно верно", и тому подобное. Когда я вижу эти агитки на Хабре (ладно бы на Пикабу, там ЦА соответствующая), то это всякий раз напоминает мне, что интеллект сам по себе никак не характеризует качество и уровень мышления; ресентимент легко умножает на ноль способность к критическому мышлению.
Во-первых, у корпораций нет никакого "своего" труда. Есть только труд рабочих. А заработок корпораций — это неоплаченный труд рабочих
Представляю, как удивится автомеханик, который чинил вашу машину, когда узнает, что ваша машина теперь частично принадлежит ему, так как в ней содержится его труд. Остальные же доли владения распределены между сборщиками на заводе, уборщицей в цеху, охранником на проходной, и главным бухгалтером.
Вашего в автомобиле ничего нет, вы его незаконно изъяли у рабочих посредством спекулятивной торговли с корпорацией-автопроизводителем.
Во-вторых, корпорации не могут ничего чувствовать. Чувствуют только люди.
Снег растаявший - он вода; Расстаются, когда ложь; Засыпают, когда тьма.
В-третьих, ожидать социальной ответственности от коммерческих предприятий, это наивность граничащая с глупостью. Особенно от корпораций. Единственная ответственность, которая у них есть — перед акционерами.
Как хорошо, что вы развенчали наивность граничащую с глупостью Господи сколько пафоса, я не могу)))
Окей, а перед кем должна быть ответственность у менеджмента предприятия, если не перед акционерами? Перед вами? Директор должен вас усыновить и сделать целью своей жизни ваше личное благополучие?
Звучит интересно, но сперва стоит уточнить, перед кем вы сами несёте ответственность, помимо себя и своей семьи. Почему бы вам самому не взять на себя ответственность за корпорацию, не начать отвечать личным имуществом по её обязательствам, а? Вы так громко разоблачили социальную безответственность корпораций, что обществу теперь необходим пример, а как надо правильно делать! Иначе грешным делом закрадётся мысль, что где-то уже звучали такие речи, был один такой оратор, Полиграф Полиграфович звали)
Представляю, как удивится автомеханик, который чинил вашу машину, когда узнает, что ваша машина теперь частично принадлежит ему, так как в ней содержится его труд
Ваш заряд иронии, к сожалению, ушёл в молоко. Я обратил внимание автора на ложность противопоставление сотрудников и не-сотрудников корпорации, а не то, что вы себе представили.
Для справки, автомеханик обменял плоды своего труда (ремонт машины) на плоды моего труда (выраженные в деньгах). Соответственно, моя машина не принадлежит ему ни частично, ни полностью
Ну а вы обменяли плоды своего труда (закрытая задача), на плоды труда владельца компании (выраженные в деньгах).
Если не передергивать, то в большинстве случаев открытие бизнеса/стартапа это часто вложение денег в возможую и не гарантированную будущую прибыль, а это либо рисковать своими деньгами, либо инветсоров готовых рисковать своими.
Если не передёргивать то:
а) рисковать — это не труд. Из риска не получается никакого продукта
б) конкретно компания на которую я работаю принадлежит инвестиционному фонду, который принадлежит некоему гражданину, который унаследовал свой капитал. Сам гражданин не работает ни в инвестиционном фонде, ни в компании. И там, и там руководят наёмные управленцы, которых контролируют наёмные же члены советов директоров. Таким образом, владелец не ударив палец о палец удержал 10% результатов моей и моих коллег работы.
а) ну так риск в данном случае - это либо бесплатный труд, взамен отложенной и негарантированной оплате этого труда, либо же оплата труда других, взамен на надежду на то что получившийся труд перекроет и эти затраты и может что-то сверху останется. В любом случае есть и труд и результат труда, только тот кто организовывает и оплачивает этот банкет закономерно надеется хоть какую-то прибыль и для себя получить.
б) который унаследовал свой капитал - это отлично, значит результат труда тех, от кого он унаследовал не помножился на ноль.
Ну а конкретно в моём случае, у меня небольшое ООО где я сам учредитель и директор. Вне зависимости от моего желания и доступных средств у меня все время висят обязанности перед бухгалтерией, которая обязательна и нужно стабильно оплачивать, перед владельцем юридического адреса, который обязателен и нужно стабильно оплачивать, государство тоже хочет свою часть в виде обязательных платежей, которые не привязаны к доходу, не говоря уже про прямые налоги. Также и каждый нанятый сотрудник ожидает оплату своего труда вовремя и стабильно. Их всех не интересует откуда я возьму на это деньги, задерживает ли контрагент оплату проделанной работы или нет, разорвёт он контракт или нет и еще от других тысячи и одной мелкой и не очень проблемы. Это все вполне достойно удержания своей части общей прибыли компании. А если в ходе многолетних мучений это все стабилизируется и разрастется и сможет работать без прямого участия, то удержания скромных 10% в виде дивидендов не считаю чем-то ужасным. А если ещё это умудрится дожить до моей пенсии, то передать это своим детям.
который унаследовал свой капитал - это отлично, значит результат труда тех, от кого он унаследовал не помножился на ноль
Это замечательно. Но всё-таки сам гражданин-наследник получил плоды труда моего и моих коллег просто так или в замен на свой собственный труд?
Тезис про то, что "риск — это труд" на столько прекрасен, что не нуждается в дополнительных комментариях
Тезис про то, что “риск — это труд” на столько прекрасен, что не нуждается в дополнительных комментариях
Вы наверное все остальное пояснение пропустили мимо ушей. И да, трудиться сейчас бесплатно ради негарантированной прибыли в будущем - это риск.
Это замечательно. Но всё-таки сам гражданин-наследник получил плоды труда моего и моих коллег просто так или в замен на свой собственный труд?
Он получил труд своих предков в наследство, а разбазарит ли он его или сохранит или приумножит - это уже его труд. Как минимум найти толкового директора и следить чтобы он принимал правильные решения.
Но вы там не работаете как рабы за бесплатно, а получаете деньги за свой труд. Если вам и вашим коллегам такая сделка воспринимается не справделивой, то никто не мешает вам скооперироваться и корпоратив организовать или быть учредителями в равных долях в своей ооо и делить всю прибыль в равных долях.
Таким образом, владелец не ударив палец о палец удержал 10% результатов моей и моих коллег работы.
О как ! "Удержал" (с) (ТМ) и точная цифра есть :)
Прежде чем воспроизводить нелепые агитки (причём ещё не на вас рассчитанные) надо бы как-то обосновать, что там и кто у вас "удержал". Вы достигли соглашения на продажу своего труда, а вам не заплатили и 10% "удержали" ? Это преступление и тут надо в соот. инстанции обращаться.
Или вам кажется, что "зарплату" надо больше маловато будет (с) ?
Вообще-то тот кому вы продали свой труд, выдал вам из своих средств, так подло им унаследованных, а скорее всего кредитных, теперь ваш говнокод с нейрослопом драгоценный труд и труд таких же коротышек надо кому-то ещё продать, и далеко не факт сколько там процентов Wertschöpfung будет и будет ли вообще, но это я так понимаю не ваша забота, вам уже "не доложили мясо в миску" и надо выступать за 10% :)
Ваш труд без "унизительной эксплоатации" никак не конвертируется в магазине в колбасюню или в одежду для детей или в платежи за дом или квартиру, без тех самых "жадных корпоратов" у которых вроде как "своего труда нет", но без них вам придётся жить (недолго) собирательством и охотой и, да, вы всегда можете стать таким же "мироедом" оформив за два дня ИП и выклянчив кредит, попробовать эксплоатаировать коротышек "удерживая" у них труд - очень отрезвляет и предотвращает транслирование всяких глупостей про то что там кому принадлежит и что у кого есть :)
Так себе статья, люди сами себе хобби преобразуют в смысл жизни и страдают. Чтобы спастись от выгорания на бесплатной и необязательной работе - просто прекрати ее делать.
Если хочешь монетизации - пихай куда можно призывы, либа при запуске в логи писать должна про то что ты один и хочешь кушать. Или можно сделать новую лицензию, что компании с доходом больше X$ не могут пользоваться библиотекой без доната/спонсорства в размере 0.001 от прибыли, но не больше Z$. Для гигантов вроде openssl точно бы сработало.
Когда я делаю pip install, то не знаю кто написал либу, выгорел он, родился у него ребенок или автор умер. Это в интересах автора донести мысль, что это для него не хобби, а работа.
Ну, а если такое же соображение применить, например, к учителям? Типа, не хотите выгорать не малооплачиваемой и неблагодарной работе — уходите в бизнес.
Учителя так и делают в целом - общедоступное школьное образование скатывается все ниже и ниже. Качественный уровень подготовки теперь обеспечивают репетиторы. К чему это приведет - не проблема учителей, ушедших из школ.
Очень нравится модель с монетизацией каждого PR - нужна фича - донатим по чуть чуть больше на ее верификацию, и внедрение вне очереди среди прочих или в принципе.
Конечно, есть риск, что CVE не будут оплачивать, ведь фичи нужны маркетологу быстрее..
Зависит от CVE. Есть такие, что могут легко заруинить весь бизнес и на такие выделят приоритетные ресурсы.
А есть примеры ее успешного внедрения?
А то у меня есть опыт подобного, но люди готовы донатить какие-то копейки типа сто рублей максимум. Если пытаться оценивать это по рыночной ставке разработчика то там никогда не наберется на что-то сложное, если только у проекта не миллион активных юзеров (именно тех кто в код лазает, а не просто использует). И в итоге по факту все равно неоплачиваемая работа, только пользователи получают еще моральное право еще сильнее давить: "ну мы же заплатили, программировай давай!".
Что-то подобное когда-то видел у Joan -система бронирования, у них было в разделе для желающих добавления функций типа формы для голосования, и оценка в деньгах для внедрения "побыстрее". Думаю, тут может быть что-то типа "я добавлю это за 1000 долларов, либо проверю чужой пуллреквест за 100". Этакий вебкам для разработчиков, с тип меню и токенами))) Тут фишка скорее именно в том массовости донатов по чуть-чуть.
Массовость донатов по чуть-чуть лучше бы при скачивании была. Скачал - оплати несколько центов. Скачали десять миллионов раз и некто получил под миллион долларов...
Сейчас условный гугл скачал бы один раз и положил бы к себе в свою монорепу. По факту пользователей миллиард, а скачивание одно. Если доводить идею до конца, то это всё превратилось бы в огораживание типа app store под контролем пары корпораций. Оно точно надо?
Так и пускай потом и мейнтейнит.
Можнож и скачать, а потом на торрентах раздавать.
Вот только мне, и уверен миллионам других людей проще взять нормальное у авторов. Особенно если таков ОБЫЧАЙ и есть лёгкий способ оплатить эти десять центов.
Что-то надо. То как есть скоро кончится. Люди смертны, а в новых поколениях все меньше желающих за идею страдать.
Мне почему-то кажется, что ничего не поменяется до серии кризисов. И, честно, я не верю в модель "за скачивание" - как только это появится условный npm добавит кеширующий режим и ручеёк оскудеет. Скорее будущее за поддержкой от фондов как в случае с rust. Основную прибыль от open source извлекают крупные компании - хочется мотивировать их поддерживать такие фонды
Лучше бы от множества людей реальных зависеть, чем от крупных компаний. Люди руки выкручивать не смогут.
От корпоратов ждать совести бесполезно, у них KPI на урезание костов. Они скорее наймут десять эффективных менеджеров для оценки рисков, чем задонатят разработчику либы
А теперь ИИ прочитали и запомнили тонны этого бесплатного опенсорса и теперь выдают за "своё" по соточке. Опенсорсу хана имхо.
Проблема в самом существовании "мейнтейнеров" - единоличных владельцев, которые взваливают на себя всю работу но при этом имеют всю полноту власти и всю ответственность.
Если б передача полномочий была не исключительным событием (не сильно отличающимся по степени эффекта от создания форка), а происходила регулярно и ненадолго - то появились бы нормальные механизмы контроля власти новых "временных управляющих".
Людей, готовых безвозмездно вкладывать годы и годы в чужой проект - мало, а вот тех, кто готов потратить на это несколько недель - найти должно быть достаточно несложно.
А как среди этой толпы временных управляющих вычислять недобросовестных или некомпетентных?
Иметь много, для принятия изменений в код надо вердикт от нескольких, доверие каждому определяют конечные пользователи.
Именно такое и было с xz, и как видим, не помогло.
Где вы столько их возьмёте :)? Ну т.е. сейчас проблема, что нету и одного, а тут внезапно несколько возникнут из ниоткуда.
Никто чужой проект тащить не станет. Ни временно ни постоянно. И если вы лишите проекты "хозяев", то они в лучшем случае загнутся.
Единственная причина почему люди продолжают это всё тащить - внутренняя ответственность за созданную инфраструктуру. Мы в ответе за тех, кого приручили. И это единственная достойная мотивация с которой всё это жизнеспособно.
Их нет потому, что требуется бесплатно выполнять гигантский объём работы - только на то, чтобы войти в контекст новой программы, уходит по несколько месяцев.
Но совершенно необязательно заставлять тащить весь проект.
Вот нашёл я баг в чужой программе, исправил у себя и засабмитил правку к паре файлов. После этого я буду не прочь подписаться на новые правки к этой части программы и проверять их в течение следующей пары месяцев, оставляя к ней мой криптографически подписанный вердикт "годно" или "вредно" с комментариями. Таким образом будет формироваться история и репутация моему аккаунту, и её можно будет включить в моё резюме при поиске работы - это стимул выполнять эту работу.
При этом одной подписи будет недостаточно для включения в массовый релиз, и конечные пользователи могут набирать себе релиз из набора патчей, одобренных достаточным количеством пользователей или одобренный теми, кому они лично доверяют.
Мой вариант особенно актуален сейчас, с обилием низкокачественных ИИ-коммитов, которые физически невозможно проверить в одиночку.
К сожалению, чтобы работало кто-то должен разбираться "во всём". Набора из лебедя, рака и щуки недостаточно для передвижения :(.
В целом механизм pr ведь так и работает, можете их предлагать. Но вот одобрять их или нет должен всё-таки решать кто-то, кто понимает какие можно, какие нет, где что сломается, какова политика и цель итд итп.
Собрать из патчей - это конечно было бы здорво, если бы работало. В реальности одни патчи требуют другие, третьи ломают первые если нет четвертых итд итп. Не получается толком собирать из фич готовый продукт. Да и ревьювить каждый патч и его автора не дело конечного пользователя. Я как представлю, что мне надо выбрать из десятка тысяч патчей правильные и неправильные.... Да проще самому всё написать тогда :).
Низкокачественные ии pr надо просто как-то не допускать. Тут думаю да, имеет смысл какую-то историю по предлагаторам вести и как-то их стремительно пессимизировать. Боюсь докатимся до того, что придется платить чтобы ваши первые pr рассмотрели... Идея как-то обрабатывать нейрослоп порочна по сути. Нагенерят столько, что никакой помогайки не хватит. Надо как-то технически и организационно "давить".
Я как представлю, что мне надо выбрать из десятка тысяч патчей правильные и неправильные.
Нет, ваша задача выбрать из сотни микро-проверятелей то подмножество, которому вы доверяете, и сразу получить все патчи, что одобрены этими людьми.
К сожалению, чтобы работало кто-то должен разбираться "во всём".
Для достаточно больших проектов это физически невозможно.
Необходимо только чтобы в каждый момент вся программа полностью покрывалась текущими проверятелями с достаточной степенью избыточности.
Но вот одобрять их или нет должен всё-таки решать кто-то, кто понимает какие можно, какие нет, где что сломается, какова политика и цель итд итп.
Для этого почти наверняка достаточно знания той части программы, которая изменяется этим патчем. Те, кто недавно вносили изменения в эту часть до этого как раз должны обладать им.
А как я могу им доверять ? Я с ними в горы не ходил.
Это такая огромная точка отказа, что огого. Это можно будет не в один репозиторий внедрить что-то, а в множество...
А почему ты доверяешь текущим мейнтейнерам?
Ты доверяешь не самому проверяльщику, а его репутации, заработанной им за годы и годы на разных проектах. Тут то же самое, только репутация зарабатывается на многих проектах, а не на этом конкретном.
то можно будет не в один репозиторий внедрить что-то, а в множество...
Поэтому и требование проверки несколькими. Сговор 3+ разных людей с 5+ летней историей коммитов в разные проекты делает вероятность внедрения крайне малой - она возможна только при массовом угоне их аккаунтов.
Потому, что часто их продукт дело их жизни. Их продукт. Не продукт дяди васи в который они пришли ненадолго, а то что они делают.
Мне вот интересно, как вы реальность этих людей проверите. Так то и сто аккаунтов можно одному контролировать. Хоть с десятилетней историей. И да, даже нанять людей чтоб их вели всё это время....
Если вы не прочь так делать - почему вы еще так не делаете?
Потому что нет ничего из вышеперечисленных механизмов.
- ни способности подписать свой коммит криптографически, ни способности отслеживать все коммиты аккаунта на протяжении многих лет и проектов, ни возможности выбрать аккаунты и оценить их степень доверия для пользователей...
Подписывать через GPG можно: https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits
Коммиты по логину фильтровать можно: https://github.com/torvalds/linux/commits?author=torvalds
Степень доверия - штука крайне субьективная, и пользователи софта обычно не являются разработчиками. НО если сильно хочется - можно с помощью какого-нибудь AI оценить активность в пулл-реквестах.
Нормальных не найдешь.
Верным признаком подходящего человека будет попытка тебя с лестницы спустить после подобного предложения.
А вот вредоносных и просто дураков будет толпы желающих.
Даже если платить очень не факт что это сработало бы.
Проблема не в том, что у нас толпы мейнтейнеров и мы их можем ротировать, их и без ротации не хватает...
Эм... Не понял, о чём вы, о какой "единоличности" в опенсорсе то? Форкнул - и дорабатывай в любом направлении, автор оригинала тебе не указ.
Я делал опенсорсный скрипт, получил 200 звезд на Гитхабе, но сразу предупредил, что кому надо - форкайте и пользуйтесь. Опен сорс - это как научная статья, просто показывает путь.
то, что кто-то решил, что опен сорс кому-то обязан поддерживать качество - ну, это его выбор. Я не знаю, откуда это проросло. У ученых не требуют, чтобы их статья регулярно обновлялась и содержала свежайшие апдейты.
Предлагаю так же относиться к опенсорсу. Он показывает путь, показывает решение. Возьмите его за основу. Если у вас тоже проект для исследования путей - вам должно быть без разницы качество его кода. Для первых шагов, для доказательства концепции, для исследования путей сойдет любой уровень.
А если вы компания с бюджетом и вам нужна надежность - ну, просто возьмите показанный путь и сделайте лучше, в чем проблема?
“Ты исправь - нам надо!”, “Ты добавь - нам будет полезно!”, “Ты напиши побольше примеров - станет больше пользователей!”, “Подумаешь, объяснил в сотый раз то, что написано в README, не буду я свое время тратить на чтение - не будь таким токсичным!” - типичный набор “заходов” юзверов моего опенсорса за последние 10 лет :)
требуя передать репозиторий «сообществу» — которое, разумеется, никто из них не представлял.
Хуже — это лучшие люди города!
Ну вот у меня на гитхабе библиотека. >44 млн скачиваний, >1300 звёзд.
Один раз кто-то хотел было задонатить мне 500 баксов. Я его развернул, ибо мне налогового консультанта нанять, чтобы провести донат, дороже будет стоить.
Если он уйдёт — никто не придёт.
А вот это утверждение на чём основано? Есть прецеденты? Откуда такая уверенность?
Ну если баг фикс хотя бы полгода не выходит, то скорее всего два варианта: код идеален (нет) или проект заброшен. В проде это автоматически отказ. Самый главный клиент опен сорс это корпорации. Если сложить 2+2 то понятно о чем автор.
Нет, погодите, вопрос то иной. Есть много умерших проектов, факт. Но есть ли прецеденты, что было заброшено нечто фундаментально важное для всей индустрии и никто не подхватил?
Обычно же либо кто-то подхватывает проект, либо... правильно, все постепенно переезжают на другой проект, поддерживаемый. Если какой-то проект достаточно важен для индустрии - поддержка найдётся. А если в принципе не принципиально было какой из нескольких подобных юзать, просто этот был удобен, что у него есть бесплатная поддержка за счёт автора-идеалиста. Закончилось? Переедем на другой. Никакой драмы, никаких фатальных последствий для индустрии.
Система работает. Просто она работает за счёт того, что мейнтейнеры терпят.
Хотите изменений? Перестаньте терпеть. Не можете тянуть - бросайте.
Зависят другие - это их проблема, что не предусмотрели план Б.
Корпорации не платят - потому что вы отдаёте бесплатно.
Пока вы тащите - ничего не изменится.
Система реагирует только на цену. Сделайте так, чтобы “бесплатно” стало дорого.
PS Система меняется через кризис, так создайте его.
Sindre Sorhus - вообще удивительный персонаж.
Для него open source это хороший бизнес по продаже рекламы в репозиториях, а большинство модулей часто содержат кучу конфигов, тесты и др (одним словом тот самый хлам образующий вес вашего node_modules) при том что реального кода там 1-2 строки - одна импорт другой зависимости (тоже его), а вторая ее вызов и эта зависимость ничем не лучше и тоже содержит 1-2 строки. К примеру зависимость is-email-like содержащая его же пакет email-regex или например is-regexp.
Он отслеживает то как его зависимости используются в других крупных репозиториях и старается чтоб его зависимость не заменили какой-либо другой (заменить = потерять трафик скачиваний). Если вы создали PR за замену / исключение его зависимости - ждите его присутствие его там.
Это автор почти всех пакетов is-* и прочего самого натурального рака экосистемы с колоссальным вектором атаки и создает огроменные цепочки своих бесполезных пакетов размазывая по ним трафик.
Если я вижу что пакет имеет этого автора - первое что стоит задуматся, точно ли он вам нужен, и если да то вносить его в проект исключительно копированием, хотя и код там часто мягко говоря не лучшего качества.
Я вот сам работаю полный рабочий день и при этом умудряюсь разрабатывать примерно десяток собственных свободных проектов с открытым кодом. Большую часть приходится точить самому, а часть мне помогают либо случайные энтузиасты, или один со-разработчик. Все эти проекты пилю чисто как хобби, и потому что нужны самому. При этом за них тоже не получаю никого финансирования. Либо жалкие копейки эпизодически, либо 10 тысяч одноразово, чтобы поддержать разработку одной из моих библиотек.
В больших проектах я предпочитаю не использовать всякие менеджеры зависимостей (Conan, npm, pip, и т.п.), а делать копии выпусков используемых библиотек к себе на репы и собирать их исходников целиком как подмолули. Это надо затем, чтобы:
Ничего не сломалось, если вдруг основной проект что-то сделает не то или стухнет.
Возможность вносить свои правки. Например, исправить баг или применить заплатку сразу до следующего выпуска. Или починить сломанную совместимость (чаще всего с Windows XP и даже 98, ибо проекты целятся под работу на ретрокомпьютерах, а не только под современное).
Возможность собрать проект здесь на месте с минимумом установки внешних зависимостей. Но возможность стыковаться с системными аналогами я сохранил, чтобы собирать компактные DEB-выпуски, и как исключение, собираю свои, если в системе библиотеки слишком старые.

Bus factor = 1: 22 критичные для индустрии библиотеки, которые держатся на одном человеке