В канун празднования нового 2019 года команда PVS-Studio решила сделать приятный подарок всем контрибьюторам open-source проектов, хостящихся на GitHub или Bitbucket. Им предоставляется возможность бесплатного использования статического анализатора PVS-Studio для развития открытых проектов.
Мы помогаем делать код открытого программного обеспечения более качественным и надёжным. Хотя, благодаря нашим публикациям, в открытых проектах было исправлено более 10000 ошибок, этого явно недостаточно. Наша команда физически не способна регулярно проверять тысячи открытых проектов. Поэтому в 2016 году мы предложили бесплатный вариант лицензирования PVS-Studio. Единственное условие — наличие в коде комментариев специального вида. Подробнее про этот вид лицензирования рассказано в статье "Как использовать PVS-Studio бесплатно".
Идя навстречу пожеланиям, мы решили предоставить возможность бесплатного использования PVS-Studio всем, кто участвует в развитии открытых проектов, размещённых на GitHub или Bitbucket. Авторам этих проектов никаких комментариев добавлять не потребуется.
Всем желающим мы выдаём бесплатную лицензию сроком на 1 год. Чтобы получить лицензию, необходимо:
- Перейти на страницу: https://www.viva64.com/ru/open-source-license/
- Ввести имя и e-mail, на который будет прислан лицензионный ключ;
- Ввести ссылку на свой GitHub/Bitbucket профайл;
- Отправить запрос на бесплатную лицензию.
По истечению срока действия лицензии, вы сможете тем же самым способом получить новый лицензионный ключ.
Ключ является индивидуальным и может быть использован только для проверки открытых проектов, опубликованных на GitHub/Bitbucket. Бесплатная лицензия не распространяется на зеркала проектов.
Старый вариант бесплатного использования анализатора при добавлении в код комментариев остаётся в силе. У этого режима есть свои преимущества. Например, он может использоваться студентами для проверки своих проектов без необходимости выкладывать их на GitHub/Bitbucket. Более того, предыдущий вариант позволяет использовать анализатор вообще в закрытых проектах.
Условия
Поддержка бесплатных пользователей осуществляется посредством ответов на сайте StackOverflow. Более подробно это условие описано в статье "Как использовать PVS-Studio бесплатно" (см. главу «Дополнение: Поддержка»). Хотим обратить внимание, что StackOverflow не является багтрекером. Давайте обсуждать там вопросы, связанные именно с работой анализатора, режимами его работы и так далее. Чтобы проинформировать нас о явном баге, просим по-прежнему писать нам в поддержку.
Акция предоставления бесплатных лицензий является бессрочной. Однако если мы почувствуем, что что-то пошло не так, мы оставляем за собой право изменить её условия или прекратить её. Также мы оставляем за собой право отозвать конкретный ключ без объяснения причины.
Как уже было сказано ранее, возможность использования бесплатной лицензии не распространяется на зеркала проектов, например, на Clang, Chromium, KDE и так далее. Поддержка разработчиков подобных проектов потребует от нашей команды значительной работы и будет справедливо, если компании, где трудоустроены эти разработчики, приобретут платную лицензию :).
Дополнительные ссылки:
- Страница продукта PVS-Studio
- Скачать PVS-Studio
- Получить бесплатную лицензию для открытого проекта
- Бесплатное использования PVS-Studio в закрытых проектах
Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Andrey Karpov. Free PVS-Studio for everyone who develops open source projects.
MasterHater
>размещённых на GitHub или Bitbucket
Снова какое-то странное оганичение. Вы специально делаете так, чтобы как можно меньше людей проявили интрес к ознакомлению с вашей программой?
EvgeniyRyzhkov
Написал человек с ником «Хейтер»…
hdfan2
Что поделаешь, есть такие люди, которые ничем не довольны. «Вы даёте мне халяву, но делаете это без должного уважения». Очень напоминают вот этого товарища:
ptica_filin
Но кэп из мультика в итоге оказался прав :)
MasterHater
Вот только хейтят тут как раз меня.
Ладно, делайте что хотите.
gudvinr
Критикуешь — предлагай.
Чем плохо условие размещения открытых проектов в наиболее популярных площадках для размещения открытых проектов?
MasterHater
>Чем плохо условие
Своей излишностью.
Что мешало просто дать возможность бесплатного использования для открытых проектов? Дополнильное условие не несёт никакого смысла и выглядит как будто его вставили лишь бы было.
mwambanatanga
Возможно, это просто для сбора статистики. Намного интереснее требование указать имя и фамилию в форме запроса (при том, что профиль Bitbucket/Github таких данных не содержит). Как там с хранением/обработкой персональной информации?
MasterHater
Статистики чего?
Nexon
Как мне кажется, по GitHub гораздо проще определить достоин ли какой-либо проект получить бесплатную лицензию.
Иначе это будет просто раздачей ключей кому попало.
gudvinr
Значительное ли это ограничение? Отказ от GitLab выглядит не слишком понятным, но в остальном — где ещё люди размещают открытые проекты? Площадки вроде GNU Savannah или какие-то self-hosted сервера.
Так или иначе, они покрывают этим очень большое количество популярных проектов. И в целом условия даже во многом проще, чем у некоторых других продуктов с бесплатной лицензией для открытых проектов.
Вот что концептуально плохо в том, что компания, которая предоставляет возможность бесплатного использования продукта, на котором она делает деньги, ставит условия этого использования? Они вполне выполнимы.
MasterHater
Проблема не в невыполнимости, проблема в иррациональности.
С тем же успехом можно было раздавать лицензию лишь проектам с чётным количеством гласных в названии. Выполнимо, но бессмысленно нелепо.
gudvinr
Опустив момент с тем, что сравнивая с количеством гласных вы явно передергиваете, то по-прежнему непонятно, чем это плохо.
Вы может быть всё-таки предложите как надо, вместо того чтобы просто говорить, что как делают они — не правильно?
Компания хочет популяризировать продукт, раздаёт его бесплатно. С максимально простым для себя процессом выдачи ключей, чтобы на бесплатное распространение не тратилось много человеческих и маьериальных ресурсов.
Как понять, что человек, который запрашивает лицензию, занимается открытыми проектами?
Чем плохо требование хостинга проекта на открытых хостингах? Кто от этого страдает кроме вашего чувства субъективной иррациональности?
gudvinr
Не забывайте, что это коммерческий продукт и в принципе цель существования коммерческих компаний — это получение прибыли, попутно делая то, что кому-то будет нужно.
Наверняка поэтому они раздают бесплатно продукт тем, кто его бы итак не купил — условным Васянам, которые делают что-то в свободное от работы или учёбы время, не получая за это денег. Какую-нибудь прошивку для ESP, мелкую библиотеку для больших чисел или аналог DXVK.
При этом приобретают отдачу в виде случайного разработчика, который зашёл на страницу такой библиотеки и предложил своему работодателю внедрить у себя. И в целом чтобы повысить информационный шум около своего продукта.
А если это будет генератор ASCII-котов в zip-архиве на сайте, который никогда не индексировался поисковиками — приход будет нулевой. Хотя по факту проект тоже открытый.
neit_kas
Выдвигаю ещё предположение:
На каких-то своих ресурсах хостят проекты уже полноценные компании, которые способны платить. GitHub и Bitbucket — это популярные сервисы для своего рода стартапов. Но вот почему выпал из этого списка GitLab и тот же Savannah, я не знаю. Возможно просто взяли их как своего рода эксперимент, а если зайдёт — расширят список сервисов.
Siemargl
Очень неплохо, но текст предустановленных лицензией комментариев выглядит скабрезно.
Было бы строже
Andrey2008 Автор
Новый вариант не требует никаких комментариев.
P.S. Впрочем, старый режим с комментариями в силе.
Jeditobe
Хорошо бы отдельно подчеркнуть это в тексте статьи, сейчас это не очевидно.
ExplosiveZ
А GitLab будет?
Andrey2008 Автор
Пока остановимся на GitHub и Bitbucket.
EvgenT
Я перевёз все свои проекты на gitlab. А сайт bitbucket вообще не открывается (привет роскомнадзору). И, соответственно, я остаюсь без возможности пользоваться Вашим PVS Studio. Как-то не совсем честно. Не находите?
gudvinr
То есть, они виноваты в том, что вы перевезли проекты на gitlab?
Am0ralist
Нет, они виноваты в том, что мир не идеален.
EvgenT
Да можете ещё 500 минусов напихать. Плевать.
Я считаю, что если уж взялись раздавать для OpenSource, то пусть и раздают, не взирая на то, на каком git-хостинге лежит проект. Если я у себя дома подниму git и буду хранить свои проекты, которые будут открыты всему миру, то я должен переместить всё в лоно микрософта, для того, чтобы я смог пользоваться PVS Studio?
gudvinr
Я вам ни одного минуса не поставил, например. Почему они обязаны раздавать чтобы было удобно всем?
Не так, как им удобно (и в принципе, многим людям учитывая базу пользователей GH и BB).
Вам нужен гитлаб, кто-то другой начнёт возмущаться, что они какой-нибудь городской хостинг в Пензе от Васяна не поддержали. Может просто всем подряд раздавать? Да и тогда найдутся люди, которым не предложили воспользоваться и не выдали ключ, а пришлось самим писать на почту.
EvgenT
Тогда нечего затевать «акт щедрости».
И что с того? Давайте возьмём kernel.org. Он, получается, тоже не получит возможности данного «щедрого» вознаграждения. Кто-то держит свой успешный проект на своём git. Он открыт. Пожалуйста, берите, пользуйтесь. Но, видите-ли PVS Studio решили ограничиться… Честно, и по человечески — грош, цена такой «щедрости».
gudvinr
"Либо мне, либо никому"? Собственно, нигде и не шло речи о бескорыстной раздаче лицензий. Вы же не забываете, что это не некоммерческая организация? И любая деятельность коммерческой компании ведёт в конечном счёте к увеличению прибыли.
Вот же капиталистические редиски, правда? Мало того, что бесплатно продукты раздают, так ещё и не той целевой аудитории, которая создаст достаточный объем саморекламы посредством использования продукта.
В чём проблема-то, собственно? В том, что хочется хороший продукт поиметь на халяву, а ложку в рот не кладут и за ней вставать надо? Вас же никто не обязывает, не нравятся условия — не пользуйтесь. Вы не будете — другие будут. И таких людей будет много больше, чем тех, которые воняют на тему того, что их самый лучший хостинг обделили.
У kernel.org между прочим есть Linux Foundation, который много денег вливает в разработку ядра. О таких ситуациях в статье описано.
EvgenT
gudvinr
Есть там что-то про "бескорыстную поддержку всех разработчиков, которые размещают свой код в открытом доступе где бы то ни было"? Я не вижу, честно говоря.
Чем плохо условие размещение на площадках с максимально возможным охватом аудитории? Вы говорите, что лучше никак, чем так. Лучше тем, что вместо пары одиноких рейнджеров, которые косо смотрят на майкрософт, уже никто не сможет воспользоваться? Хотя по факту, никто не обещал всем подряд задарма раздавать.
Am0ralist
Am0ralist
Вставьте в начале файлов нужные строчки и пользуйте программу бесплатно, что было доступно ещё раньше. Что, тоже не хотите? Злые капиталисты диктуют вам куда и что делать?
Сюда-то тогда зачем пришли? Похейтерить на злобных капиталистов, диктующих вам что делать?
tmaxx
Как там Java-версия, достаточно функциональна или лучше подождать? Я бы пару своих проектов проверил.
Andrey2008 Автор
Можете запросить beta-версию.
losse_narmo
Планируется ли статья по итогам бета-тестирования?
А то версию мне присылали, я дал обратную связь — и тишина =)
Anton23
++(про статью). Так же будут интересны статьи про проверки проектов, напр. intellij, по аналогии с проверками c/c#/c++ проектов.
UPD: Анализатор не нашел кучи ошибок в моих мини-проектах. Возможно это из-за того, что IntelliJ сама неплохо находит ошибки?
SvyatoslavMC
Проекты на Java со временем станут таким же источником интересных статей, как и другие.
Скорее всего, дело всё-таки в мини-проектах :-)Anton23
Да, я тоже так думаю. Но и в IntelliJ анализаторе тоже. Он достаточно неплохой, и многие(не в смысле что их много) логические ошибки которые он находил, могли бы быть найдены pvs.
igor_suhorukov
Проверял с помощью PSV-studio для java и проекты с 280k/500k объемом кодовой базы. Множество ложноположительных срабатываний и ничего стоящего и интересного пока не находил.
Посмотрим что будет в релизной версии анализатора, но пока нет никаких преимуществ перед бесплатными анализаторами…
SvyatoslavMC
Бета-тестирование прошло достаточно гладко, чтобы были какие-то интересные истории. За последине 3 года мы выпустили PVS-Studio C#, PVS-Studio for Linux, PVS-Studio for macOS, поэтому приобретённый опыт помогает делать этот процесс более чётким.
p.s. насчёт обратной связи, можете прислать мне в личку свою почту, я проверию, кто Вам отвечал или не отвечал)
Nexon
Осталось дождаться версии для PHP\JS, чтобы с ужасом увидеть эти тысячи варнингов в своих проектах и со словами "этот анализатор кривой, мой код хороший" налить себе чашечку латте.
arvitaly
Лейте уже.
Nexon
Ээээ… на простейший код «while(1){}» он написал любую фигню, кроме «отсутствие выхода из цикла».
Этот анализатор и правда говно, теперь мне нужно сварить латте, спасибо блин.
dimka11
Линтеры в основном для проверки код стайла и ошибок синтаксиса.
EvgeniyRyzhkov
Хотя этот комментарий относится видимо к двум упомянутым анализаторам, все-таки не могу пройти мимо. Так как кто-то может подумать, что все «линтеры» такие. А между тем коллега недавно опубликовал статью с как раз таким текстом:
arvitaly
Эти 2 упомянутые анализатора тоже не «такие», но я не нашелся что ответить. Ссылку на документацию? Пересказ всех правил, которые не только «синтаксис и код стайл»? Объяснение, что while(true){ code } — валидная инструкция? А для пустого тела есть правило no-empty?
Andrey2008 Автор
Просто примечание. Тестировать статические анализаторы синтетическими тестами надо очень осторожно. Моя заметка на эту тему: Почему я не люблю синтетические тесты.
yaroslavche
одни из популярных: phpstan/phpstan, phan/phan vimeo/psalm
Ну и вот еще немного.
AndrewSu
Отличная новость!
С этим ключём можно будет интегрировать PVS в CI процесс на travis?
EvgeniyRyzhkov
Да, конечно. Напишите, пожалуйста, про свой опыт потом. Или здесь, а в идеале отдельной статьей.
shane54
Извиняюсь если уже предлагали — а была уже озвучена идея на GitHub сделать бейдж (зелененький такой) — типа "Проверено PVS-Studio"? Для проектов, которые действительно проверены и прошли проверку. Хотя тут конечно возникает вопрос, чем считать "прошли проверку" — нет предупреждений PVS-Studio вообще, или нет ошибок, но есть предупреждения — и т.д
EvgeniyRyzhkov
Как раз вот это вопрос и не понятно как решить…
shane54
IMHO связываться с администрацией GitHub и предлагать — только так, других путей полагаю нет. Так что только Вы (компания), как создатель продукта, должны/можете это инициировать и продвигать. Но, думаю, это не что-то невозможное — GitHub должен будет интегрировать PVS-Studio в свой pipeline — а у Вас все для этого есть, cli-версии всех необходимых инструментов. Так что мы (сообщество) были бы рады помочь, да только как!
Hardwar
Возможно, два разных бэйджа?
EvgeniyRyzhkov
«Я слышал про PVS-Studio» и «Я пользовался PVS-Studio» :-)
MikailBag
хотя бы бейдж "Используем PVS"
AVI-crak
Зачем раздавать ключи? Ведь можно сделать намного проще — самостоятельно проверять открытый код на собственном сервере. Очень желательно в автомате и быстро. Естественно тот код, что расположен в открытых источниках. Естественно только с запроса автора кода.
Это можно организовать только при участии владельцев самих бесплатных площадок.
Только им доступна операция добавления кнопочки «сделать красиво».
В плюсах владельцы площадок — с эффектом офигенного сервиса, ваша компания — с эффектом бесплатной рекламы, ну и гости бесплатных площадок.
Про авторов кода могу предположить появление желания выполнять проверку автономно. Дабы не позорится…
EvgeniyRyzhkov
> Ведь можно сделать намного проще
Да уж, и правда «намного проще»…
AVI-crak
А что не так?
Ну получит автор зелёную строчку в хидере, с голубой каёмочкой «ошибок нет». Ему известно где она существует, и вам известно, и тому кто будет её целенаправленно искать…
Но одно дело иметь эту строчку, и совершенно иное дело — способ её получения.
Это как говориться — две больших разницы.
Amr
Вы очень зря иронизируете. Вот идея для стартапа, которую вы возможно рассматривали но в итоге проигнорировали.
Посмотрите на решения вроде TravisCI, CircleCI и иже с ними, для opensource бесплатно, а если нужно для комерческого использования? Будь так любезный и купи подписку.
igor_suhorukov
Эта ниша уже занята, более качественным для java, бесплатным статическим анализатором кода.
А поскольку у PSV studio есть интеграция с sonar, то возможно там же визуализировать результаты проверки. Если договорятся с sonarcloud…
AndrewSu
Возможно здесь дело в наличии «собственных серверов». При активном OSS сообществе быстро зашкалит их количество, работающих условно бесплатно.
Coverity делает немного по другому. Анализатор отрабатывает на сервисе travis-ci или на своём железе, а на сервера анализатора загружаются только логи. Причём логи запакованы и, видимо, зашифрованы. Без загрузки на сервис coverity они бесполезны.
0xd34df00d
Библиотеки, от которых зависят проекты, как подтягивать будете?
AndrewSu
Через apt get
0xd34df00d
А откуда узнаете, какие именно нужны?
Какой дистрибутив? Какая-нибудь Ubuntu LTS? Это может и не подходить.
AndrewSu
Например, на travis-ci каждый получает готовый образ системы, и потом сам устанавливает те пакеты, от которых зависит проект.
Конфигурацию каждый сам описывает.
0xd34df00d
Вот поэтому я и не использую travis, потому что зависимости там слишком старые (по крайней мере, были старые, когда я заморачивался на тему CI). Поэтому сейчас у меня свой jenkins на своём сервере, который собирает docker-образы с зависимостями согласно конфигам в репозитории, и проверяет сборку для разных дистрибутивов и их версий.
AndrewSu
Старые-новые это не так важно. Главное, что для OSS использование бесплатное.
Сейчас на travis-ci основной образ Ubuntu 14.04, в бете 16.04.
А те, кто хотят поновее, могут собрать свой в chroot или docker.
Вот тут собирают 18.04.
Свой сервер это конечно хорошо, но не всегда возможно.
4144
Travis докер образы умеет тоже…
Да и сейчас не только travis есть на github с докером, на память приходит azure, сircle ci. Остальные CI нагрузку не тянут.
Но если надо собирать очень много и сразу, остается только gitlab.com
Zarathu5trA
Здравствуйте!
У меня такой вопрос. Я занимаюсь академическими исследованиями. Соответственно у меня есть несколько закрытых, академических (читай некомерческих проектов), которые нигде и ни с кем не расшарены и над которыми работаю я сам. Могу ли я воспользоваться бесплатной лицензией PVS-Studio для них (по схеме описанной здесь — www.viva64.com/ru/b/0457)?
P.S.: Вроде могу, но хотелось бы получить какое-то более менее формальное подтверждение
Andrey2008 Автор
Да, можете.
Zarathu5trA
Cпасибо за ответ!
SokoloffA
Я понимаю, что для получения лицензии из этой статьи добавлять заголовки не надо. И даже отправил запрос.
Но, пожалуйста, рассмотрите еще вариант небольшого ослабления требований к PVS-ным комментариям. Пусть их можно будет располагать не обязательно в первых 2-х строках файла, а после прочих комментариев. В опенсорсе есть устоявшиеся правила, уж так завещал бородатый. В начале файла расположено краткое описание и лицензия, а потом уже идет все остальное. Я готов добавить Ваш комментарий в свои проекты, но после лицензии.
Уж если Вы раздаете лицензии на доверии, то такое ослабление на должно вызвать притока халявщиков.
Andrey2008 Автор
Сейчас сделано, что комментарий должен находиться в первых 10 строчках. И да, всем не угодить. Да и нет у нас задачи угодить всем. Да, мы такие, но что делать… :)
SokoloffA
Это не претензия, а предложение. А можно тогда попросить увеличить это значение до, скажем, 30 или 50
Часто начало фала выглядит примерно так
Т.е. лицензия больше 8 строк.
Andrey2008 Автор
Предлагаю использовать новый способ бесплатного лицензирования.