This is the list of new features in Upsource 3.0. Upsource 3.5 is already available. Check out what's new for Upsource 3.5.

What's new in Upsource

Upsource 3.0: meet a one-of-a-kind Polyglot Code Review Tool, featuring code insight for PHP, JavaScript and Kotlin, GitHub integration, automated workflows, integration with CI servers and much more!

PHP, JavaScript, Kotlin Code Insight

Unique code insight features that have been available in Upsource for teams using Java are now available for those who develop in PHP. This includes: code-aware navigation, static code analysis, and find usages. Kotlin code insight has been enhanced to support the recently released Kotlin 1.0. Although JavaScript code insight has been available since Upsource 2.0, we have significantly improved it in this version and added ECMAScript 6 support.

GitHub Integration: Pull Requests and More

Upsource 3.0 introduces enhanced support for GitHub projects. First, connecting Upsource to a project hosted in GitHub is now a lot easier and faster with the new Connect to GitHub screen. Just fill in a couple of fields and you're ready to go! When looking at a GitHub project using Upsource, pull requests become branch code reviews and of course you also gain access to smart code insight features. All the comments and other activity is kept in sync. Need to create a new pull request? No problem! Starting with this release you can create and merge pull requests straight from the Branches page in Upsource.

Code Analysis Summary

Code analysis summary is a new addition to Upsource's code insight features. It allows you to get a better understanding of how a particular change has affected overall code quality. Upsource now computes the difference between the previous and the current versions of the code and shows you the issues that were introduced or fixed in the changes you're looking at. This makes the results of Upsource's static code analysis even more useful in the context of a code review.

Automated Workflows

Certain actions around commits and reviews are quite common and can be automated. As a first step, we've added support for automatic creation of reviews and reviewer assignment when someone changes certain parts of the codebase. This can be especially useful if you have a so-called "critical path", a part of your system where you want to be 100% certain no change goes unnoticed by you or other responsible members of your team. More workflow types will follow. If you do not need to create a code review for each change like that but only want to be alerted to it, you can set up Custom notifications in a similar fashion in your own Notifications settings.

Webhooks

Upsource 3.0 provides webhooks support so that you could notify external services, such as an issue tracker, a CI server, or a deployment tool, about events that occur in an Upsource project. When an event occurs inside Upsource, e.g. a code review is created or a comment is added, a JSON payload is sent to the specified URLs using HTTP POST. To set up a project's webhook, go to the project's Settings page and click the Webhooks link. Then, simply enable webhooks and add a trigger.

Build Status

When performing a code review or simply browsing changes, you can now see how these changes affected builds on your CI server. If you're using TeamCity 9.1.x or 10 EAP, simply install the Commit Status Publisher plugin and add it as a build feature to the build configurations that need to inform Upsource about statuses of their builds. If you're using another CI server, you can configure a webhook to send build updates to Upsource.

New Analytics

Analytics in Upsource 3.0 has been redesigned to be more convenient and better group different types of reports. Moreover, you'll find several useful additions. Project treemap offers treemap visualization of project files based on their sizes and number of changes. The Home page now shows project activity pulse, offering a quick glance at the number of commits in your favorite projects over the last year.

IDE Integration Improvements

Upsource IDE plugin has a number of significant improvements such as real-time notifications in IDE, support for copying text from News Feed items and discussions, improved News Feed UI, and links in comments, e.g. to issues. If you have Upsource plugin installed, you can enjoy static code analysis and navigation in a regular diff view in the IDE. The plugin also introduces Smart summary diff: in reviews containing multiple commits it can show only new changes instead of a full diff between first and last revisions.

Easy Upgrade

It is now super easy to upgrade your Upsource instance. Simply backup your current instance the same as before, and let Upsource know where the backup is located when installing the new version.

Reworked Permissions Model

We have significantly expanded the set of available permissions to suit more use cases. For example, you can now let certain users see all the code reviews without letting them participate in them, or give someone permission to create projects without giving them system admin rights.

Other Improvements

  • Find usages works everywhere! Until now, it was only possible to invoke "Find usages" from file view and the side-by-side diff, but not from the review diff. Now, wherever there's a diff view, find usages results are just a click away, conveniently shown next to the changes you're reviewing. The same applies to usages diff.
  • Exclude files from review: Sometimes a project repository hosts files that don't need to go through a code review. Assets, generated code, test data, etc. By specifying the filename wildcards you can have those files excluded from reviews.
  • File contribution details: If you click on the list of committers' avatars in the file view, a popup will appear, telling you exactly how much each person contributed to it.
  • Raise concern button: The "Reject" action has been renamed to "Raise concern". Click "Accept" when you're done reviewing a change and no further actions from the code author is required. Use "Raise concern" when you've discovered a problem that needs to be addressed, or you have questions that need to be answered.