diff --git a/.gitignore b/.gitignore index 5d2bdc181..dfd1d7043 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,7 @@ cmd/tailscaled/tailscaled # Dependency directories (remove the comment below to include it) # vendor/ + +# direnv config, this may be different for other people so it's probably safer +# to make this nonspecific. +.envrc diff --git a/shell.nix b/shell.nix index f6a7f1396..273ecf9b6 100644 --- a/shell.nix +++ b/shell.nix @@ -1,6 +1,23 @@ +# This is a shell.nix file used to describe the environment that tailscale needs +# for development. This includes a lot of the basic tools that you need in order +# to get started. We hope this file will be useful for users of Nix on macOS or +# Linux. +# +# For more information about this and why this file is useful, see here: +# https://nixos.org/guides/nix-pills/developing-with-nix-shell.html +# +# Also look into direnv: https://direnv.net/, this can make it so that you can +# automatically get your environment set up when you change folders into the +# project. { pkgs ? import {} }: pkgs.mkShell { + # This specifies the tools that are needed for people to get started with + # development. These tools include: + # - The Go compiler toolchain (and all additional tooling with it) + # - goimports, a robust formatting tool for Go source code + # - gopls, the language server for Go to increase editor integration + # - git, the version control program (used in some scripts) buildInputs = with pkgs; [ go goimports gopls git ];