JetBrains Upsource EAP: a product for viewing repositories and code review, with which you can now play with

    Habr, hello!
    Less than a year ago, we talked about developing our new web platform for viewing source code.

    Over the years, Upsource has undergone a lot of small and large changes and has become, in particular, a tool for code review. The other day, we opened the EAP program (Early Access Program), and Upsource pre-release builds are now available to everyone. At the time of writing, the number of applicants is rapidly approaching a thousand, and it is possible that you will also be interested to personally get acquainted with our new product.

    Briefly, JetBrains Upsource is a product that is installed on the company's internal server (on-premises) and provides navigation through source code repositories, code analysis, allows you to discuss code and conduct code review.

    Since the product is young, but its capabilities, both current and potential, are very extensive, we will briefly indicate what Upsource now knows and what it cannot.

    So, here is what Upsource now allows you to do:

    • Keep track of changes in existing repositories based on Git, Mercurial, Subversion and / or Perforce , including seeing all current and pre-existing branches, the history of their branching and merging into the master. You can connect to Upsource both repositories on the company's internal servers and hosted ones (for example, GitHub).
    • Search the history of changes in the repository. Using queries (the syntax is similar to queries in YouTrack), you can make selections of the project’s history, for example, show changes only in a certain branch made by a particular developer, appearing in a given time range, or having certain words in a commit message.
    • Explore changes in new revisions in detail. You can view the changes both by squeezing ( inline mode ) and by comparing two adjacent revisions ( side-by-side ).
    • Read the contents of the repository in any revision, file by file. Upsource allows you to view the structure of any revision, open it from a tree or search for any files in the revision, study the history of their changes, find out who and when last ruled a particular line of code, and initiate discussions directly on file listings.
    • Use static code analysis in Java projects, that is, see in the browser all those hundreds of Java inspections that IntelliJ IDEA has . Inspections are visible both when viewing listings of Java files, or when examining any commit when switching to side-by-side diff mode . Also for Java, additional navigation options are available: Go to Symbol, Go to Declaration, Find Usages, Type Hierarchy - all that traditionally exists only in the IDE.
    • Discuss the code and its changes, or conduct a code review. There is complete freedom of action: you can discuss specific problems in the code and call authors to account informally, or you can start a code review on new commits so that some colleagues are just aware of the changes and others can review your work. Both stand-alone discussions and code review in Upsource are good because their life time is unlimited. If, when you once studied an old revision of a file, you noticed insufficient handling of exceptions and informed the author about it, created a discussion, and the author proudly ignored your comment, then the next time this file is submitted for code review, the discussion will be visible to colleagues speaking as reviewers.

    Now briefly about what Upsource does not allow now:

    • Create repositories, open and close branches. Upsource has not yet been trained in the full management of repositories, but we understand that moving in this direction is very logical.
    • Live in the cloud. Now and for the foreseeable future, Upsource is a tool designed to be installed on internal servers of companies.
    • Conduct a code review in the IDE, or at least get out of it. However, we are working on a plugin for IntelliJ IDEA for code review, and it should be ready for the release of Upsource 1.0.
    • Conduct code review on changes that have not yet reached the repository. Of the two flavors of code review — pre-commit review and post-commit review — Upsource only supports the latter. Perhaps someday we will support the pre-commit review, but this has not yet been decided.
    • Configure rules (workflow) for code review. If you have accepted that the changes in module A should be reviewed by two senior developers, and even the half-teams should look at them, it will not be possible to automate this and similar rules. We will work on rule support, but after the release of Upsource 1.0.
    • Perform static code analysis in other languages. Moreover - not all Java projects are supported (for example, Maven is supported, but Gradle is not yet available). We are asked about support for other languages ​​(C #, Scala, Python, Ruby) and we think, but we even do something, but there is nothing to show to the public yet.

    In order to better understand what Upsource is, we suggest watching a 10-minute video from our technical evangelist Hadi Hariri :

    What can you do if you are interested in Upsource?

    • Download the Upsource Prerelease Build by joining the Early Access Program (EAP). If you have the time and desire to put the build, see how your projects look in it, and make some impression about the product, this option is for you.
    • Subscribe to product news to stay up to date with upcoming beta releases and the final release. We understand that the ability to play with pre-release versions of server products is not encouraging for everyone, so if you just want to know when Upsource will be released, sign up.
    • Just learn more about Upsource . The official site has a more representative overview of the capabilities of Upsource as a tool for viewing repositories and code review - of course, in English.

    Upsource, like many other JetBrains tools, has been tested on our internal tasks. Currently, our Upsource installation processes 56 source code repositories, including one of the largest public GitHub repositories - IntelliJ IDEA Community Edition.

    We hope that the pre-release phase will last several months and by the end of this year Upsource 1.0 will be released.

    JetBrains Team

    Also popular now: