💻 🍎 🐧 khan-dotfiles 🐧 🍎 💻
This repository contains configuration files and setup scripts for the Khan Academy web developer environment. This includes a variety of things, some very Khan-specific, some not, including:
- the Khan linter
gitaliases, including for working with submodules
- tools needed to run a dev server for the Khan webapp
- other useful and "useful" miscellany
This is meant to complement the
developer setup documentation
in EngDocs. If you run into any problems with this script, contact
the Infrastructure team, such as by pinging
@dev-support on Slack.
Run the following commands:
mkdir -p ~/khan/devtools cd ~/khan/devtools git clone https://github.com/Khan/khan-dotfiles.git cd khan-dotfiles make
This will install your system: installing executables, python libraries, dotfiles, etc. It will not overwrite any of your existing dotfiles but will emit a warning if it sees something it doesn't understand.
If you later need to fix up your setup, or get updates to it, you can do:
cd ~/khan/devtools/khan-dotfiles git pull make
This script is idempotent, so it should be safe to run it multiple
times. We support macOS and Ubuntu, using
bash, but other flavors
of Linux and other shells may work too.
Pull requests, whether to fix bugs, or add new goodies, are welcome! A few notes to keep in mind:
- If you make nontrivial changes to the setup script, make sure to
test them! The best way is to run the script on a blank VM, and
make check MAX_TEST_SIZE=tinypasses. See EngDocs for instructions on VM setup.
- Make sure to keep the script idempotent! Running it on a working dev setup should avoid breaking anything. You can keep it that way by making sure to no-op if a package is already installed or setup, and so on.
#infrastructure-devops if you have any questions, and thanks
for the contributions!
khan-dotfiles are now maintained by the DevOps group within the
Infrastructure Team; ping them (e.g.
@dev-support in Slack) if you
have any questions or run into problems. They were originally
extracted from David's dotfiles,
with commits and lines here and there stolen from
Desmond, and others. Non-dotfile config
files, and the setup script, were originally written by Craig
Silverstein. Pull requests are welcome!