JetBrains Upsource EAP: продукт для просмотра репозиториев и code review, с которым теперь можно поиграться

в 16:53, , рубрики: diff, IDE, intellij, intellij idea, jetbrains, анализ кода, Блог компании JetBrains, браузер кода, навигация, Платформа, подсветка, Программирование


image
Меньше года назад мы рассказывали о разработке нашей новой веб-платформы для просмотра исходного кода.

За прошедшее время Upsource претерпел массу мелких и крупных изменений и стал, в частности, инструментом для code review. На днях же мы открыли программу EAP (Early Access Program), и предрелизные билды Upsource теперь доступны для всех желающих. На момент написания статьи число желающих стремительно приближается к тысяче, и не исключено, что вам тоже будет интересно лично познакомиться с нашим новым продуктом.

Коротко, JetBrains Upsource — это продукт, который устанавливается на внутреннем сервере компании (on-premises) и предоставляет навигацию по репозиториям с исходным кодом, анализ кода, позволяет обсуждать код и производить code review.

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

Итак, вот что сейчас позволяет делать Upsource:

  • Следить за изменениями в имеющихся репозиториях на базе Git, Mercurial, Subversion и/или Perforce, в том числе видеть все текущие и существовавшие ранее ветки, историю их ответвления и вливания в мастер. К Upsource можно подключать как репозитории на внутренних серверах компании, так и размещенные на хостингах (например, GitHub).
  • Проводить поиск по истории изменений в репозитории. С помощью запросов (синтаксис похож на запросы в YouTrack) можно делать выборки истории проекта — например, показывать изменения только в определенной ветке, сделанные конкретным разработчиком, появившиеся в заданном временном диапазоне, или имеющие в коммит-сообщении те или иные слова.
  • Подробно изучать изменения в новых ревизиях. Можно просматривать изменения как выжимкой (в режиме inline), так и сравнивая две смежные ревизии (side-by-side).
  • Читать содержание репозитория в любой ревизии, файл за файлом. Upsource позволяет просматривать структуру любой ревизии, открывать из дерева или искать любые файлы в ревизии, изучать историю их изменений, выяснять, кто и когда последний раз правил ту или иную строчку кода, и инициировать обсуждения прямо на листингах файлов.
  • Пользоваться статическим анализом кода в Java-проектах, то есть видеть в браузере все те сотни Java-инспекций, которые есть в IntelliJ IDEA. Инспекции видны как во время просмотра листингов Java-файлов, так или при изучении любого коммита в случае перехода в режим side-by-side diff. Также для Java доступны дополнительные возможности навигации: Go to Symbol, Go to Declaration, Find Usages, Type Hierarchy — все то, что традиционно существует только в IDE.
  • Обсуждать код и его изменения, или проводить code review. Здесь полная свобода действий: можно обсуждать специфические проблемы в коде и призывать авторов к ответу в неофициальном порядке, а можно заводить code review на новых коммитах, чтобы одни коллеги просто были в курсе изменений, а другие могли отрецензировать ваш труд. И отдельно стоящие дискуссии, и code review в Upsource хороши тем, что время их жизни не ограничено, и если вы, когда-то изучая старую ревизию файла, заметили недостаточную обработку исключений и сообщили об этом автору, создав дискуссию, а автор ваше замечание гордо проигнорировал, то когда этот файл будет в следующий раз подан на code review, дискуссия окажется видна коллегам, выступающим в роли рецензентов.

Теперь коротко о том, чего Upsource сейчас не позволяет:

  • Создавать репозитории, открывать и закрывать ветки. Полноценному менеджменту репозиториев Upsource пока что не обучен, но мы понимаем, что двигаться в этом направлении очень логично.
  • Жить в облаке. Сейчас и в обозримом будущем Upsource — это инструмент, предназначенный для установки на внутренних серверах компаний.
  • Проводить code review в IDE или по крайней мере поменьше из неё вылезать. Впрочем, мы работаем над плагином к IntelliJ IDEA для code review, и к релизу Upsource 1.0 он должен быть готов.
  • Проводить code review на изменениях, которые еще не попали в репозиторий. Из двух разновидностей code review — pre-commit review и post-commit review — Upsource поддерживает только последнюю. Возможно, когда-нибудь мы поддержим и pre-commit review, но это пока не решено.
  • Настраивать правила (workflow) для code review. Если у вас принято, что изменения в модуле A должны быть отрецензированы двумя senior-разработчиками, а еще полкоманды должны на них взглянуть, автоматизировать это и подобные правила пока не получится. Над поддержкой правил мы будем работать, но уже после релиза Upsource 1.0.
  • Выполнять статический анализ кода на других языках. Более того — даже Java-проекты поддерживаются не все (например, Maven поддержан, а Gradle пока нет). Про поддержку других языков (C#, Scala, Python, Ruby) у нас спрашивают и мы думаем, а что-то даже делаем, но показывать на публику пока нечего.

Для того, чтобы лучше понять, что из себя представляет Upsource, предлагаем посмотреть 10-минутное видео от нашего технического евангелиста Hadi Hariri:

Что можно сделать, если вас заинтересовал Upsource?

  • Скачать предрелизный билд Upsource, присоединившись к программе раннего доступа (EAP). Если у вас есть время и желание поставить билд, посмотреть, как выглядят в нем ваши проекты, и составить некоторое впечатление о продукте, этот вариант для вас.
  • Подписаться на новости продукта, чтобы быть в курсе предстоящих бета-релизов и финального релиза. Мы понимаем, что возможность играться с предрелизными версиями серверных продуктов воодушевляет далеко не всех, поэтому если вам лишь хочется знать, когда Upsource пойдет в релиз, подписывайтесь.
  • Просто узнать об Upsource подробнее. На официальном сайте есть более представительный обзор возможностей Upsource как инструмента для просмотра репозиториев и code review — разумеется, по-английски.

Upsource, как и многие другие инструменты JetBrains, был опробован на наших внутренних задачах. На данный момент наша инсталляция Upsource обрабатывает 56 репозиториев исходного кода, в том числе один из самых больших публичных GitHub-репозиториев – IntelliJ IDEA Community Edition.

Мы надеемся, что предрелизная фаза продлится несколько месяцев, и уже до конца текущего года Upsource 1.0 будет выпущен.

Команда JetBrains

Автор: beenom

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js