Written by Christina Forney
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 Automation: first steps toward supporting large-scale code modification
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.
Soon, you can use Sourcegraph to automate large-scale code changes to remove legacy code, fix critical security issues, and pay down tech debt across all of your repositories.
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.
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.
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.
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!
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.
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 occuring 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.
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.
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 (@srcgraph), happy coding!