One of the best features of Rails is its consistent project layout. Thoughtbot recently shared how they use a
./bin/setup script to bring consistency to the project setup.
Regardless of the
bin/setupfile’s contents, a developer should be able to clone the project and run a single, consistent, reliable command to start contributing.
At GitHub, we use
script/bootstrap, but the idea is the same — a consistent user experience to get from zero to productive on any new project. Whether I'm writing docs, extending GitHub with service hooks, or hacking our internal support tools, I know I can just clone the repository and run
script/bootstrap to jump right in. Thanks to a patch from Matt Emborsky, this works for my dots, too.
We also don't stop with the project bootstrap. Our projects normally have
script/test for running the local test suite,
script/cibuild for running tests on the continuous integration server, as well as the usual
script/console scripts where applicable.
As a result, I spend less time thinking what to run and just run.