Upsource 2017.2.2398 is out!

A new bug-fix update for Upsource 2017.2 has been published — build 2398. It contains more compatibility fixes for Google Chrome 61 as well as several other improvements:

  • When running a distributed installation of Upsource with multiple analyzers, it is no longer necessary to manually distribute projects between analyzers as this is now done automatically.
  • When code intelligence is enabled, Upsource is now able to detect the build system automatically: IntelliJ IDEA, Maven, or Gradle. It is still possible to configure it manually, of course.
  • PHP Composer support was improved significantly.
  • Some Gradle projects rely on the “Create separate module per source set” option being disabled in IntelliJ IDEA. It is now possible to disable it in Upsource as well.

See the Release Notes for more details. This minor update is recommended for all users and can be downloaded by following this link.

Posted in Uncategorized | Comments Off on Upsource 2017.2.2398 is out!

Upsource 2017.2.2307 update is out

Today we have published a new bug-fix update for Upsource 2017.2 — build 2307. It contains important compatibility fixes for Google Chrome and a number of other fixes. This minor release is recommended for all users. Check out the Release Notes for more details and download the update.

The Upsource Team

Posted in Update | 4 Comments

JIRA Workflows support in Upsource

If you’re using JIRA workflows and have code review as a part of it, you’ll be pleased to find out that Upsource 2017.2 can apply issue transitions automatically.

Let’s say you have a JIRA workflow set up that looks something like this. We won’t go into detail on how to configure a JIRA workflow – please refer to JIRA documentation.

JIRA diagram

Now, if we look at the text version of it, we’ll see which transitions we should let Upsource know about:

JIRA transitions

We, of course, assume that you already have JIRA integration enabled and configured in Upsource. If not, check out this post.
Now, in Upsource, go to Integrations tab in your project’s settings, and simply fill in the transitions names you want Upsource to apply to JIRA issues when a code review is updated.

Transitions in Upsource

That’s it! Have fun reviewing and enjoy smooth workflow integration!

Posted in Feature | Leave a comment

NPM support in Upsource 2017.2

In the latest Upsource release we have further extended the reach of JavaScript code intelligence by introducing support for npm and yarn package managers.

Upsource will look into your package.json file(s) and install the required dependencies so that you can get more out of Go to declaration and Find usages actions.

The downloaded dependencies are intelligently cached.

npm support

Here’s how you can enable JavaScript support in your project:

  • Make sure Node.js, npm and/or Yarn are installed on the Upsource server.
  • Remember: it’s better to have package-lock.json (for npm) and yarn.lock (for Yarn) stored in version control, it makes installation of dependencies much faster.
  • In Upsource, go to the Code Intelligence tab in your project’s settings, and click Enable.
  • Choose your JavaScript flavor, and enjoy!

Want to learn more about JavaScript support in Upsource? Check out this post.

Posted in Feature | Leave a comment

Upsource 2017.2.2197 is hot off the press

Please welcome the first bug-fix update for Upsource 2017.2 — build 2197. This minor release contains over 30 fixes and is recommended for all users. See the Release Notes for more details.

Posted in Release | Leave a comment

Python support in Upsource

The latest Upsource release brings Python code insight functionality to help developers understand new changes in a familiar manner and be more efficient when reviewing them.
The code insight features in Upsource include server-side static code analysis and code-aware navigation. These features allow you to understand code better when browsing through it and perform code reviews more efficiently. Let’s take a look at them.

Navigation

It might seem like a trivial thing, but the ability to navigate through the code is something we simply take for granted when using an IDE. Yet these features are often missing when viewing code in a web-based tool. Upsource, however, lets you click on a symbol to navigate to its declaration.

Python Navigation

When there’s a new change, you most likely would like to see its impact. Say, if a function has been modified, you’d probably want to know how it affected its usages. You can see in the screenshot above that you can simply highlight symbol’s usages in the file when browsing it, or find all usages. When viewing the contents of a commit, in addition to Find Usages action, you can get a usages diff that helps to learn how this change affected the usages of a particular symbol.

Find Usages

Intuitive navigation is great for a reviewer as it lets you browse through the code in a way that’s natural for you, rather than having some arbitrary order imposed on you – it makes it easier to see the context of the changes under review.

Static code analysis

There’s another IDE feature that would be extremely useful during code review – code inspections. You’re probably used to an IDE, like PyCharm, giving you pointers on where the code could be simpler, clearer, and generally a bit better. If your code review tool offered the same kind of advice, it would be easier to evaluate the quality of the code.
Python Code Inspections

Introduced and fixed issues

You can see the static code analysis results for any revision when simply browsing the code or doing a code review. However, when a change is part of a code review, you get additional help from Upsource. It shows what problems have been fixed with the new change and what new possible issues the change introduced.

Introduced issues

Upsource aims to make code review not only as painless as possible but also provide as much help as a tool can, freeing you up to worry about the things that humans are really good at.

Great! How do I get started?

To configure Python support in Upsource, go to the Code Intelligence in your project’s settings. Choose the version of Python and make sure to have python, pip, and virtualenv installed on your Upsource service. Happy reviewing!

Posted in Feature | Leave a comment

Muting a code review in Upsource 2017.2

Let’s say you’ve just fixed a typo in a branch that is undergoing a code review or committed some other minor change. Now, you’ve become one of the authors in this branch review, even though you probably don’t want to follow the review progress.

Unlike watchers and reviewers, authors cannot simply remove themselves from a code review, but in Upsource 2017.2 it is possible to mute it.

If you mute yourself in a code review like that, you will stop receiving updates in your news feed as well as email and browser notifications.

Mute Review

Your userpic will reflect that you’ve muted a review, however, only you will see that. You can unmute the review the same way: hover on your userpic and click “Unmute” – leaving comments in this code review does not unmute you automatically.

