Sourcegraph 3.35 release

Sourcegraph 3.35 is now available! Here are some highlights from this release:

Precise Code Intelligence for Java, Scala, and Kotlin

Sourcegraph now provides precise Code Intelligence for Java, Scala, and Kotlin. You can now get compiler-accurate “Go to definition” and “Find references” within a Git repository and all transitive dependencies of your codebase. You can find Kotlin or Scala usages from Java code and vice versa, which is particularly useful for mixed-language repositories. Read more about precise Code Intelligence for Java, Scala, and Kotlin in our blog post, and check out our lsif-java documentation for detailed setup instructions and build-tooling compatibility.

An example of the find references feature being used in a Kotlin source file and returning examples in Scala.

Efficiently update multiple branches of a repository with Batch Changes

Bumping up a dependency or changing boilerplate code in several branches of the same repository is painful, repetitive work that's a great candidate for a batch change. Batch Changes now allows you to publish changesets to several branches in the same repository, rather than a single branch per repository. This is particularly useful, for example, when long-lived branches are used to define versions or releases.

Changelog highlights

  1. Batch Changes
    Individual batch changes can publish multiple changesets to the same repository by specifying multiple target branches using the `on.branches` attribute. This allows you to efficiently update long-lived branches for recent changes or upgraded dependencies.
  2. Search
    The search bar is no longer auto-focused when navigating between files. This allows you to use the keyboard shortcut Cmd+LeftArrow (or Ctrl-LeftArrow) to go back to the browser's previous page instead of moving the cursor to the first position of the search bar.
  3. Search
    Using `select:repo` in search queries will now stream results incrementally, greatly improving speed and reducing time-to-first-result.
  4. Repositories
    External services will now stop syncing if they exceed the user- or site-level limit for total number of repositories added. They will only continue syncing if the extra repositories are removed or the corresponding limit is increased. Previously, they attempted to retry syncing indefinitely.
  5. Repositories
    Non-bare repositories found on Gitserver will now be removed by a janitor job. Since non-bare repositories fail to fetch when you have a working copy, this will prevent clutter from repositories that are unable to update.
  6. Batch Changes
    Fixed a bug where moving a changeset from draft state into published state did not work on GitLab repositories.
  7. Batch Changes
    Fixed a bug where modifying changesets on Bitbucket Server could previously fail if the local copy in Batch Changes was out of date.
  8. Search
    Fixed a bug introduced in 3.34 where certain regexp syntax for repository searches caused the entire search, including non-repository searches, to fail.

Get Cody, the AI coding assistant

Cody makes it easy to write, fix, and maintain code.