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
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.