If you’re a reviewer or a watcher you can also mute reviews. As opposed to leaving a review, a muted review will still appear in pre-defined search results.

Posted in Feature | Leave a comment

Code review for .NET projects in Upsource

As you know, Upsource has IntelliJ IDEA at its core which brings IDE-level code insight right into your browser. This helps teams that code in Java, PHP, Python, Kotlin, and JavaScript perform code review in a more efficient manner.

This, however, doesn’t mean that projects written in other languages cannot use Upsource as a code review tool. In fact, all of the smart code review functionality such as progress tracking, workflow automation, and intelligent suggestion of reviewers and revisions is language-independent. The only teams that cannot use Upsource are the ones using exotic version control systems. Git, Mercurial, Subversion, and Perforce are supported out of the box.

For some languages, there are extra benefits available that may not be obvious from the first glance. In this post, I’d like to go over some Upsource features that a .NET team can use to make their code reviews more efficient.

ReSharper Code Inspections

Although there’s no built-in ReSharper engine in Upsource, it can receive and present the results of code analysis performed on your TeamCity server.

Note: If you don’t know what TeamCity is, check it out – it’s a great CI server and it’s free up to 20 build configurations.

TeamCity has a built-in ReSharper inspections runner that can be part of your build pipeline. After a simple setup, TeamCity will start sending the results of static code analysis to Upsource, and you’ll be able to see them right in the code.

Resharper Code Inspections

Needless to say, having code analysis warnings at hand during a code review can be of great help when evaluating a changeset.

Upsource Integration plugin for Rider

If you’re using Rider, a cross-platform .NET IDE combining the power of the IntelliJ platform and ReSharper, you can also benefit from Upsource IDE integration plugin.

Having this plugin installed, you can create code reviews when you commit a change, get notified about any updates relevant to you, participate in discussions, review someone else’s changes, and so on – straight from your IDE. This means that you can leverage all of the IDE’s power to help you complete a code review faster and increase its value.

Check out this article to learn more about the plugin’s features.

General Code Review Assistance

Another way Upsource can help a .NET team become more efficient at code reviews is by eliminating all the unnecessary manual work. You can automate your workflow and make sure all the critical code parts and changes are covered, as well as set up automatic assignment of reviewers for each new code review:

Custom Workflow

If you prefer, you can also create reviews manually, of course. In this case, Upsource will suggest reviewers based on historical data of code commits and code reviews, and when a new revision appears, Upsource can let you know if it might be related to a code review in progress:

Revision suggestion

Code review is an iterative process. If a reviewer finds problems in a new change, the author needs to address them and commit a new change which also needs to be reviewed. Upsource tracks reviewer’s progress and optimizes the process – when a new change arrives, the reviewer needs to only look into that latest change, not the whole changeset.

Progress Tracking

You can use labels to help prioritize concerns raised in discussions and resolve discussions when the problem has been addressed or the question has been answered.

You can also integrate Upsource with your issue tracker and create issues straight from discussions, and, if you’re using JIRA, apply transitions for your iteration workflow automatically.

These features can help a .NET team perform code reviews more efficiently, but there’s a lot more to Upsource! Project analytics, powerful search, comprehensive repository exploring, transparent team collaboration, and many small-but-handy features here and there that generally make Upsource so pleasant to work with. If you haven’t yet, give it a try!

Posted in Feature | Tagged , , | Leave a comment

Upsource 2017.2

Good news, everyone – Upsource 2017.2 is here! It comes with a number of highly anticipated features, brings some fun elements into your daily routine and, as usual, enhances the existing functionality. Here’s a quick recap.

  • External Inspection Engines

    Running SonarQube inspections? Or ReSharper/IntelliJ Inspections on TeamCity? Now you can see the results straight in Upsource. This makes a reviewer’s job even easier than before, especially if you’re working on a .NET project!
    ReSharper Code Inspections in Upsource
  • Python Support
    Code insight functionality is now also available to teams using Python. As for other supported languages this includes code-aware navigation, static code analysis, Find Usages and Usages diff.
    Python support
  • Reactions
    When there’s no need for an elaborate answer, give your feedback in a fast and compact form using a reaction.
    Reactions
  • GitLab Support
    We’ve received a number of requests to support GitLab merge requests, so you’ll be pleased to know that you can now perform code review for your GitLab merge requests in Upsource.
  • NPM Support
    To improve “Go to declaration” and “Find usages” in JavaScript code, we install dependencies listed in your package.json file using npm or yarn (whichever is required).
    NPM support
  • Suggested Revisions in Reviews
    We have employed advanced statistical analysis to suggest revisions that should be added to a review. Similar to the reviewer suggestions that were implemented several releases ago, this is another powerful tool that helps you review code more efficiently.
    Suggested Revisions in a Review
  • Achievements
    To make it easier to discover new features and to add some fun to your interactions with Upsource, we are introducing an achievements/badges system. So far we’ve added only a few basic achievements but that’s just the beginning!
    Achievements

That’s not all of it! If you’d like to learn more about the new Upsource 2017.2 features, please check out the What’s New page. See the complete list of changes in our issue tracker.

To try Upsource 2017.2 download the build and don’t forget to backup your current instance!

Posted in Release | 6 Comments

Upsource 2017.1.1922 Is Here

Please welcome a fresh update for Upsource 2017.1 (build 1922). This minor release brings a number of bug fixes and improvements, including IntelliJ IDEA plugin fixes and usability problems. Please check the full list of the Release Notes for more details.

Download the latest Upsource 2017.1.1922 and enjoy all the fresh goodies!

The Drive to Develop!

The Upsource JetBrains Team

Posted in Newsletter, Release | Tagged , | 7 Comments