Upsource: A Platform
(This post was originally published on the JetBrains Company Blog on September 18, 2013)
For the past year or more we have been working hard behind the scenes to modularize the IntelliJ platform. As it stands now, IntelliJ IDEA provides a very extensible and rich platform. In fact, all of our different IDEs, as well as Google’s Android Studio are built on the IntelliJ platform and most of the functionality each flavor provides is nothing more than a series of plugins.
However, we needed to take this one step further, and make it available in a headless way, opening the door to a lot of potential, one of which is Upsource, a server-based platform in itself.
All your code, every single commit, at your fingertips
Upsource is, among other things, a code browser. At any time we can click on a specific commit and browse the code
which gives us a tree view of our Project
From there we can navigate to any file. Source code files provide us not only with syntax highlighting but also advanced navigation. We can click on any symbol to navigate to the declaration or find usages
and have Upsource offer us navigable results, thus making code navigation fast and efficient.
In addition it allows us to navigate to a specific symbol much like we can in a desktop IDE.
Apart from browsing through a commit, we can also use Upsource to view differences between commits. Clicking on a specific commit provides us with information about the changes
which is also available in a side-by-side format
It also helps when it comes to collaborative code review. We can simply select a piece of code and create a URL which we can then send to someone else
highlighting exactly what we want to focus on
Finally there is also an Annotation view which provides a left pane with information about the commits
Beyond browsing: Code Analysis
All of these are good features for both individual browsing as well as collaborative code review. However, Upsource does not stop there. You may have noticed in one of the screenshots that on the right margin there was a little yellow square. Now if you’re used to our tools, either IntelliJ-based IDE’s or ReSharper, a little square in your gutter normally means you’re either good to go (Green), have some issues (Yellow) or you’ve got problems (Red).
Yes. You guessed it. That square is no less than IntelliJ IDEA Code Analysis engine, analyzing your source code and detecting the same issues you see in your IDE, in the browser.
In terms of Navigation and Code Analysis, Upsource currently supports Java but there are plans on supporting other languages in the near future. Much of the groundwork to do this, which was separating the required parts from the IntelliJ platform has been done, so this opens up the door to supporting most of the languages we currently support.
Try it now
While we do not have a public EAP program yet, Upsource is available to try out as a hosted solution right now. You can navigate to upsource.jetbrains.com and browse through two projects on there: IntelliJ IDEA Community Edition and Kotlin. In addition, you can also navigate through a bunch of common JVM libraries, including the entire Android SDK.
As of February 1, 2022, we will no longer sell new licenses or renewals for Upsource or Upsource user packs. We will continue to provide technical support and critical security updates until January 31, 2023. After this, no further updates or technical support will be provided. Why we are dis…
What’s New in Upsource 2020.1
This release introduces a variety of improvements related to GitHub and GitLab synchronization as well as some other features. Please read the release highlights for details. (more…)…
Upsource 2019.1.1460 is available!
Upsource 2019.1.1460 is out! Upsource 2019.1 was failing to start on some Linux systems. In this update, we have fixed this critical issue and made some other improvements. We recommend everyone to update to this latest build. Check out the release notes and download the new build. If you hav…
What’s New in Upsource 2019.1
Great news everyone – Upsource 2019.1 is out! We have added a number of features and improved the performance to smooth out your code review process. It also comes bundled with IntelliJ IDEA 2019.1 and Hub 2018.4, and supports servers running Mercurial 4.9 and newer. For more details, read the re…