sg Vision

Principles

  • sg should be fun to use.
  • If you think "it would be cool if sg could do X": add it! Let's go :)
  • sg should make Sourcegraph developers productive and happy.
  • sg is not and should not be a build system.
  • sg is not and should not be a container orchestrator.
  • Try to fix a lot of the problems in this RFC by encoding conventions in executable code.
  • No bash. sg was built to get rid of all the bash scripts in ./dev/. If you have a chance to build something into sg to avoid another bash script: do it. Try to keep shell scripts to easy-to-understand one liners if you must. Replicating something in Go code that could be done in 4 lines of bash is probably a good idea.
  • Duplicated data is fine as long as it's dumb data. Copying some lines in sg.config.yaml to get something working is often (but not always) better than trying to be clever.

You can also watch this video to get an overview of the original thinking that lead to sg.

Inspiration

Roadmap

The sg label tracks features and improvements for sg that we want to make.

Have feedback or ideas? Feel free to join our community! Sourcegraph teammates can also leave a message in #discuss-dev-infra.

Inspired and want to contribute? Head on over to contributing to sg!