Pull to refresh

Comments 91

Вам github приплатил за омонополивание его положения для открытых разработок?
Нет? а могли бы. Вы ведь его рекламируете, и заставляете других юзеров использовать его, чтобы получить преимущество.
А кто потрудится объяснить минусы?
Гитхаб — стандарт де-факто для опенсорса.
Что с битбакет? В принципе, равноправный конкурент.

Как анализатор будет детектировать что это гитхаб-проект, по .git/config?

Требуется ли включение в README.md ссылка на анализатор?
Пока точных ответов на эти вопросы у меня нет. Для этого я и начал обсуждение. :)

Битбакет и т.д., пока нет. Посмотрим, как с GitHub пойдёт. И будут ли конкретные запросы про другие системы.

Как детектировать? Изначально подразумевается честность, но Вы написали интересную идею про .git/config и про README.md! Спасибо. Надо подумать.
А что мешает сделать такое одновременно для гитхаба, битбакета и гитлаба?
Что с битбакет? В принципе, равноправный конкурент.
И гитлаб.
Если будет битбакет, то в нём есть проекты не под git. Например, Pidgin. К ним .git/config, очевидно, не применим.
Перейти на страницу: ___

К сожалению, отказывается открываться. Наверное, забыли https в начале :)

кстати, является ли ___ корректным TLD?

Он не входит в список, который ведет IANA, значит не является. Также не является IPv4 и IPv6 адресом или его частью. А вот можно ли его прописать в собственный DNS или localhost я не знаю. Даже если можно, то навряд ли нужно. :)
Публикуя статью мы конечно были готовы, что дискуссия может принять неожиданный оборот. Но что настолько…
Меня лично интересует версия для C#.
В какой-то мере было бы достаточно сервиса: ввел в форму открытый репозиторий, получил на почту отчет об анализе.
Или в виде дополнения/расширения/плагина к Jenkins/Travis/Azure DevOps.
А лицензия получается на пользователя+проект или на проект?
Т.е. если я запросил лицензию на свой проект, могу другие контрибьютеры пользоваться? Для проектов над которыми работает десяток человек, хотелось бы иметь одну лицензию для всех. И класть ее в git. Я не говорю про KDE, а про проекты среднего размера.
Мы планируем выдавать лицензию на человека, у которого есть аккаунт на GitHub. Привязываться к проекту не хочется. Если человек захочет поправить ошибки в новом для него проекте, то пожалуйста. Главное, чтобы этот проект был с GitHub

Т.е. я получив лицензию смогу проверять любые свои проекты с гитхаба? А как узнать, что это мой проект? А проект в который я коммитил 10 лет назад? А Clang, Chromium и KDE я не могу, а если я туда коммитил? Вопросов возникает больше чем ответов.
Возможно, что привязаться к проекту будет проще:


  1. Берем из git/config url
  2. Добавляем дату окончания, подписываем это все вашим приватным ключом. Как результат имеем лицензию на этот проект до определенной даты.
  3. Пользователь пушит файл лицензии в корень проекта.
  4. Любой человек может проверять этот, и только этот проект.
А если приватный репозиторий?
Речь шла про открытые проекты. Да, можно нарушить. Так это и сейчас можно сделать :).
Мне кажется вы не с той стороны зашли. На мой взгляд вам для развития такой темы надо уходить в SaaS и делать веб сервис на подобие Travis или CodeCov. Чтобы можно было открытый проект добавить на сайте комит хукки прилетали и были открыты метрики. Соответственно закрытые проекты через него проверялись тихо и за денюжку. И конечно же без привязки к определённой платформе.
про SaaS у них уже спрашивали, уверен, что неоднократно, как-то всё с этим никак

Ага, так и отдали свои исходники кому-то на проверку?
Только локально, закрыв предварительно доступ в интернет!
Хотя для открытых проекто такое подойдёт, конечно, но зачем тут SaaS, если и так бесплатно?

Ну так кто-то использует платные аккаунты на гитхаб, т.е. есть люди, которые готовы "отдать исходники".

Ну вот дело в том, что я таких не видел людей. Наверное, они есть. Но мне не удалось с ними повстречаться. А с теми, кто опасается «утечки исходников» я общаюсь регулярно. Тут конечно можно пошутить про мой круг общения, но вот тем не менее.
UFO just landed and posted this here
По всей видимости уровень проектов над которым мы работаем очень разный. Я как минимум работал над двумя проектами один из которых использовал закрытые репозитории bitbucket а другой GitLab. Это уже не говоря о некоторых других проектах которые использовали эти решения на собственных серверах, что тоже может вызвать жжение определённых точек у людей помешанных на предотвращении утечек кода.
Да и в принципе было бы странно трястись над этим в век AWS головного мозга и прочих Azure.
И да я тоже понимаю как и другие комментаторы что это на порядок сложнее чем поддержка уже существующего продукта, но я говорю о том как это работает в экосистеме GitHub и подобных и к чему уже привыкли как многие из тех кто работает над открытыми проектами в этой экосистеме так и над закрытыми.

Поддержка онлайн сервиса на порядок сложнее поддержки оффлайн продукта, это и доступность 24/7, и бэкапы, и резервирование каналов/хостинг. Всё это большие затраты. Окупятся ли они, сказать сложно, а цена "попытки" высокая. Легко говорить "вот вы бы лучше сделали".

Спасибо за комментарий. Приятно, что хоть кто-то это понимает.
Вместо онлайн сервиса можно сделать docker образ. Который при запуске будет проверять лицензию или открытость проверяемых исходников. Т.е. оно как бы и «онлайн» сервис, т.к. беспланых CI сейчас много, но и от вас требуется только поддерживать этот образ.

Такой образ можно сделать и самим пользователям, но сделать его не нарушая лицензию проблематично, если вообще возможно.
Спасибо за упоминание Докера. Мы уже около полугода работаем с этой технологией и скорее всего в следующем году выкатим такое решение как Вы описали.

На первый взгляд это и не очень сложно для нас и достаточно удобно для пользователей.
И свои и чужие. Вообще мы хотим построить лицензию больше на доверии, чем на техническом ограничении. Кто захочет обойти защиту и нарушить договорённости, он и сейчас может это сделать. Единственно что мы хотим ограничить, это большие компании с большими открытыми проектами. Именно из-за этого в статье есть оговорка про зеркала.
Я не пытаюсь найти способ вас обжулить. Тут вопрос не про обход защиты, а про применимость информации и патчей. С моим персональным проектом все понятно. А с общественными — серая зона. Вот имею я от вас лицензию на убийство багов, проверил я, скажем, LXQt. Вот что я имею право делать с этими знаниями? Могу я коммитить патчи? А писать в комментарии, что это исправление ошибки найденной вашей программой. А переслать сообщение из PVS автору кода в котором найдена ошибка?
Честный ответ — «мы не знаем». Ограничениями мы хотим защитить себя от (условно) бесплатной работы на Google и Apple. Подскажите как это сделать?
Может ограничить размер проекта?
Да и в текущей схеме не очень понятно. Первое что приходит в голову: у меня есть профиль на гитхабе, я туда заклонил Chromium, и проверяю его бесплатно. При этом работая на Гугл (об этом вам не сообщая).
Если честно, мне как индивидуальному разработчику схема с комментариями пока ближе, новая больше злоупотреблений вызовет.
А что комментарии? Написать утилиту которая будет комментарии перед проверкой вставлять, а после проверки удалять — час от силы с перерывами на кофе.

Более того, утилита которая вставляет комментарии — уже есть, и ее написали сами PVS.


Т.е. что-то вида
cp -r ../src.
How-To-Use-PVS-Studio-FREE.exe.
rm -r .

UFO just landed and posted this here
Брать урл из .git/config, посылать запрос к вашему серверу для проверки — тот или не тот это проект. Вы же сами говорили, что кампании против вашего решения в виде «saas» т. к. не хотят что-либо куда-либо отправлять, в больших кампаниях подобные запросы могут запросто запретить отдел СБ. А даже если и разрешит — то есть проверка с вашей стороны по урлу.
С учётом, что подобной акцией вы полагаетесь больше на доверие, мне кажется такой механизм вполне достаточным.
По прежнему нужно писать до license string «Проверено великим бесплатным PVS-Studio»?
UPD по совету Andrey2008 перечитал статью. Как понял, возможны 2 варианта: старый, с комментарием, и новый без, но с новой процедурой получения бесплатной лицензии и обязательной публикацией на GitHub
В статье есть ответ на этот вопрос. :)

Хотя, возможно написано не очень чётко. Если у кого-то возник аналогичный вопрос, прошу поставить минус этому моему комментарию. Если будет много минусов, значит надо потом будет более развёрнуто это написать.
UFO just landed and posted this here

