What to Look for in Java 9 Code

We’ve previously covered at What to Look for in Java 8 Code, now Java is moving faster than ever it’s time to do an update and cover what to look for in Java 9 code. While Java 9 has even now been replaced with Java 10, and Java 11 in coming in September, these Java 9 features are, of course, available in Java 10 and 11. If your application is using any version later than Java 8 you may benefit from these tips.

Continue reading

Posted in Code review practices | Tagged , , | 3 Comments

Upsource 2018.1.584 is available

The new update comes with a number of bug fixes including a fix to a regression in JIRA integration where it was not possible to enable it for newly created projects (UP-9992).

For those of you using the Upsource Integration IDE plugin, this update brings a small new feature. You can now share the Server URL setting you’ve set in your plugin with the rest of the team (UP-9637).

Check out the complete release notes and download the new build.

Posted in Update | Leave a comment

Orderly code reviews in Upsource

Code review like no other development practice relies on humans being efficient. And for most of us to achieve that, it’s important to have our tasks well organized and our time well planned.

Upsource takes care of a lot of things for you without any need to configure anything. For example, if you have a branch review, it’ll automatically add new revisions to it. It’ll promptly notify you about things that require your attention. It keeps track of which changes you have seen, and which you haven’t so that you only need to review those you haven’t seen.

With some configuration required you can automate away a lot more. You can set up a custom workflow that can create reviews, assign reviewers from a certain pool of users, close reviews and/or resolve discussions upon everyone accepting the changes.

If that’s not enough, Upsource gives you some tools to add that extra orderliness. Let’s look at some of them.

By and large, it is preferable for reviewers to do their part as soon as possible so that code reviews do not pile up, block the process, become less relevant, and harder to merge. However, it may happen that a certain reviewer or a group of reviewers accumulates a number of code reviews to go through. In such scenario, it would be helpful to them to be aware of the priorities of those code reviews. One way to go about it would be to have a habit of manually setting a Due Date for code reviews when you know it.

Code Review Due Date

Alternatively, as a team, you can have code review-level labels to signify priorities. You can have a single label to mark certain code reviews as “urgent” or create a more granular system of priority labels.

Code Review Priority Labels

Labels, of course, can be used for other things too. For example, if you create a code review for a branch or a pull request, and want to consult with your colleagues on some design decisions early on, when it’s not too late to discuss these things, you can label that review as “help wanted”. If, on the other hand, you’re not ready to show your changes to reviewers, you can put “work in progress” there and switch to “ready for review” when needed.

You can, if you want to, use code review labels to identify the type of a change in a code review (bug, feature, etc.), although, one can argue that it’s more appropriate to have this information in either commit message or linked through an issue tracker ticket. On the contrary, labeling discussions within a code review can be helpful. Upsource has pre-defined discussion labels like “bug”, “enhancement”, etc., but you can, of course, add more. For instance, “technical debt”.

Discussion Labels

When starting a discussion in a code review, you can also structure your own feedback in an actionable manner. If you have a number of suggestions on how to improve the code you are reviewing, use markdown to generate a checklist in your comment. Indicate incomplete items with - [ ], and completed ones with - [x]. This will render a list of checkboxes in the comment. As you or the code author go through the checklist, you can simply check or clear boxes to automatically update your checklist.

Checklist in a comment

Last but not least, check your notification settings – click on your profile picture at the top right corner, and go to “Notifications”. While the most important notifications are turned on by default, there are some that are considered optional but you may find useful. Like, a reminder that you have forgotten to complete a review, or notification about activities sync with GitHub.
You can also customize your notifications to receive updates on very specific things like certain files being changed.

Custom Notifications

While there’s no “one suits all” guide on how to better organize your code reviews, I hope you’ve found some ideas in this post that’ll work for your team.

Happy code reviews!

Posted in Code review practices, Feature | 2 Comments

Upsource 2018.1.539 update is out!

In this Upsource update we have made adding revisions to a code review a little easier (UP-9849). Also, a revision’s page now has links to its parent revisions to provide you with more context (UP-9879).

The IDE plugin gained the ability to merge pull requests for GitHub and GitLab projects.

As always, an update like this comes with a bunch of fixes. To name a couple, we have addressed the issue of Upsource not working in Safari in certain setups, and the problem with filtering suggested users (UP-9875).

Built-in Hub was updated to version 2018.2.9958.

Last but not least, if you have a large Upsource installation and you have been experiencing memory consumption issues, this update contains some important fixes for such installations.

