This document lists the technologies used by the Distribution team, what they are used for, and best practices for each within Distribution.
Also see internal infrasturcture and tools for specific infrastructure and tools.
Use cases: Services and applications
Best practices:
- Adhere to the Sourcegraph Golang style guide
Use cases: Complex automation and scripting
Best practices:
- We use Deno as our Typescript runtime instead of Node
- Typescript is not a core part of our expertise, so Deno takes care of tooling and formatting
- Adhere to
deno fmt
, add a CI workflow that validates the result ofdeno fmt --check
- Avoid using third-party dependencies (try to stick to the standard library)
- Scripts should be executable (
chmod +x
) and have some variation of#!/usr/bin/env deno run
as the sha-bang
Use cases: Simple automation and scripting
Best practices:
- Adhere to the Sourcegraph Bash style guide
Use cases: Infrastructure provisioning
Best practices:
- Adhere to the Sourcegraph Terraform style guide
Use cases: Deploying services
Use cases: Providing configuration for our deployment types (work in progress).