Good questions, Sam. There are two answers because the way we're currently running the rewrite project is a bit different from the way we will probably run the final stable project.
Right now, we're giving everyone commit access to the Github project, so it will be a bit of a free-for-all. I'd still very much prefer that commits come with tests. The Rails community prefers TDD/BDD development practices, which involve writing the test before you write the code, so for anyone adhering to this system committing the tests will be a given :) That said, things that go into Github may not be fully complete. If you get partway through a feature but run out of steam, I'd say go ahead and commit so that others can pick up where you left off, *as long as your code is reasonably clean*. Extra bonus points if you commit pending tests to spec out what is left to be done.
The system I expect us to settle on once the project has matured is the one most Github projects use. In this model, the main project repo is production code. To make a change, you use Github to fork your own repository of the project. You do the work in your repo, and when it's ready, you open a "pull request" on the main repo. At that point, people review the code, request changes if necessary, and once the maintainers are satisfied, your changes are pulled into the main repo.
For now, if you would like to get help or have your code reviewed *before* pushing it to the main repo, feel free to fork the repo[1] and work on your own branch. You can commit as much as you like there until you're feeling ready. Just make sure to regularly pull changes from the main repo so you don't end up with conflicts.
Ian
[1]: To fork, go to
https://github.com/annaswims/GrinnellPlans, and look for the button in the top right that says "Fork". You'll then have a project called "yourname/GrinnellPlans", and Github will give you instructions for checking out a copy of it.