finds.dev← search

// the find

donnemartin/dev-setup

★ 6,260 · Python · NOASSERTION · updated Feb 2023

macOS development environment setup: Easy-to-understand instructions with automated setup scripts for developer tools like Vim, Sublime Text, Bash, iTerm, Python data analysis, Spark, Hadoop MapReduce, AWS, Heroku, JavaScript web development, Android development, common data stores, and dev-based OS X defaults.

A collection of shell scripts and dotfiles for bootstrapping a macOS development environment, covering everything from basic CLI tools to Python data science, big data (Spark/MapReduce), AWS, and Android. It's a reference repo as much as an automation tool — you pick which scripts to run rather than installing everything. Last meaningful commit was 2023, and many of its opinions are circa 2015.

- The `.dots` script accepts named arguments so you can run only the sections you need — `bootstrap osxprep brew osx` gets you a working shell without touching Spark or Android.

- The `~/.extra` convention for personal overrides (git credentials, pip constraints) is the right call: keeps sensitive data out of the repo without requiring a fork just to add your name.

- The dotfiles themselves — `.aliases`, `.functions`, `.bash_prompt`, `.exports` — are split by concern rather than dumped into one giant `.bashrc`, making them easy to audit or cherry-pick.

- Detailed inline documentation in the README actually explains *why* each tool is there and what to read before running, not just a list of install commands.

- Atom was killed by GitHub in December 2022; the repo still installs and configures it. `boot2docker` was deprecated in 2016 in favor of Docker Desktop. The tool list has not been maintained.

- Tested on OS X 10.10 and 10.11 (Yosemite / El Capitan, released 2014–2015). On modern macOS — Ventura, Sonoma, Sequoia — several Homebrew Cask names have changed, Apple Silicon changes things for Spark and Java setup, and the scripts will silently fail or produce wrong results in parts.

- No package version pinning anywhere. Running `brew.sh` in 2024 installs different versions than in 2019, so two machines bootstrapped from the same repo end up with different environments. If reproducibility matters, you need Nix or Homebrew Brewfile with locked versions.

- Still sets up Python 2 virtual environments (`workon py2-data`) — Python 2 has been EOL since January 2020, and shipping setup scripts that target it signals the data science section hasn't been revisited in years.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →