### Get set up for Moby development

 * [README first](who-written-for.md)
 * [Get the required software](software-required.md)
 * [Set up for development on Windows](software-req-win.md)
 * (Optional) [Configure project for IDE](set-up-ide.md)
 * [Configure Git for contributing](set-up-git.md)
 * [Work with a development container](set-up-dev-env.md)
 * [Containerized build and cross compilation](ctn-build.md)
 * [Run tests and test documentation](test.md)
 * [Debugging the daemon](debug.md)