В статье новый способ и правда туманно описан.

С радостью бы воспользовался такой возможностью. Вообще говоря, радует вера в честность конечного пользователя.
Немного не по теме. Есть идея — раз вы проверяете проекты с исходным кодом, может будете у себя на сайте статистику вести? Выбираешь язык, размер кодовой базы и количество ошибок. Смотришь на код и проникаешься эстетическим удовольствием и парадигмой «правильного программирования» или спонтанно решаешь помочь интересному проекту с открытым кодом.
Посмотрите наш список проверенных проектов, отсортированных по датам и типам. Можно ощутить то, что Вы описали)
Смотришь на код и проникаешься эстетическим удовольствием и парадигмой «правильного программирования» или спонтанно решаешь помочь интересному проекту с открытым кодом.

Вы же знаете о сонаре? У них отличная политика, есть бесплатное использование, есть платное. В платной разумные ограничения которые нужны кровавому энтерпрайзу.
https://www.sonarqube.org
https://sonarcloud.io


Вообще иметь бадж на пвс онлайн с результатом проверки и отчетом будет здорово.

В целом, мне весьма нравится идея с GitHub. Например, это очень удобно, чтобы узнать, подходит ли нам PVS-Studio для приватных проектов — натравить его на свой же оупен сорс, заодно может какие-то баги исправить. Конечно же, сейчас можно попробовать то же сделать и с триал/бесплатной версией, но не очень удобно и не совсем показательно.
В итоге, и мир станет лучше, и вам клиенты добавятся.
Плюс, как писали выше, иметь в GitHub проекте баджик «проверен PVS-Studio» это очень круто, а заодно и мотивирует с каждым коммитом проверять заново.
Считаются именно открытые исходники или под свободными лицензиями? Как будут детектиться зеркала?
Считаются именно открытые исходники или под свободными лицензиями?
Исходные коды должны располагаться на GitHub. Лицензия — любая.

Как будут детектиться зеркала?
Наверное, никак :). Это просто нарушение лицензии и так делать нельзя.
«Лицензия — любая.» ну вот мне кажется опасное дело.
Тот же Microsoft, на который вы не хотите работать, условно, выложит исходники Windows под лицензией «вообще ничего нельзя, только читать, даже копировать исходники нельзя». Утрирую намеренно. Какой-то ящик Пандоры получится. Может хотя бы остановиться на одобренных OSI?
UFO just landed and posted this here
Как вариант, можете подумать о совместном проекте с Github. Github вот с некоторого времени сообщает, если видит известные уязвимости в зависимостях проекта (и включать это никак не надо, оно само работает). Можно было бы по аналогии туда статический анализ прикрутить (вариант: только к enterprise-аккаунтам гитхаба, с рекламными акциями «в декабре проверяем для всех аккаунтов» время от времени).

Вообще то, мои проекты на ассемблере, а мне кажется что PVS-Studio FASM не поддерживает (а неплохо было бы). К тому же, я использую fossil, а не git.


Но такая обвязка с GitHub мне кажется очень и очень несправедливая. Те которые не пользуются гитхабом (и гит вообще) они менее свободный софт пишут, что ли?


Раз решили делать, то делайте честно!

Всегда будут люди которые на предложение бесплатной (!) лицензии обвинят тебя в нечестности…

В несправедливости! Нечестность, это другое.


А кстати, бесплатность, это не такое благо, которое перекрывает несправедливость и дискриминацию. По крайней мере в моей системе ценностей.


Но вас я тоже понимаю. Халява, она такая, халявная.

Для Java, надеюсь, такие же условия будут?
Единственное условие — наличие в коде комментариев специального вида.
Хороший рекламный ход — впихнуть в открытые проекты рекламу своего приложения… спасибо, но нет. Одно дело в Readme написать "Спасибо PVS-Studio и их команде за предоставленную возможность проверки проекта" и совсем другое впихнуть это во все файлы проекта.

Кстати, шаблон о котором я просил выпустили или нет?
Перечитал статью ещё раз… теперь понял. К сожалению не могу удалить первую часть своего комментария.
Вопрос про шаблон остаётся в силе.
По нашему опыту общения с клиентами в рамках этапа presale шаблон (его отсутсвие) не является ключевой проблемой. Так что пока мы до него не добрались.
Возможно это потому, что с клиентами, которые поленились писать всю презентацию от начала до конца, но были бы готовы протестировать свой код и вписать в презентацию найденные ошибки, вы не общаетесь. Если вам, организации знающей свой продукт, написавшей докумениацию и кучу статей(в том числе и на английском) сложно собрать информацию в одном шаблоне, что уже говорить о программистах?
У первоначального вопроса про шаблон 7 плюсов. Итого 8 потенциальных клиентов проходят мимо. Может для вас, это, конечно мало и каждая статья на Хабре(не думаю, что написание шаблона отняло бы больше времени, чем написание статьи) приносят больше клиентов…

P.S. на русской версии сайта в шапке "Диагностики", на английской "Warnings". Я, конечно, не большой знаток английского(хотя и живу в Штатах почти 3 года) но как-то мне это не нравится. Это больше с "Предупреждения" ассоциируется, чем с "Диагностики". Причем с предупреждениями о вашем продукте, а не предупреждениях от вашего продукта.

Спасибо, за ещё одну возможность использовать PVS, без особых заморочек.
Честно говоря, иногда хочется проанализировать тот или иной проект, но не хочется вносить комментарии (тем более, если проект "чужой").
А так: раз, два и готово.
По поводу "уйти в Saas", как уже и писали выше, мне кажется не самый лучший вариант, именно из-за политик безопасности во многих компаниях.


P.S.: скажите, а эта версия лицензирования давно задумывалась или совместный конкурс с ping**m.ru подтолкнул к такой модели?

По поводу "уйти в Saas", как уже и писали выше, мне кажется не самый лучший вариант, именно из-за политик безопасности во многих компаниях.

Зато лучший фильтр открытого/закрытого проекта. Если проект открытый, то ему без разницы, куда его исходники на анализ уходят, а закрытые сами не захотят такой возможностью пользоваться

P.S.: скажите, а эта версия лицензирования давно задумывалась или совместный конкурс с ping**m.ru подтолкнул к такой модели?
Мысли как-то расширить вариант бесплатного использования бродили и до и после pinguem.ru, но только недавно как-то оформились.
Не слишком понимаю, зачем что-то изобретать. Есть Coverity, который позволяет проверять проекты на гитхабе, да ещё и интегрироваться с travis-ci. Сделайте то же самое, в чём вопрос-то? Или есть технические трудности?

Я, в своём небольшом открытом проекте на гите пользуюсь коверити в связке с тревисом. Просто настроил раз и всё, потом только репорты смотри в удобной (не во всём) веб вьюхе.
> Сделайте то же самое, в чём вопрос-то?

Нет никакой гарантий, что копируя чужое решение без понимания сути, делаешь правильный шаг в развитии продукта и бизнеса.

Мы пока сомневаемся, что такой подход (SaaS) нам нужно иметь.
А зря, на мой взгляд. Это будующее, которое наступило лет 10-15 назад.
В чём состоят ваши сомнения по данному вопросу, если не секрет? Разве что не все люди захотят отправлять свой код куда-то там. В особенности гос. структуры. Ну только это не вопрос открытых проектов на гите, код-то и так видно.

Исходя из комментариев выше, правильно ли я понял, что если я буду вести свой репозиторий на Github с форком компонента self-hosted проекта (KDE, например), периодически подтягивая изменения из апстрима и на отдавать свои патчи обратно, я буду не только юридически, но и идеологически валидно использовать ваш анализатор для улучшения того же KDE?

По идее нет. По всем признакам KDE — крупный коммерческий проект, лицензию на который надо покупать.
UFO just landed and posted this here
Для меня коммерческий проект — это тот, в разработку которого вкладывается куча денег. И KDE это безусловно коммерческий проект.
UFO just landed and posted this here
Chrome не приносит денег Гуглу напрямую, но если вы предложете мне бесплатно работать на Гугл и Chrome, то эта бизнес-модель нерабочая.
UFO just landed and posted this here
Честно скажу, что не знаю. Но это не значит, что проект делается энтузиастами по выходным.
А не подскажете тогда, как провести границу между следующими двумя ситуациями?
  • Я форкнул KDevelop или GNOME Terminal с целью разработать несколько крутых фич и разобраться с рядом раздражающих меня багов и потом предложить изменения в апстрим
  • Я форкнул <...> потому, что хочу себе (и любому желающему, кто посчитает проект интересным) сделать набор крутых фич, вылечить баги. А потом я (или не я) решаю портировать изменения в базовый проект, лицензия позволяет.

