Sourcegraph roadmap

We want Sourcegraph to be:

  • For developers: the best way to answer questions and get unblocked while writing, reviewing, or reading code.
  • For organizations (engineering leaders and internal tools teams): the infrastructure for developer tools and data.

This roadmap is a curated list of what we are working on now and the direction that we want to move in over the next 12 months. See the Sourcegraph master plan for our high-level product vision.

We ship a release on the 20th day of each month.

Next release: Sourcegraph 3.6 (ships on July 20, 2019).

Overview

We’re continually improving Sourcegraph’s core features for developers:

  • Code search and navigation (with code intelligence)
  • Integration into code review
  • Robust API for automation and reporting on your code
  • Code change notifications (saved searches)

We’re also working toward making Sourcegraph the infrastructure for developer tools and data, with integration into the entire developer workflow (in the editor, code review, and anywhere else they interact with code). In addition to helping developers, this also helps engineering leaders and internal tools teams solve organization-wide problems.

Icon Description
πŸƒ Features we are actively working on.
πŸ™‹ We are hiring for all teams, but especially for these roles.

Owners: @ijt, @attfarhan, @kzh

The goal of search is to help you find code. Here are some search projects we’re planning to work on or already working on to do that more effectively:

  • πŸƒPerformance: get p99 latency under 2s for the search query β€œprint” at 42req/s with 20k repos
  • πŸƒMulti-line: allow \n in queries.
    • Indexed is working, non-indexed is in progress #4518.
  • πŸƒPagination: show the first page of results and wait for the user/client to ask for more.
  • Holex: searching for literal code will just work most of the time, and hole expressions like :[foo] will match meaningful chunks of code.
  • More types/sources of search results (provided by extensions), such as documentation (wiki, Markdown, and Google Docs), issues, PR comments, logs, and configuration data
  • Investigate instant, as-you-type search (Livegrep-style)
  • Improved search relevance and ranking

Saved searches

Owners: @attfarhan

We want to help you stay on top of the code changes you care about, and are working to improve saved searches with better notifications, better integration with code reviews and PRs, and an easier way to add new saved searches and triage results.

  • πŸƒ Improve UI for adding and editing saved searches
  • πŸƒ More configurable notification destinations per-saved search
  • Add GitHub/GitLab PR commit status integration for saved searches
  • Show read/unread saved search results
  • Allow creating issues (GitHub/GitLab/Jira/etc.) from saved search results

Code navigation and intelligence

Owners: @lguychard, @chrismwendt, @felixfbecker, @vanesa

Sourcegraph helps developers navigate code by providing code intelligence when browsing code on Sourcegraph or on supported code hosts (like GitHub) via our browser extension. Code intelligence includes hover tooltips, go-to-definition, find-references, and other capabilities contributed by Sourcegraph extensions like Codecov, Sentry, LightStep, and Datadog.

Core services (repositories and authentication)

Owners: @keegancsmith, @tsenart, @mrnugget

Code modification

Owners: @rvantonder

We will let you perform safe, large-scale refactors of code across repositories, services, and languages.

  • πŸƒ Find and replace string literals across multiple GitHub repositories
  • Find and replace using sophisticated pattern matching and replacement templates (e.g. regex or comby).
  • Add support for modifing code on more code hosts (e.g. Bitbucket Server, GitLab).
  • Create a UI for viewing and managing the state of in progress refactors (e.g. how many PRs are merged, automatically opening new PRs to refactor matching code that just got committed).

Deployment, configuration, and management

Owners: @beyang, @slimsag, @ggilmore

We want to make it easy to set up a self-hosted Sourcegraph instance in minutes, locally or on the most popular cloud providers. It needs to scale to the needs of organizations with thousands of developers, tens of thousands of repositories, and complex cluster and security needs.

Core UX

Owners: We’re hiring! πŸ™‹

  • Speed up page loads and reduce UI jitter
  • Improve keyboard navigation and keyboard shortcuts
  • Investigate more hypertext-like, less app-like UI
  • Improve accessibility
  • Address major pain points for mobile and tablet users

Extension API, authoring, and registry

Owners: We’re hiring! πŸ™‹

