Actually, I think you are both doing very well so far. We don't have assigned responsibilities at Apache (well, other than my responsibility to Incubator, which in turn reports to the board, but that is only for non-technical stuff).
Disagreement over design choices is normal and even encouraged. We would rather have a well-considered and justifiable design, preferably with resulting documentation, than release something that doesn't meet the needs of our own projects. One of the best ways to resolve a disagreement is to try to document both alternatives in detail -- the problems with one or the other approach can then be evaluated with more care. Officially, when there is a concern about a commit (or even just a plan for a commit), people generally talk about it at first and, if necessary, vote on the alternatives. If there doesn't seem to be a consensus after short discussion, then usually the new change is vetoed by one of the developers and we move on to other things until that developer is convinced or a better patch is proposed. Please don't worry about sending too much email to the list. If anything, the major reason we haven't graduated from incubator yet is because we haven't been doing enough discussion on the list regarding code changes. So, the more you discuss these things, the healthier we are as a project. Bug fixes and previously discussed issues are generally commit then review -- i.e., we assume it is a good change until someone objects, and the change is reverted if it is vetoed. Larger design issues, like changing the public interfaces, should be discussed here first to be sure that the changes won't wreck someone else's dependencies on jackrabbit. We need to learn most of this stuff as we go along. The process will be easier once we get more experience with releasing our code and learn each other's expectations. Cheers, ....Roy