If you’d like to see the complete list of fixes, take a look at the release notes. Now, go ahead and download the new build!

Posted in Update | 4 Comments

Upsource 2018.1 is out!

Good news, everyone – Upsource 2018.1 is here! This release adds a number of frequently requested features to give you even more control over the code review process. It also incorporates brand new versions of IntelliJ IDEA engine, Hub, and Cassandra. But there’s more – read on for the release highlights.

Code review labels
To help your team better organize code reviews, Upsource 2018.1 introduces code review labels. Use them to mark urgent code reviews, categorize different types of code reviews, and add any other significant identifiers that will help you later find the code review faster. This functionality also allows Upsource to support GitHub pull request labels.

Attachments in reviews
Previously, you could attach images (e.g. screenshots) to Upsource code review comments. With this release, we’re taking this functionality one step further. Now you can attach a file to a code review comment, for instance, a relevant piece of documentation, some specifications, or any other file that isn’t in your repository.

Mark file as unread
To give you more control over the code review process and pace, we have added an option to mark a file as “unread”. This way you can clearly see which files you intended to return to and so be sure not to forget anything.

Checklists in comments
If you have a number of suggestions on how to improve the code you are reviewing, use markdown to generate a checklist in the comment. Indicate incomplete items with [ ], and completed ones with [x]. This will render a list of checkboxes in the comment. As you or the code author go through the checklist, you can simply check or clear boxes to automatically update your checklist.

Updated IntelliJ IDEA and Hub
This release comes with a built-in Hub 2018.1 which brings in the required functionality so you could make your Upsource instance GDPR compliant.
We have also updated the IntelliJ IDEA engine to enable support for Android Studio 3.0 projects, and we have switched to a newer Cassandra.

Built-in TLS support
In this release, we have added built-in TLS support that allows you to establish an encrypted HTTPS connection with TLS (SSL) between your Upsource server and its clients. You can configure all the necessary settings in the Upsource installation wizard. What this means is that you no longer have to use a third-party TLS-terminating proxy server although you still can if you choose to.

There’s more! If you’d like to learn more about the new Upsource 2018.1 features, please check out the What’s New page.

Eager to try? Download the build and don’t forget to backup your current instance!

Posted in Release | Leave a comment

Upsource 2017.3.2888: security update with functionality for GDPR compliance

This Upsource update addresses a recently discovered security issue and is recommended for all users.

Upsource 2017.3.2888 also includes the latest version of Hub (Hub 2018.1). This new version introduces an important feature — “User Agreement”. It is required for GDPR (General Data Protection Regulation) compliance.

Hub 2018.1 comes with the functionality to store a user agreement to meet GDPR requirements. To access and use Hub, users should accept this agreement. If you are an admin, you are now able to add the agreement, edit, and download it.

This lets you collect and track individual acceptance of an information notice as outlined in the General Data Protection Regulation (GDPR) requirements for businesses that operate in EU member states.

Additionally, this build contains a number of bug-fixes.

Check out the Release Notes for more details and download the build.

Posted in Update | Leave a comment

Upsource 2017.3.2774 update is out!

Please welcome the first Upsource update of the year 2018. It comes packed with bug fixes and improvements.

Among major changes we’d like to mention, we have updated the database engine and performed a massive refactoring of the database layer to increase responsiveness, especially on larger installations.

We’ve also introduced a couple of small features:

  • UP-9474: Support searching for reviews by branch name
  • UP-9493: Add the ability to remove (or hide) predefined labels
  • UP-9508: Reopen review when commit matches review or issue ID

Check out the complete Release Notes for more details and download the build.

Posted in Update | Leave a comment

Upsource 2017.3

Hi everyone!

With holidays just around the corner, we’re happy to bring you one more Upsource update – Upsource 2017.3. The major focus of this release is on updating the core Code Intelligence engine to bring you all the newest code inspections and navigation functionality for all the supported languages.

Updated code intelligence engine

Apart from this, we’ve added some features you may also find useful, such as:

  • User groups in custom workflows
  • Read/unread status of reviews
  • Discussions filter in all code views
  • Built-in Hub was updated to 2017.4
  • And more!

Check out our What’s new page for more information and download the new version.

PS: We haven’t changed the database version in this release so you can upgrade your instance as you would with a bug-fix update.

Happy code reviews!

Posted in Release | 2 Comments

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 | Leave a comment

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