Sourcegraph 3.8: Search UI improvements, monitoring tools, code change campaigns, and LSIF-based code intelligence
Sourcegraph is the standard developer platform for code search and navigation at many of the largest and most advanced technology companies. With Sourcegraph, every company has access to the same kind of tools that Google and Facebook developers use every day.
We're excited to announce Sourcegraph 3.8. This release contains lots of behind the scenes work, both foundational and forward-looking.
🤖 Introducing code change management campaigns
Learn more about new functionality that is coming soon to Sourcegraph!
🧠 Beta release of fast and precise LSIF-based code intelligence
Faster, more precise code intelligence for TypeScript, Go, Python, and C/C++.
Every detail that changed in this release.
🎖️ Thank you
Sourcegraph couldn't be what it is without the community.
Introducing code change management campaigns
Soon, you can use Sourcegraph for large-scale code change campaigns to remove legacy code, fix critical security issues, and pay down tech debt across all of your repositories.
Beta release of fast and precise LSIF-based code intelligence
Each Sourcegraph instance ships with basic code intelligence that provides jump to definition and find references for every language. Basic code intelligence works well for many of our customers, but some customers have been asking for more precise code intelligence. Language servers provide precise code intelligence, but they are complex to configure, require separate deployment, and are slow to initialize, so we have added support for LSIF based code intelligence.
Our solution to fast and precise code intelligence is with LSIF. We first wrote about LSIF (Language Server Index Format) in code intelligence using LSIF. This blogpost gives an overview of what LSIF is, and why we are working to support it.
In Sourcegraph 3.8, LSIF-backed code intelligence is available for beta testing by early adopters. The currently supported languages (ones with LSIF indexers) are TypeScript, Go, Python, and C/C++. Check out the documentation for details on how to try it out on your code.
Search result tabs for improved result type discoverability
Many users were not aware of the different search result types that are supported by Sourcegraph, such as diff or symbol results. We have added tabs to the search results page to surface the different result types and make it quick and easy to navigate between them.
Out of the box monitoring of your Sourcegraph instance
Sourcegraph 3.8 introduces out of the box access to monitoring tools for admins to keep tabs on the health of your Sourcegraph instance. Sourcegraph now ships with Grafana and Prometheus built-in, and some basic dashboards for better debugging of your instance. We will continue to work on improving the dashboards and metrics surfaced in the next release, with the goal of providing an accurate view of the health of your instance.
Behind the scenes: Even more benchmarking, automated testing, and QA
Over the last few releases we have worked on improving Sourcegraph’s performance at scale for customers with 30k+ repositories, and we continue to do so. With each major improvement we make to search, we’re now running even more extensive end-to-end load tests to verify our improvements. These load tests enable us to quickly gather and analyze approximately one million search API requests, and automatically generate reports we can interpret and learn from:
We now have greater confidence rolling out search performance improvements. For example, in just the past two Sourcegraph releases we’ve used this same methodology to validate and roll out changes that have resulted in:
v3.6.2 had a 20-99% improvement in text search performance (full load test comparison).
v3.7.2 had a 20x improvement to symbol search performance on large instances (full load test comparison).
We’ve also been hard at work automating even more of our internal testing and QA process that we perform as part of each release. If you haven’t upgraded recently and seen these major improvements, there is no better time than now!
Quickly toggle the browser extension on/off
You can now toggle the browser extension on and off without having to fully disable the extension. This was added to make testing and personal workflows easier for users to quickly opt in and out of the extension capabilities.
- A toggle button for browser extension to quickly enable/disable the core functionality without actually enable/disable the entire extension in the browser extension manager.
- Tabs to easily toggle between the different search result types on the search results page.
hardTTLsetting was added to the Bitbucket Server
authorizationconfig. This setting specifies a duration after which a user's cached permissions must be updated before any user action is authorized. This contrasts with the already existing
ttlsetting which defines a duration after which a user's cached permissions will get updated in the background, but the previously cached (and now stale) permissions are used to authorize any user action occurring before the update concludes. If your previous
ttlvalue is larger than the default of the new
hardTTLsetting (i.e. 3 days), you must change the
ttlto be smaller or,
hardTTLto be larger.
- Sourcegraph now receives pings on which extensions are activated from Sourcegraph.com.
statusIndicatorfeature flag has been removed from the site configuration's
experimentalFeaturessection. The status indicator has been enabled by default since 3.6.0 and you can now safely remove the feature flag from your configuration.
- Fixed an issue where some repositories with very long symbol names would fail to index after v3.7.
- We now retain one prior search index version after an upgrade, meaning upgrading AND downgrading from v3.6.2 -> v3.7.2 is now 100% seamless and involves no downtime or negated search performance while repositories reindex. Please refer to the v3.7+ migration guide for details.
- When re-indexing repositories, we now continue to serve from the old index in the meantime. Thus, you can upgrade to 3.7.1 without downtime.
- Indexed symbol search is now faster, as we've fixed a performance issue that occurred when many repositories without any symbols existed.
- Indexed symbol search now uses less disk space when upgrading directly to v3.7.1 as we properly remove old indexes.
The changelog for this and previous releases is available on GitHub.
Thank you to the many people who contributed to Sourcegraph since the last release!
From the entire Sourcegraph team (@sourcegraph), happy coding!