company_banner

Официальный релиз JetBrains Upsource 1.0: просмотр и рецензирование кода

    Возможно, вы уже наслышаны, а если нет, то самое время узнать, что на днях мы выпустили первый официальный релиз Upsource.

    Что такое Upsource?


    Upsource — это инструмент для просмотра VCS-репозиториев, навигации по ним, а также для обсуждения и рецензирования кода (code review). Upsource предназначен для установки на собственном сервере компании и умеет работать с репозиториями Git, Mercurial, Subversion и Perforce.

    В Java-проектах Upsource дополнительно осуществляет анализ кода аналогично тому, как это делает IntelliJ IDEA, а также предлагает знакомые по IDE функции Find Usages, Go to Declaration и Type Hierarchy.

    Если помните, в августе мы анонсировали программу раннего доступа к Upsource, ну а сейчас дожили до релиза. Особо стоит отметить, что перед релизом мы обстоятельно подумали о лицензировании и ценах, и в итоге пришли к тому, что лицензия для небольших команд — до 10 пользователей (8 обычных пользователей, 1 гость и 1 администратор) — будет совершенно бесплатна. Для более крупных команд предлагается ряд коммерческих лицензий от 25 пользователей.

    Upsource 1.0

    Что Upsource умеет, а чего не умеет?


    О том, для чего подходит Upsource, а для чего нет, мы довольно подробно рассказывали летом, анонсируя EAP. Если вкратце, то основные функции продукта сейчас таковы:

    • просмотр изменений в репозиториях Git, Mercurial, Subversion и Perforce;
    • поиск по истории изменений и по коду в любой ревизии;
    • чтение кода (подсветка синтаксиса большинства популярных языков прилагается);
    • обсуждение изменений и отдельных фрагментов кода;
    • полноценное рецензирование кода (code review) с несколькими ролями, причем, в отличие от ранних билдов, теперь review можно проводить как на отдельных ревизиях, так и на целых ветках Git и Mercurial, и в этом случае новые ревизии добавляются в review автоматически;
    • для Java-проектов — анализ кода, дополнительные возможности поиска и навигации (включая Go to Declaration и Find Usages).

    В том же летнем посте рассказывалось, чем Upsource не является. В частности, Upsource не работает по модели SaaS и должен устанавливаться на вашем собственном сервере. Также продукт не является VCS-хостингом, а следовательно, не позволяет открывать ветки, создавать pull requests, проверять merge-конфликты и собственно проводить слияние веток. Хорошая новость заключается в том, что работы над Git-хостингом в рамках Upsource уже вовсю ведутся.

    Чтобы получить представление об Upsource в его нынешнем виде за 8 минут, можно посмотреть плейлист на YouTube.

    Что изменилось за последние месяцы?


    Мы так часто ссылаемся на анонс программы раннего доступа, как будто с тех пор в продукте ничего не изменилось. Это, конечно, не так. Из важных изменений с августа стоит отметить следующие:

    • Рецензирование веток (branch review). Теперь code review на ветках создается в один клик, и по мере появления в ветке новых ревизий они автоматически включаются в review.
    • UI для сравнения произвольных ревизий или веток.
    • Более точная подсветка изменений: в частности, теперь подсвечиваются изменения внутри строк кода, а в Java-проектах контекст изменений формируется в зависимости от структуры кода, в котором оно произошло.
    • Отчеты по рецензированию кода в проекте: количество рецензированных ревизий относительно их общего числа, статус review, основные рецензенты.
    • Стандартная функциональность для администраторов: резервирование/восстановление и перевод в read-only режим, необходимый для обновления версии продукта без полной остановки его служб.
    • Интеграция с любыми баг-трекерами на уровне создания ссылок по ID реквеста.
    • Поддержка Markdown в комментариях.

    Для кого и для чего Upsource сейчас лучше всего подходит?


    Все вышеперечисленное здорово, но возникает вопрос: подходит ли Upsource лично вам? Нам представляется, что попробовать Upsource стоит, если ваша команда (или компания) отвечает хотя бы одной из перечисленных ниже характеристик:

    • Разрабатывает проекты на Java с применением Maven и/или IntelliJ IDEA. (Поддержка Gradle обещает быть в следующем релизе.)
    • Использует несколько разных VCS из списка поддерживаемых (Git, Mercurial, Subversion и/или Perforce) и хочет получить единообразный UI для просмотра изменений и навигации по коду в своих проектах.
    • Имеет возможность установить Upsource на собственном сервере.

    Сколько стоит?


    Как уже говорилось, 10-пользовательская лицензия бесплатна. Кроме того, по запросу доступны бесплатные лицензии для некоммерческих OS-проектов и для применения в образовательном процессе.

    Также предусмотрены коммерческие лицензии на 25, 50, 100, 500 и 1000 пользователей стоимостью от $1300. Коммерческие лицензии всегда включают 1 год бесплатных обновлений; опциональное продление этого срока обойдется в 50% от стоимости новой лицензии.

    Следует иметь в виду, что вне зависимости от количества пользователей в той или иной лицензии, одна из учетных записей по умолчанию будет административной, еще одна — гостевой. Гостевую при желании можно отключить. Таким образом, 10 пользователей = 8 пользователей + администратор + гость; 25 пользователей = 23 пользователя + администратор + гость; и так далее.

    Где взять?


    Скачать продукт можно отсюда; ознакомиться с ценами — здесь.

    Задать интересующие вас вопросы, естественно, можно в комментариях к этому посту.
    JetBrains
    Делаем эффективные инструменты для разработчиков

    Similar posts

    Comments 59

      +2
      Планируется ли более глубокая поддержка других языков, php например?
        +3
        Поддержку PHP иногда просят, но она пока не запланирована. Перспективы туманны, поскольку на данный момент этим некому заниматься. Тем не менее, проголосовать не мешает.

        Относительно других языков, более или менее активно просят Scala, .NET и Python (эти и другие реквесты можно найти здесь), но и во всех этих случаях мы пока не можем сказать, когда и что будет сделано.

        С точки зрения поддержки языков единственное, что понятно и что уже делается, — это поддержка Gradle для тех Java-проектов, которые базируются на этой системе сборки.
          0
          Если язык не поддерживается — я могу использовать Upsource?

          Например нам нужен Эрланг, но даже создавать тикет я не вижу смысла так как реально оцениваю шансы.
            0
            Да, конечно. Вот комментарий на эту тему
              0
              Настоящей поддержки Erlang у нас конечно нет, но подсветка синтаксиса включена.
                0
                Спасибо. Этого вполне достаточно.
          0
          Планируется ли pre-commit review? Через плагин к idea, например?
            +1
            В backlog-е пока. Нет однозначного мнения, нужно ли это делать.

            Расскажите, зачем это конкретно вам? Какими VCS вы пользуетесь? Отчего хотите pre-commit review, а не review в бранче?
              0
              Сейчас git.
              Наш флоу такой:
              1. обязательно пройти pre-push peer code review,
              2. Push в спец ветку
              3. Jenkins настроен на запуск автотестов с этой ветки (интеграция с герит)
              4. Если тесты прошли -> автомердж изменений в мастер.

              Если позволить gerit, то можно постараться поменять флоу на
              1. Push в спец ветку
              2. Автотесты
              3. post-push peer code review с помощью gerit
              4. Автомердж в master

              но мне не нравиться разрывать автоматический флоу в пункте 2 и 4 необходимостью пройти пир ревью. То есть хотелось бы код ревью оставить обязательным, но меньше делать мануальных действий.
              Спасибо.
                0
                Понятно, спасибо.

                Мне, правда, представляется, что в текущем и предполагаемом flow количество автоматизированных действий одинаково, разве нет?

                И связанные вопросы:
                1. что у вас является предметом review, если он (review) проводится без информации о статусе тестов?
                2. что происходит, если review пройден, а тесты после этого оказываются красными, и часто ли такое случается?
                  0
                  Все верно — автоматизации столько же. Но, если после ревью понадобилось делать правки в коде, то в мастер возможно попадет неотестированный код и сессия автотестов для следующего нормального комита другого разработчика может не пройти.

                  1. Предметом ревью является только код фичи и код тестов. По процессу тесты должны быть запущены перед ревью, локально. Я упустил этот «нулевой» шаг во флоу — прошу прощения. Если, автор ревью «забыл» прогнать тесты, ревьюер может ему об этом напомнить и заморозить ревью.
                  2. В описаном вами случае — код не попадет в master и никого не сможет потревожить. Такое бывает в 2-х случаях в основном: Тесты не были запущены локально. Или запущены были, но человек локально не сделал pull перед запуском.
                  0
                  Интересный flow. А почему бы не сделать review на merge в master?
                    0
                    Спасибо.
                    Можно, но тогда он уже не будет автоматическим )
                      0
                      Ну review никогда не будет автоматическим. А вот по окончанию ревью вы все-равно делаете какое-то действие по апруву, вот в данном случае это мерж в мастер. Не знаю как у Upsource, но в Stash от Atlassian по апруву после ревью это можно сделать автоматов. Думаю у Upsource это тоже есть)
                        0
                        Нет, в Upsource этого нет, поскольку Upsource сейчас не является Git-хостингом (не умеет писать в репозиторий, а merge — это запись). Впрочем, это вопрос времени — Git-хостинг мы уже пилим.
                          0
                          Ждемс) можно как-нибудь поEAPить?
                            0
                            Пока никак, к сожалению. Даже примерные сроки EAP пока затрудняемся назвать, но как только, так сразу.
                          0
                          Я имел в виду, что merge не будет автоматическим. Но по сути, это мелочи по сравению с самой главной причиной — если будут исправления в комите, или новый комит связанный с ревью, то нужно будет снава запускать автотесты, а это долго и отнимает ресурсы CI
                  0
                  Кстати, вне зависимости от судьбы pre-commit review, плагин к IntelliJ IDEA на подходе, к весне планируем выпустить.
                  +2
                  В логотипе угадываются нотки Smalltalk:
                    +5
                    Не без этого. Впрочем, мы ни на что не намекаем.
                    +3
                    А почему такие серьезные требования к железу? (8GB RAM)

                    Atlassian Stash для подобных задач требует 768MB, ваши же YouTrack и TeamCity тоже не сильно прожорливы. Мне было очень удобно развернуть их на cubietruck-ах для маленькой команды. Уже давно присматриваюсь к Upsource EAP, кажется, что в связку youtrack-teamcity он должен вписаться лучше, чем stash, но останавливает именно это требование к памяти.
                      +4
                      Цитирую показания коллег:

                      Основная причина — это архитектура Апсорса, изначально рассчитанная на масштабирование. Это небесплатно :( В результате мы расплачиваемся тем, что у нас куча процессов, каждый из которых любит покушать.


                      У нас довольно много памяти кушает база данных = Cassandra. Насколько я помню, там 3 гига. Не исключено, что можно запускать нас, если есть большой swap. Но тут нужно следить, чтобы наши процессы не свалились на swap. С такими настройками, как сейчас, мы способны индексировать ядро Linux.
                      0
                      Есть ли (или будет ли) возможность прикручивать свои свои языки программирования и/или VCS?

                      И мне кажется, что вот этот момент у Вас не очень хорош:
                      Следует иметь в виду, что вне зависимости от количества пользователей в той или иной лицензии, одна из учетных записей по умолчанию будет административной, еще одна — гостевой. Гостевую при желании можно отключить. Таким образом, 10 пользователей = 8 пользователей + администратор + гость; 25 пользователей = 23 пользователя + администратор + гость; и так далее.
                      Есть ощущение, что честнее было бы не отрезать у клиентов два пользователя от озвученных, а добавлять этих пользователей к числу купленных, иначе это выглядит как неприятная сноска мелким шрифтом.
                        0
                        Есть ли (или будет ли) возможность прикручивать свои свои языки программирования и/или VCS?

                        Нет, такого не планируется, по крайней мере в обозримом будущем. В принципе, я могу себе представить появление какого-то относительно простого способа прикрутить к Upsource языковые плагины к IntelliJ IDEA. Что же до поддержки плагинами VCS, которых нет в дефолтной поставке, то это вряд ли, да и зачем? Если появится the next big VCS, так мы её сами поддержим. Однако же в любом случае разговор идет о public API продукта, которого на данный момент нет.

                        Что до момента с количеством учетных записей, согласен, он не идеален. Однако это сложившаяся практика у YouTrack (лицензирование Upsource списано именно с него), и мне не известно о каких-то существенных трудностях с такой моделью в практике YouTrack. Кроме того, во-первых, мы все ж стараемся этот момент озвучивать в нужных местах; во-вторых, при условии отключения гостевой записи (степень полезности которой в Upsource еще предстоит выяснить) остается 9 человек + администратор, которому, если уж это нужно, ничто не мешает тоже писать и коммитить код наравне с остальными.
                          +3
                          С поддержкой языков ситуация такая – некоторые языки мы поддерживаем полноценно, с подсветкой кода как в IDEA, Go to declaration и Find Usages. Это Java, JavaScript, HTML (XML), CSS. Вскоре к ним добавится Kotlin. Для остальных мы делаем только подсветку средствами CodeMirror. Если чего-то конкретного не хватает – мы можем легко добавить CodeMirror mode (http://codemirror.net/mode/index.html).
                          0
                          С такими ценами вряд-ли станет массовым продуктом. А так выглядит интересно.
                            +5
                            Смеетесь? На 100 IT пользователей это ВСЕГО $4500 в год.
                            А теперь посчитайте, сколько стоят услуги уборки на такую компанию.
                              +3
                              Для сравнения Github Enterprise — те же $ 5000 на лицензию до 20 пользователей в год (см. https://enterprise.github.com/features в конце страницы).
                              +1
                              Посмотрите на цену аналогичного продукта atlassian www.atlassian.com/software/stash/pricing который используется повсеместно в крупных проектах, цена просто намного выше. А вот качество вряд ли.
                                0
                                а разве только atlassian и jetbrains на рынке есть?
                                Я смотрю с перспективы своей компании в размере 15-17 человек. 1300 очень много. Лучше gitlab: 20 долларов в месяц за хостинг у digitalocean. Не так удобно, но за эти плюшки я не готов платить столько денег.
                                  0
                                  1300 разовая плата(в рамках релиза). В России больше на айфоны тратят) Для компании 15-17 человек это нормальная цена. Вы же хотите, чтобы проект развивался и поддерживался. Программисты JetBrains вряд ли бесплатно станут работать.
                                    0
                                    ну если бы это был единственный сервис, а то мы для обеспечения комфортной работы пользуемся порядка 10 сервисами и плюс еще разные продукты по подписке типа фотошопе, офиса… Если каждый будет требовать 1300 в год — то на одни эти сервисы и будем работать.
                                      0
                                      Это бизнес, кстати если у вас 15-17 человек в компании, то вряд я сомневаюсь, что с софтом будет работать больше 10 человек, пользуйтесь бесплатной версией)
                                        0
                                        ну разработчиков у нас 14, поэтому бесплатно не получится ну и плюс расти же тоже будем.
                                        0
                                        Если не секрет, что еще входит в список из 10 сервисов?
                                          0
                                          1. Toggl
                                          2. Jira
                                          3. DigitalOcean
                                          4. Slack
                                          5. Travis CI
                                          6. GitHub
                                          7. Skype (SkypeOut)
                                          8. ScreenHero
                                          9. Dropbox
                                          10. Evernote
                                          11. Google apps for company

                                          Из того что вспомнил, может что-то пропустил.
                                            0
                                            Спасибо

                                            А отчего столько трекеров? (Toggl, Jira и GitHub)
                                              0
                                              Toggl — для учета времени (для выплаты з/п и расчета с клиентами)

                                              Github — для внешних проектов, коде ревью. Для внутренних проектов Gitlab используем. Можно было конечно Gitlab использовать для всего, но половина клиентов настаивает на использовании Github.

                                              Jira — таск и баг трэкер, планирование и выполнение, пользуемся Kanban доской.
                                      0
                                      Почему нет? Gitlab весьма неплохой продукт. Надеюсь, у вас с ним все складывается.
                                        0
                                        по многим вещам отстает он от гитхаба, мы бы участвовали в его разработке, но у нас ни одного RoR разработчика нет к сожалению.
                                      0
                                      Ничего не могу сказать по поводу качества Stash, но функционально Upsource (пока) ему уступает. Однако поскольку работа над Git-хостингом ведется, надо надеяться, что через некоторое время уступать перестанет.

                                      Собственно, цены устанавливались на базе цен на Stash и с поправкой на функциональное отставание от него.
                                    0
                                    Приятно видеть как развивается JetBrains. Спасибо вам ребята. Хотелось бы уже увидеть от вас полноценный анализатор кода аля Sonar. А вообще хотелось бы у вас поработать)
                                      0
                                      Нам приятно и вам приятно, отлично! )

                                      Насколько мне известно, для Sonar ничего не планируется. Разве что реквест на интеграцию TeamCity с ним уже давно оформлен.

                                      А если хочется поработать, выбирайте вакансию и присылайте резюме, как водится.
                                        0
                                        А я высылал, ваши hr даже не потрудились ответить. Ну или возможно я слишком не крутой для вас)
                                          0
                                          Это они зря, мне кажется, простите их. Хотя, честно говоря, я имею крайне ограниченное представление о том, как они работают.
                                            +1
                                            Могу вам рассказать как работают hr практически в любой конторе. Обычно это питье чая целый день, но возможно у вас иначе)
                                      +2
                                      Товарищи соотечественники! Сделайте тарифные планы для русских компаний! Сейчас персональные лицензии, в связи с курсом рубля стоят космических денег. Если же нет, передавайте приветы торрентам
                                        –2
                                        Определите критерии русскости компаний. Хотелось бы их услышать.
                                          +2
                                          Не хотелось бы развивать политику… и получать минусы за слово «русский», но Критерий — на территории России с местными сотрудниками. Понятно, что заказчики из Европы… Но хотя бы для индивидуальных разработчиков. Мне, например, уже не обновиться. Цены адовые
                                            +1
                                            Так стоп, если заказчики из Европы, то и доход из Европы, по Европейским ценам. Тогда не очень понятно в чем проблема, если на уровне оборота вас изменение курса де факто не затрагивает.
                                              0
                                              хм, согласен… Тогда для индивидуальных разработчиков. Из дома т.е., для личных целей
                                            0
                                            Наверное главный критерий это гражданство основателей.
                                              0
                                              Юрлицо в РФ, нет?
                                              +4
                                              Закинул проблему коллегам, будут думать.
                                                0
                                                Подумали, запустили 40% скидку на любые лицензии для любых клиентов из РФ, Украины, Белоруссии до 5 февраля. Наслаждайтесь.
                                                0
                                                Смущает упоминание mvn и gradle… Что мешает сейчас использовать ваш продукт на gradle-проекте? Делать code review…
                                                  +2
                                                  Code review делать ничего не мешает, равно как и читать код, видеть изменения, сравнивать ветки и проч.

                                                  Чего не будет для Gradle-проектов, так это анализа кода, Find usages, Go to declaration, Go to symbol, Type hierarchy — т.е. всей дополнительной функциональности для Java, что показана здесь. А остальное все будет — для Gradle, и для C#, и для PHP, и для черта в ступе тоже будет.
                                                  0
                                                  +1 за PHP

                                                  Only users with full accounts can post comments. Log in, please.