The Sourcegraph extension API allows developers to enhance their code review workflow with custom data. We’re working to make the extension API and extension registry even more powerful and useful.

Editors

Sourcegraph integrates with many editors. We want to make it super fast to get the answer you need on Sourcegraph when you’re in your editor, without switching to your browser and losing focus. We’re focused on solving problems for you that local editor search and navigation can’t answer.


Infrastructure for developer tools and data

We want Sourcegraph to be the infrastructure for developer tools and data inside your organization, so you can:

By “developer tools and data”, we mean things like:

  • Repositories and Git data
  • Git history
  • Code ownership and review
  • Build process and environment
  • Test execution, status, and coverage
  • Dependency graph (for imports/libraries and runtime services)
  • Static code analysis and metrics (such as code churn)
  • Cross-references
  • Deployment (where is this code running?)
  • Runtime monitoring and logging

Your existing tools to handle these things would integrate with Sourcegraph; no need to switch.

Build and adopt developer tools more easily

We will let you build and roll out developer tools to every developer in your organization, with seamless integration into the editor, code review, and anywhere else developers interact with code.

  • You can build new tools that analyze code and automate processes without cloning, building, and executing code in each repository, and without needing to integrate one-by-one with all of your other tools and data. They can access all of your developer tools and data in one central place on your Sourcegraph instance, and they can perform actions (such as creating diffs/PRs or sending notifications to code owners) via Sourcegraph.
  • A Sourcegraph extension (which provides integration with the developer tools and data listed above) can be rolled out to every editor, code review, and code host used by anyone at your organization.

Example: You want to encourage better testing among developers in your organization, so you’ve started measuring test coverage in CI. With Sourcegraph, you’d also be able to roll out (optional) test coverage visual overlays to all developers in their editor and code review tool. This would make test coverage more useful and accessible to developers while coding and reviewing, which will yield much faster improvements to your testing culture.

Example: You want to automatically ingest crash logs from your application and create issues from them. To do so, you’d build a tool that parses the stack traces and uses the Sourcegraph API to gather the information to include in the issue: assignment to the code owner of the most recently changed method in the stack trace, a link to the associated code review, logs and traces related to the stack trace, and a list of other services that depend on this code (to help triage). Without the infrastructure Sourcegraph will provide, this kind of automation would be extremely hard to build and fragile.

Consistent, remote-capable development environments

We will let you connect your local editor to your organization’s Sourcegraph instance and immediately get code intelligence, builds, tests, and other development tools on all of your code.

  • The development environment would be centrally configured from your Sourcegraph instance, so every developer would have a consistent environment (subject to user customizations).
  • Computationally intensive tasks (such as builds, code intelligence, and tests) could be offloaded to the remote server. (Some will be harder to make remote than others, and we expect to make gradual progress here.)
  • You could also choose to launch a web-based cloud IDE session with a fully configured developer environment.

Data-driven development insights and reporting

We will let you use data derived from development to make better decisions. You will be able to export this data to your preferred reporting dashboard.

  • Built-in reporting of usage trends for programming languages, dependencies, and services
  • Advanced reporting using information supplied by the developer tools you integrate into Sourcegraph (such as test coverage, code churn, etc.)

Security, compliance, and licensing

We will let you enforce policies and processes around security, compliance, and licensing in a developer-friendly way.

  • Existing tools for security and license analysis will provide the raw list of possible problems.
  • Sourcegraph will provide the workflow for triage, reporting, and fixing the issues (and ensuring they don’t reoccur).
    • Triage and reporting will use Sourcegraph’s understanding of code ownership and review (for assignment) and the dependency graph (for prioritization, such as highlighting when a security issue is found in code used by a user-facing service).
    • Fixing the issue and preventing regressions will rely on automated refactoring.

Example: For companies needing to be PCI compliant, PCI DSS 3.0 rule 6.3.2 requires someone other than the author to review each code change. Using Sourcegraph’s knowledge of the dependency graph for libraries and services, you’ll be able to guarantee that all code used by a PCI-compliant system has been properly reviewed (prior to merging and before release), even if it’s in a separate repository or tree.