Краткая суть ситуации: наш соотечественник fafhrd91 на протяжении 3 лет практически самостоятельно (см. кдпв) писал actix-web
— один из популярнейших крейтов в инфраструктуре раста, лидер в большинстве различных бенчмарков, и за это время подвергался как минимум трём волнам гонений за "неправильное использование раста". После последнего раза автор психанул, и перенес репозиторий к себе в аккаунт с пометкой "Планирую скрыть репозиторий". Конечно, куча людей сразу наделало зеркал и бекапов, но на мой взгляд это не сильно исправляет ситуацию.
На месте репозитория автор оставил единственный postmortem, который я ниже и цитирую целиком:
Another day, another "unsafe shitstorm”, I guess I get used to it.
It is interesting how easy to move comment out of context and how hard to comment with very clear intention (especially if you are not native speaker) What was the patch? It was very strait forward, simple, uncreative change, intention was just to remove unsafe not to fix existing code. I believe software development is one of the most creative work we do, and creativity is part of why we love software development, why it is fun. Especially if you combine it with real world projects constraints. “creative constrains” could be source of very interesting solutions. Being on the edge of your abilities is super fun. So uncreative change felt boring (oh! And author gave up copyright claims for that patch (a bit irony and sarcasm)). I’ve never used unsafe unintentionally, I use it because I believe usage is safe. There was no any malicious intentions. I believed it held mutable aliasing invariant and I was very happy that someone found real problem. I wanted to solve the problem, just with a bit of creativity. And use RefCell solution only if it would be not possible to solve it with any other way. Btw, I like the solution I found, it is in master and solves the problem at least one from the issue. If you want to push boundaries you have to touch this boundaries and sometimes you push too hard.
Be a maintainer of large open source project is not a fun task. You alway face with rude and hate, everyone knows better how to build software, nobody wants to do home work and read docs and think a bit and very few provide any help. Seems everyone believes there is large team behind actix with unlimited time and budget. (Btw thanks to everyone who provided prs and other help!) For example, async/await took three weeks 12 hours/day work stint, quite exhausting, and what happened after release, I started to receive complaints that docs are not updated and i have to go fix my shit. Encouraging. You could notice after each unsafe shitstorm, i started to spend less and less time with the community. You felt betrayed after you put so much effort and then to hear all this shit comments, even if you understand that that is usual internet behavior. Anyway, removing issue was a stupid idea. But I was pissed off with last two personal comments, especially while sitting and thinking how to solve the problem. I am sorry for doing that.
It’s been three years since I started actix project (time flies). I learnt a lot, i meet new people, I found language that I really like and want to use it fulltime, I found fun job. But damage to the project's reputation is done and I don’t think it is possible to recover. Actix always will be “shit full of UB” and “benchmark cheater”. (Btw, with tfb benchmark I just wanted to push rust to the limits, I wanted it to be on the top, I didn’t want to push other rust frameworks down.) Everything started with actix, then actix-web and then actix-net. It took a lot of time to design api and architecture. Each of this projects was rewritten from scratch at least 4-5 time. I hope I expanded some boundaries and found few new patterns, I hope other developers will check source code and find inspiration to move even further. Nowadays supporting actix project is not fun, and be part of rust community is not fun as well.
I am done with open source.
P.S. I moved actix-net and actix-web project to my personal github account. I will make decision during next couple days what to do. I don’t want to see the project becomes ghost of what it was. Maintainers must understand how everything work, but don’t anyone who does and those who could are busy with other projects. At the moment I am planing to make repos private and then delete them (will remove benchmarks as well), unless others suggest better ideas.
Everything has to come to the end. It was fun trip but now is time to move on. Life should be fun.
Как это выглядит с моей стороны: очередной безопасник (член команды RustSec) создал issue "ваш код содержит UB", автор попросил привести пример который триггерит его, безопасник такой код предоставил, после чего автор исправил использование публичным апи приватного так, чтобы UB не возникало. На вопрос "почему бы не убрать unsafe" автор ответил, что это может иметь последствия для производительности, поэтому сейчас он просто фиксит симптом, чтобы подумать, как это исправить без просадки производительности (напомню, что по рейтингам techempower actix-web
является самым быстрым), или неудобного апи (оно у актикса на удивление хорошее). После чего на него обрушился вал обвинений в том, что он неправильно пользуется языком, и вообще, не должен никогда на нем писать.
Итог — удаление проекта, окончательное выгорание автора и нежелание иметь дело с неблагодарным opensource впредь:
В поддержку автора написали авторы кортимы (Клабник, Лодочник, Раф).
Для меня ситуация очень неприятная. У нас на проекте используется актикс-веб из-за уникального сочетания скорости, удобства и всё-таки надежности. А теперь основной ментейнер покинул проект, и если за 3 года не нашлось никого кто написал бы больше 3000 строк кода, то откуда такой человек найдется сейчас?..
Upd. Сохраненная переписка (оригинальный issue был удален автором репозитория): https://gist.github.com/pcr910303/d7722a26499d0e9d2f9034a06f2433b4
Upd. 2
Я [Kai Ren] подрезюмирую, что мы имеем на данный момент по вопросу.
- На данный момент нет никаких "их" и "наших" форков. И никакого core team actix тоже, по факту, нет. Основные мейнтейнеры из actix не имеют пока никакого внятного видение/решения проблемы. То есть ситуации actix vs fork не намечается ни в каком виде (разве что Николай через какое-то время решит продолжить своё дело в противовес всем). Core мейнтейнеры actix'а, тем не менее тоже не согласны с "закатом эпохи" и скооперировались в Discord канале (ссылка есть в закрепе) для обсуждения конкретных действий по ситуации. Под core мейнтейнерами я подразумеваю JohnTitor, Dowwie, Mitsuhiko (Armin Ronacher) и Robe Ede.
Других инициатив по проекту, если они и есть, то пока не видно и не слышно нигде (ни в Reddit, ни на Rust forum, ни в чатах actix Gitter, ни соответствующих issues GitHub).
- Если Николай не воскресит проект (на что надеяться глупо), то все заинтересованные в вопросе (core maintainer'ы и наша группа) согласны, что дальнейшим движением должен быть хард-форк проекта.
- Какое при этом должно быть видение проекта, каковы его приоритеты и вектор движения. Каково название будет иметь новый проект, пока ничего не решено точно. Это будет точно обсуждаться сегодня в Discord'е. Из то, что пока точно удалось понять, maintainer'ы не всегда были довольны линией Николая и вроде как склоняются к safety over performance парадигме. Но это не точно, надо всё это ковырять и обсуждать.
- @sovasergey подсейвил все репы actix под временным рабочим название cathodic на GitHub.
Upd. 3: автор наконец ответил на сложившуюся ситуацию, он возвращает код в оригинальный репозиторий и передает владение одному из ментейнеров:
I realized, a lot of people depends on actix. And it would be unfair to just delete repos. I promote JohnTitor to project leader. He did very good job helping me for the last year. I hope new community of developers emerge. And good luck!
sultonaka
М-да-а. За что боролись, на то и напоролись. Жалко…
pavelkolodin
Непонятно, почему нельзя было в ответ набросить и разжечь; чувак показал, что RustSec-тело его зотроллило. Ответить «в интернете кто-то неправильно использует раст? Бывает, не плач» там нельзя было?
JekaMas
Культура у товарищей другая. Не принято так.
pavelkolodin
Непонятно, почему культура ответа обязана быть выше культуры запроса.
chlovek
NordicEnergy
Зачем вообще тратить свое время, силы и нервы на ответы всякому дерьму? Вообще это типичное комьюнити — все знают «как лучше» и «как надо», но никто ничего не будет делать.
Shchvova
Думаю где-то с такими мыслями автор и закрыл свою репу, чем не вариант.
6opoDuJIo
Глупо, потому-что автор наказал не тех, кто ему насрал в закатки, а всех остальных
Am0ralist
Ага, лучше бы он не закрыл репу, а оставил её висеть, не отвечая на найденные ошибки?
erlyvideo
да
Am0ralist
Чем? Тем, что люди и дальше будут использовать проект, в котором будут ошибки, а даже если появится форк, то ему придётся бороться с старой популярностью?
А так, все кто использовал поставлены перед фактом, что программы больше нет. Они могут скинуться и организовать форк, который будет поддерживаться большим количеством людей, но при этом исходный код исходной программы у них остался.
И да, с учетом, что человек год искал замену — это самый простой способ обратить внимание всех.
PS. И да, у него вроде как прямо написано, что удалит, если ему не поступит других интересных предложений. Внимание, вопрос…
EviGL
Наказать тролля напрямую довольно сложно. Ему только по кайфу бурная реакция. А отсутствие реакции тоже ничего ему не сделает — у него битва на десятке фронтов одновременно.
Наказать весь класс за проступки одного идиота — несправедливо, но, в итоге, эффективно. После резонанса вроде вот этого, люди будут чуть больше задумываться, прежде чем затроллить человека, делающего для них бесплатную работу. А если индивидуум найдётся, его самого тут же закопает в комментариях адекватное коммьюнити.
sumanai
Если тролль конечно вообще пользуется этим софтом.
Singaporian
А вы за него вступились? Open-source диктует границы собственности, а значит и ответственности. Правильно наказал. Не заслужили.
Ничто не мешает прямо сегодня написать автору и убедить его в том, что его труд нужен и ценен. Процесс обратимый. Можно даже организовать сбор средств на поддержку проекта — это вещественное доказательство нужности. Я бы скинул (сам я не пользователь, но хотелось бы поучаствовать в умывании хейтера).
iskateli
Тут на хабре тоже так часто бывает, статья интересная, заходишь в комментарии, предполагая увидеть такое же интересное обсуждение, а там на заминусованный комментарий ответили более 500 раз, вот и пообсуждали… нде.
DarkWolf13
неудобные комментарии иногда минусуют вместе с их автором… а так да, согласен автора все настолько допекли, что даже холодный невкусный чай могли сыграть окончательный аккорд.
AlexanderS
Комментарии-то ладно. Это всем знакомо и уже должен иммунитет выработаться или по крайней мере философское отношение. Но я на прошлой неделе выложил статью по апгрейду nextcloud — мало того, что рейтинг статьи в первые 5 минут стал отрицательный, так мне в карму минуса прилетели! В карму!!! На IT ресурсе, за техническую статью-мануал!!! Получается, что хабре полурекламные простыни, которые теряют актуальность в первую же неделю, теперь оцениваются приемлимее старых добрых мануалов по консольному линуксу. Естественно, в комментах отметились все профессионалы, которые nextcloud через докер ставят, а автор или этого не знает, или ему делать нечего. Вот я после обеда посмотрел на статистику и, вот честно, тоже мыслишка-то заворочалась: «А в будущем зачем писать-то?» Я понимаю, когда мне за графоманию прилетало. Но тут как-то я был слегка обескуражен. Не понимаю молодежь… старею что-ли?)
Vlad800
Можно сделать такой механизм, что после размещения статьи с неотрицательным рейтингом, блокируется возможность минусовать в карму ее автора в течении 24 часов. Ну то есть как-то это продумать…
AlexanderS
Так для того, чтобы понять какой рейтинг будет у статьи она сама должна как минимуму 24 часа на главной «отвисеть». Мало того тут и суток может быть мало. Вот сейчас, спустя неделю, я могу констатировать, что статья получилась: рейтинг у ней звёзд явно не собирает, карма поменялась незначительно (кстати, после моего вышеприведённого коммента мне неожиданно её поправили, благодарю всех отметившихся — не скрою, приятно), комментариев явно не сотни, но есть один важный фактор — сто человек её добавили в избранное. Сто пользователей посчитали эту статью полезной настолько, что решили её себе сохранить или вернуться к ней позже и внимательно ознакомиться. Для меня это достаточный фактор, для понимания, что материал востребован, писать стоит.
Тема кармы на хабре вещь больная. И вроде как с ней что-то делать надо. Но как именно до конца непонятно. Это кажется что всё просто. Но если сесть и подумать о качестве и количестве моральных поощрений и наказаний, балансе сдержек и противовесов, заработке администрации, то получается всё не так однозначно, ясно и понятно.
Vlad800
Это было бы хорошей защитой для авторов востребованной статьи от слива кармы.
Ну или другой вариант — на 3 дня блокируется доступ к карме автора из статьи и его комментариев под ней (а также в профиле автора не отображаются все его комментарии)
Как и везде.
AlexanderS
Идея отложенной самомодерации вроде бы выглядит привлекательно. Только есть два момента.
1) «Расчёт кармой» как правило идёт в день после публикации. Потом всё экспоненциально падает. Уже даже через сутки людям будет лень искать статью чтобы за неё влепить человеку минус или плюс. Это негативно скажется на объективной оценке.
2) Получается после публикации любой статьи человек получает супериммунитет на три дня и 72 часа может как угодно развлекаться на ресурсе. Вот плоскоземельщики рады будут — так их сливали где-то за день. А через 71 час, кстати, можно выложить вторую часть и продлить веселье до конца недели)
Vlad800
Так в том-то и дело, что доступ к карме (части профиля) автора статьи должен быть закрыт только из самой статьи. А если переход идет из его комментария к какой-то другой статье — то минусовать можно.
Здесь просто вопрос — как сделать так, чтобы профиль автора отображался по-разному: для тех, кто перешел из его свежей статьи (минусовать карму нельзя) и из произвольного комментария вне её (минусовать можно).
AlexanderS
Для хейтера будет не проблема ознакомиться со статьёй и потом кинуть минус из произвольного комментария. Я тоже размышлял над сложными путями. Чем сложнее — тем понятнее становилось, что работать оно нормально не будет)
Vlad800
А как он найдет этот «произвольный комментарий», если список всех комментариев автора в его профиле будет закрыт на 3 дня?
mayorovp
Гуглом, например.
AlexanderS
Да даже гуглом не надо: открываем профиль, переходим на публикации и открываем статью какой-нибудь двухлетней давности — там точно в комментариях к статье можно будет найти комментарий автора)
Vlad800
Ну так если путь такой: профиль -> статья -> комментарий -> профиль -> карма, то последний шаг должен быть заблокирован. Не думаю, что это нереально сделать.
Проверил, первые выдачи Гугла ведут на профиль пользователя. Значит действуем тем-же способом (блокирование кармы, если в пути был профиль).AlexanderS
По запросу "@user site:habr.com" гугл на первой же странице выдает комментарии пользователей в других постах. Открываем ссылку, подводим мышку к аватарке и нажимаем минус.
Vlad800
Ок. Тогда надо также блокировать минусование из комментариев, размещенных ранее статьи. Независимо от пути к ним. На 3 дня…
AlexanderS
А так же блокировать миносование из размещённых ранее статей) То есть, по сути, тотально запретить минусить человека на трое суток. Ну и возвращаемся к моему вчерашнему комменту в 22:23, п.2.
Vlad800
Вот так, постепенно отсечем всё лишнее…
AlexanderS
«user site:habr.com\post» -> любая ссылка на статью требуемого автора -> минусим прямо из статьи.
Vlad800
Ну так из статьи напрямую же нельзя. Надо перейти в профиль автора. И если переход идет из старой статьи или старого комментария, то блокировать минусование кармы.
Grey83
ctrl+c, ctrv+v адреса в соседнюю вкладку практически в любом браузере и блокировка не работает
Vlad800
AlexanderS
Если у автора одна-единственная статья — то да, нельзя. А если у него их уже десяток? Переходи в любую из поиска и минуси на здоровье. Или предлагается это запретить? Ну ок. Но тогда это вышеразбираемый супериммунитет на трое суток.
Vlad800
Вообщем, надо оставить блокировку только при соблюдении двух обязательных пунктов: переход из новых комментариев + из комментариев не под последней его статьей (то есть из любой другой, хоть новой, хоть старой).
Так чтобы заминусить из произвольной статьи, все равно надо же в профиль перейти — а там в течении трех дней идет блокировка.
AlexanderS
Под текстом любой статьи есть блок автора из которого можно изменить его карму без перехода в профиль. Со списком статей поможет гугл.
erlyvideo
можно отобрать тех, кому отвечаешь, на остальных не отвечать
x67
ага. Обидка в стиле Элбакян
Можно было хоть в лицензии прописать, что сервер специально создан, чтобы нарушать принципы и кто не согласен, не имеет права его использовать)
Да и тот чел наверняка прав в том, что сейчас все очень сильно и необоснованно доверяют опен сурсу. Если проект имеет серьезный изьян, нужно хотя бы в ридми об этом написать — вполне себе компромисс.
Но удалять проект… Это слишком.
PsyHaSTe Автор
Он год ходил спрашивал "Люди возьмите проект". Люди не взяли.
А потом произошло что призошло.
x67
да всмысле? делаешь проект? твой, бесплатный, без тз и обязательств? делай что хочешь, соблюдая минимальный этикет безопасности. Не нравятся ишью, пр, так закрой доступ посторонним. Не нужно для этого переносить проект в другой репо. Конечно, наверняка и там его можно будет скачать, но зачем? Это ограничивает распространение технологии, а значит и внимание к ней. Даже если сейчас проект никому не нужен, заинтересованные могли появиться через год. В общем, уважаю решение автора, но мотивация мне не понятна
perfect_genius
Наверно, чтобы в будущем не могли придраться, например работодатели.
RSATom
Мотивация простая, Open Source, очень часто вещь делающаяся Just For Fun. Если Fun уходит — зачем портить себе нервы дальше? — Всем спасибо, все свободны.
Вполне понимаю автора. Не хватило у него желания и духу посылать хейтеров на 3 веселых буквы, ну что-ж, такое уж у него восприятие мира и характер. Имеет право.
vladkorotnev
С другой стороны, не уверен как с этим в расте, но может стоит закрыть проект и перевести его в коммерческий?
Хочешь быстрый вебсервер — пожалуйста, вот прайс, вот блобы, вот саппорт, особо щедрым фиксим баги вне очереди.
Хочешь бесплатно и с исходниками — тащи любой крейт и смотри как все апи работают на 5 мсек дольше.
Regis
Перевести проект в закрытый коммерческий можно только либо если в проекте один единственный контрибьютор, либо если первоначальная лицензия проекта такое допускала.