July 20, 2021
⚠️ WARNING: Users upgrading from 3.29 are advised to upgrade directly to Sourcegraph 3.30.3. This release contains critical fixes to issues in previous 3.30.x releases.
If you have already upgraded to 3.30.0, 3.30.1, or 3.30.2 and are encountering issues, please follow this migration guide.
Sourcegraph 3.30 is now available! For this release, we introduced:
Batch Changes features a powerful idempotent spec-based workflow, where the spec file defines the batch change. In particular, the published
property defines if changesets are published to the codehost or not.
This workflow is great for reproducibility and having a completely CLI-based workflow, and we are keeping it!
In addition, we are allowing changesets to be published and unpublished directly from the GUI, to make the workflow more approachable to new users. Simply omit the published
field in the specs, and the GUI will become the source of truth for publishing changesets.
You can now add your code insights to individual dashboard pages, in order to group and share a contextual subset of all created insights. Dashboards can have one of three possible visibility scopes: private, users in your organization, or global. For more on dashboards, see the docs.
We've added a new search reference to the search results sidebar. The search reference lists search filters which can be expanded to display documentation and examples. The reference can be used to learn about filters or as a shortcut to using the filters in queries.
Try out our brand new experimental feature that builds on top of Sourcegraph's semantic understanding of your code to analyze and generate API documentation. We're starting with Golang and would love to hear from you what language we should tackle next.
Read the Sneak peek: API documentation generated for all your code blog post for more details.
Batch Changes changesets can now be published from the Sourcegraph UI.
Code InsightsCode Insights can now be grouped into dashboards.
SearchSearch References is a new search sidebar section to simplify learning about the available search filters directly where they are used.
API DocsAPI docs is enabled by default in Sourcegraph 3.30.0. It can be disabled by adding "apiDocs": false
to the experimentalFeatures
section of user settings.
Repository syncing is now done in streaming mode by default. Customers with many repositories should notice code host updates much faster, with repo-updater consuming less memory. Using the previous batch mode can be done by setting the ENABLE_STREAMING_REPOS_SYNCER
environment variable to false
in repo-updater
. That environment variable will be deleted in the next release.
Added support for select:file.directory
in search queries, which returns unique directory paths for results that satisfy the query.
Added file:contains.content(regexp)
predicate, which filters only to files that contain matches of the given pattern.
You can now use a new bulk operation to close many changesets at once in Batch Changes.
Code BrowsingAll .frugal
files will now be displayed with Thrift syntax highlighting.
Enabled the ability to query Batch Changes changesets, changesets stats, and file diff stats for an individual repository via the Sourcegraph GraphQL API.
Batch ChangesThe repository page now has a new button to view Batch Change changesets created in that specific repository, with a badge indicating how many changesets are currently open.
Code InsightsExperimental: Search-based Code Insights can run over all repositories on the instance. To enable, use the feature flag "experimentalFeatures": { "codeInsightsAllRepos": true }
.
Search queries now disallow specifying rev:
without repo:
. Note that to search across potentially multiple revisions, a query like repo:.* rev:<revision>
remains valid.
The extensions status bar on diff pages has been redesigned and now shows information for both the base and head commits.
SearchSearch queries now return up to 80 suggested filters. Previously we returned up to 24.
SearchThe lang:
filter suggestions now show all supported, matching languages as the user types a language name.