Many Drake developers have best practices that are not documented for others to use:
git clean -fdx (aka "nuke from orbit) instead of make clean (moved to #4551).clang-format. Then commit and issue a PR for just the changes made by clang-format, which should all be non-functional. You can then proceed to make and commit your functional changes and issue a second pull request. Hopefully, prior to completing your functional changes, your first PR is merged, preventing you from having a massive number of conflicts to deal with. This is better than combining both the clang-format changes and your changes into a single PR since it will allow the reviewer to more easily determine and review your functional changes.ctest to run unit tests, similar to that in: https://github.com/RobotLocomotion/director/blob/master/docs/sphinx/developer_guide/running_tests.rstctest -VV -R testregexp use case.There are probably more that I haven't heard about yet.
We should document these in drake/doc/developers.rst so that everyone can benefit.
This is great @jwnimmer-tri!
I would add that when running clang-format/cpplint for the first time on a given file(s) the format changes from clang-format/cpplint should be in a separate PR so that the original PR is clean from a large number of white-space corrections.
I agree. It looks like someone already editing the checklist to reflect this (yay).
Nice @liangfok!
Everything in this list either (1) is done or (2) has been moved to a specific issue or (3) only applies when using CMake. I will close this. Folks should feel free to contribute helpful PRs or file new issues as appropriate, but I'm not sure the meta-issue is helping anything here.
Most helpful comment
I agree. It looks like someone already editing the checklist to reflect this (yay).