Code AI platform with Code Search & Cody
Go to file
Camden Cheek fe50452af7
gRPC: run tests with and without gRPC (#47770)
The migration to gRPC will take a significant amount of time, and until
we are fully migrated and are able to remove the non-gRPC codepaths, we
need to be confident that both codepaths work correctly.

Our options here include: 
1) duplicating every test to run with and without gRPC
2) adding a `TestMain` to every test package that reruns the suite with
and without gRPC
3) manually adding tests for all the codepaths that are interesting to
gRPC
4) always running both the HTTP and gRPC codepaths in parallel
5) mirror the test steps in CI to run both with and without gRPC

None of the options are good, but a solution here is necessary avoid
introducing regressions during the migration. This PR implements option
5 because it is the least bad option that is also the easiest to rip out
when it is no longer needed.

This PR updates our CI pipeline generator to duplicate most of our go
tests (everything except database tests) as well as our backend
integration tests. It does this by adding the environment variable
`SG_FEATURE_FLAG_GRPC`, which is respected when clients are deciding
whether to use gRPC or HTTP.

Co-authored-by: Geoffrey Gilmore <me@ggilmore.net>
2023-02-17 12:38:41 -07:00
.aspect [SG-46115] - Merge the search-ui package into the branded package (#46197) 2023-01-11 18:27:19 +01:00
.buildkite bazel: introduce build files for Go (#46770) 2023-01-23 14:00:01 +01:00
.github chore: delete outdated team label automation (#47803) 2023-02-17 14:07:04 +00:00
.vscode vscode settings: fix jest extension (#47217) 2023-01-31 09:56:43 -08:00
client experimental search input: Add predicate support (#47809) 2023-02-17 20:23:18 +01:00
cmd gRPC: run tests with and without gRPC (#47770) 2023-02-17 12:38:41 -07:00
dev gRPC: run tests with and without gRPC (#47770) 2023-02-17 12:38:41 -07:00
doc gRPC: run tests with and without gRPC (#47770) 2023-02-17 12:38:41 -07:00
docker-images Resolve vulnerabilities in containers by updating dependencies (#46330) 2023-02-16 16:34:38 +00:00
enterprise gRPC: run tests with and without gRPC (#47770) 2023-02-17 12:38:41 -07:00
internal gRPC: run tests with and without gRPC (#47770) 2023-02-17 12:38:41 -07:00
lib bazel: add filegroup for testdata (#47743) 2023-02-16 15:51:03 +00:00
migrations codeintel: Add global code intel status store methods (#47815) 2023-02-17 13:13:38 -06:00
monitoring bazel: update buildfiles (#47744) 2023-02-16 16:32:59 +01:00
schema Ranking: Add an experimental flag for FlushWallTime (#47649) 2023-02-15 11:55:42 -08:00
third_party bazel: update buildfiles (#47744) 2023-02-16 16:32:59 +01:00
third-party-licenses all: entirely remove minio support (#45311) 2022-12-06 18:02:43 -07:00
ui/assets bazel: introduce build files for Go (#46770) 2023-01-23 14:00:01 +01:00
wolfi-images Add Wolfi base images (#47034) 2023-01-31 12:09:09 +00:00
wolfi-packages Add Wolfi base images (#47034) 2023-01-31 12:09:09 +00:00
.bazelignore bzl: add backstage node_modules it bazel ignore (#47738) 2023-02-16 09:01:55 -05:00
.bazelrc Initial Bazel Setup (#45052) 2022-12-02 12:57:14 +01:00
.bazelversion build: upgrade bazel to 6.0.0 (#47049) 2023-01-29 17:37:55 +01:00
.browserslistrc web: migrate from yarn to pnpm (#46143) 2023-01-11 19:50:09 -08:00
.dockerignore web: migrate from yarn to pnpm (#46143) 2023-01-11 19:50:09 -08:00
.editorconfig chore: Add .lua to editorconfig. (#44267) 2022-11-11 15:25:32 +08:00
.eslintignore [experiment] Merge SvelteKit prototype into main (#47238) 2023-02-13 17:53:23 +01:00
.eslintrc.js web: remove the remaining uses of useHistory() (#47533) 2023-02-13 03:57:23 -08:00
.gitattributes chore: Fix pattern in .gitattributes to match mock files. (#44331) 2022-11-14 10:45:28 +08:00
.gitignore Sourcegraph App (single-binary branch) (#46547) 2023-01-19 17:35:39 -07:00
.golangci-warn.yml internal/resources-report: remove tool (#46941) 2023-01-25 10:34:59 -08:00
.golangci.yml internal/resources-report: remove tool (#46941) 2023-01-25 10:34:59 -08:00
.graphqlrc.yml Support multiple GraphQL schema files (#20077) 2021-04-19 14:35:49 +02:00
.hadolint.yaml bump comby version to 1.7.1 (#35830) 2022-05-20 20:12:01 -07:00
.mailmap mailmap: update replacements for Joe (#29614) 2022-01-12 10:56:56 +08:00
.mocharc.js Revert "regression-tests: update custom mocha reporter to exit rather… (#41542) 2022-09-08 19:48:01 +00:00
.npmrc web: fix pnpm-lock issue (#47478) 2023-02-09 22:04:31 -08:00
.percy.yml Update browser extention installation detection logic on web (#32449) 2022-03-14 23:29:39 +06:00
.prettierignore rework plugin structure and implement frontside blogpost (#46883) 2023-02-15 11:49:51 +02:00
.stylelintignore rework plugin structure and implement frontside blogpost (#46883) 2023-02-15 11:49:51 +02:00
.stylelintrc.json web: drop bootstrap depenedency (#41401) 2022-09-07 03:11:26 -07:00
.tool-versions asdf: update fd to 8.X (#46506) 2023-01-18 16:40:08 +01:00
.trivyignore ci: ignore benign CVE-2021-43816 in prometheus (#31069) 2022-02-11 16:49:10 +00:00
babel.config.js Add pagination to saved searches pages (#45705) 2023-01-05 21:11:42 +05:30
BUILD.bazel bazel: fix sg starts tests in //dev/sg (#47694) 2023-02-16 07:28:28 -05:00
CHANGELOG.md changelog: cut sourcegraph@4.5.0 (#47839) 2023-02-17 18:18:52 +00:00
CONTRIBUTING.md Docs: Fix docs page link in main CONTRIBUTING.md (#45160) 2022-12-05 14:57:45 +01:00
deps.bzl bazel: update buildfiles (#47744) 2023-02-16 16:32:59 +01:00
doc.go
flake.lock nix: use go1.20 (#47541) 2023-02-13 12:19:12 +02:00
flake.nix nix: use go1.20 (#47541) 2023-02-13 12:19:12 +02:00
gen.go chore: Update go-mockgen (#44305) 2022-11-11 19:24:00 +00:00
go.mod internal/database: add aws rds iam auth support (#47585) 2023-02-17 10:53:51 -08:00
go.sum internal/database: add aws rds iam auth support (#47585) 2023-02-17 10:53:51 -08:00
graphql-schema-linter.config.js Support multiple GraphQL schema files (#20077) 2021-04-19 14:35:49 +02:00
gulpfile.js web: drop legacy GraphQL schema generator (#45945) 2022-12-25 18:10:20 -08:00
jest.config.base.js web: migrate from yarn to pnpm (#46143) 2023-01-11 19:50:09 -08:00
jest.config.js tests: use glob for jest projects field (#29681) 2022-01-13 01:11:52 -08:00
LICENSE update licensing language (#25620) 2021-10-04 15:40:59 +01:00
LICENSE.apache Move all client code into client/ folder (#14480) 2020-10-07 22:23:53 +02:00
LICENSE.enterprise clarify license (#2543) 2019-03-03 16:39:46 +08:00
lighthouserc.js web: migrate from yarn to pnpm (#46143) 2023-01-11 19:50:09 -08:00
mockgen.temp.yaml rbac: assign roles when a user is created (#47406) 2023-02-15 16:47:23 +01:00
mockgen.test.yaml codeintel: crate bulk syncer paging (#47607) 2023-02-14 16:32:28 +00:00
mockgen.yaml mocks: Reorganize mock definitions into multiple files (#36967) 2022-06-27 20:59:16 +00:00
package.json add a basic Cody page at /cody (feature-flagged) (#47582) 2023-02-14 06:00:58 -10:00
pnpm-lock.yaml release-tool: refactor release config (#47711) 2023-02-17 11:00:42 -07:00
pnpm-workspace.yaml web: sync TS project refenreces (#46407) 2023-01-16 18:55:10 -08:00
postcss.config.js extensibility: add featured extensions to registry (#21665) 2021-06-10 13:55:20 -04:00
prettier.config.js
README.md Improve Markdown rendering (#47074) 2023-01-30 13:36:56 -08:00
renovate.json chore: add test plans to bot and release tool PRs (#31351) 2022-02-22 07:53:25 -08:00
SECURITY.md consolidate security policy (#7906) 2020-01-21 10:03:11 -08:00
service-catalog.yaml lib/servicecatalog: init to distribute catalog (#46999) 2023-01-26 17:22:27 -08:00
sg.config.yaml chore: bump docsite version to 1.9.1 in sg config (#47648) 2023-02-15 18:30:03 +08:00
shell.nix nix: fix nodejs version used by pnpm (#47680) 2023-02-15 21:33:31 +02:00
svgo.config.js Performance: Optimize static SVG assets with SVGO (#26285) 2021-10-27 15:27:36 +01:00
tsconfig.all.json web: fix pnpm-lock issue (#47478) 2023-02-09 22:04:31 -08:00
tsconfig.base.json web: fix pnpm-lock issue (#47478) 2023-02-09 22:04:31 -08:00
tsconfig.bazel.json web: fix pnpm-lock issue (#47478) 2023-02-09 22:04:31 -08:00
tsconfig.eslint.json web: fix pnpm-lock issue (#47478) 2023-02-09 22:04:31 -08:00
WORKSPACE bazel: fix gazelle-buf and add directives for the protoc compilers for grpc (#47325) 2023-02-02 17:02:31 +01:00

Sourcegraph 4.0

DocsContributingTwitter

Build status Scorecard Latest release Discord Contributors


Understand, fix, and automate across your codebase with Sourcegraph's code intelligence platform

 


4.0 Features

  • Understand usage and search structure with high-level aggregations of search results
  • A faster, simpler search experience
  • Configure precise code navigation for 9 languages (Ruby, Rust, Go, Java, Scala, Kotlin, Python, TypeScript, JavaScript) in a matter of minutes with auto-indexing
  • Your favorite extensions are now available by default
  • Quickly access answers within your codebase with a revamped reference panel

🏗️ High-leverage ways to improve your entire codebase

  • Make changes across all of your codebase at enterprise scale with server-side Batch Changes (beta)
    • Run large-scale or resource-intensive batch changes without clogging your local machine
    • Run large batch changes quickly by distributing them across an autoscaled pool of compute instances
    • Get a better debugging experience with the streaming of logs directly into Sourcegraph.

☁️ Dedicated Sourcegraph Cloud instances for enterprise

  • Sourcegraph Cloud now offers dedicated, single-tenant instances of Sourcegraph

📈 Advanced admin capabilities

  • Save time upgrading to Sourcegraph 4.0 with multi-version upgrades
  • View usage and measure the value of our platform with new and enhanced in-product analytics
  • Uncover developer time saved using Browser and IDE extensions
  • Easily export traces using OpenTelemetry
  • Quickly see the status on your repository and permissions syncing
  • Measure precise code navigation coverage with an enhanced analytics dashboard

Deploy Sourcegraph

Self-hosted

Local machine

Development

Refer to the Developing Sourcegraph guide to get started.

Documentation

The doc directory has additional documentation for developing and understanding Sourcegraph:

License

This repository contains both OSS-licensed and non-OSS-licensed files. We maintain one repository rather than two separate repositories mainly for development convenience.

All files in the enterprise and client/web/src/enterprise fall under LICENSE.enterprise.

The remaining files fall under the Apache 2 license. Sourcegraph OSS is built only from the Apache-licensed files in this repository.