В обоих случаях разработка ведётся публично на Github, принимаются пулл-реквесты (при наличии) от других разработчиков.
Для внешнего наблюдателя ситуации почти неотличимы.

Запретить портирование изменений тоже не всегда возможно, т.к. для GPL это будет прямым нарушением, а также может повлечь возможное нарушение условий использования Github.
Наложить запрет лицензиату на перенос изменений в основной проект тоже спорно, т. к. это и обходится легко и абсолютно легально, и опять таки спорно в отношении GPL.
Пока не могу себе представить, как разрулить эту ситуацию с человеческим лицом и в отношении вышей компании, и в отношении FOSS сообщества, реализуя заявленное в посте.
Вот чем, всё-таки, уникальна компания PVS-Studio: только она умеет что-то дать так, что по ощущениям получается, как будто не дали, а отняли, и при этом ещё плюнули в лицо :)

А где же ссылочка "Эта статья на английском" ?

Да боже мой, зачем раздавать лицензии?! Просто сделайте форму, куда каждой может засабмитить git url и вы сами проведете его анализ 1 раз и на своем сайте покажете report.
1. Если боитесь, что будут сабмитить не «open-source», оставляйте исходный код и на своем сайте.
2. Если боитесь, что слишком много будут сабмитить, сделайте публичную очередь на 100 проектов в месяц с голосовалкой.
Как программисту open-source проекта, очень геморойно писать email, вводить ключ, читать доп. пункты соглашения и т.п., проще взять и попробовать 1 раз. А если это must-have штука окажется, так лучше купить, потому что opensource и коммерциалиазация не противоречат друг другу.
Скажите честно — вам ведь не нужен статический анализ? Потому что если «геморойно писать email», то смотреть отчеты и настраивать анализатор вообще будет «влом».
Я думаю, что он много кому нужен. В том числе и мне. И да, мне будет банально лень настраивать что-то подобное больше одного раза, а уж тем более вводить какие-то данные вроде почты.
Вы поймите одну простую вещь: ваш продукт просто не вписывается в экосистему разработки открытого ПО, потому что вы слишком боитесь потерять потенциальную прибыль. А ещё он не интегрирован в инфраструктуру (я там выше описывал пример с coverity). Это не удобно, а значит люди не будут пользоваться. Человек ленив и стремится всё автоматизировать с минимальными времезатратами. До тех пор, пока этого не случится, можете забыть об опенсорсе вообще.

Я приведу привет: допустим я начал проект на гитхабе. Так вот, я за пару часов смогу настроить CI + Test Coverage + Static Analysis, даже если раньше этого не делал, а если делал, то быстрее. И всё будет работать автоматичски при пушах. Если я смог бы прикрутить так же PVS за 10-15 минут, я бы пользовался, иначе нет. Да, именно это время. Тут большая часть программистов на опенсорс (если это не основная работа, разумеется) тратят не больше пары часов в день. И не могут сидеть пару месяцев, настраивая, интегрируя и подпиливая ваш продукт, как это делают большие компании. Но при этом людям хочется получить пользу от вашего продукта, т.к. его ценность очевидна.

В тему SaaS, я понимаю, что это может быть дорого и сложно. Ждём, пока MS свои облака тесно интегрирует с гитом (если это вобще случится), и тогда может быть вам что-нибудь на халяву обломится. Но раньше, как я понял, увы.
UFO just landed and posted this here
Всем желающим мы выдаём бесплатную лицензию сроком на 2 года. Чтобы получить лицензию, необходимо:
1. Перейти на страницу: ___;
Все, закончилась акция?
Насколько я понял, она еще не начиналась.
В канун празднования нового 2019 года команда PVS-Studio решила сделать приятный подарок всем контрибьюторам open-source проектов, хостящихся на GitHub. Им предоставляется возможность бесплатного использования статического анализатора PVS-Studio...
Где тут указание на будущее время?
И да, вопрос был задан автору публикации.

Канун нового года — это 31 декабря. Вот более интересная цитата: "Предлагаю вниманию прототип статьи под названием «Бесплатный PVS-Studio для всех, кто развивает открытые проекты на GitHub»."


И да, вопрос был задан автору публикации.

Так вам ответ-то на него нужен или нет? Если я могу ответить быстрее чем автор поста, то почему мой ответ вам не подходит?

Sign up to leave a comment.