So You've Been Offered a Spot as a Committer...

Committer Community Licensing

First, congratulations! Being offered a spot as a committer is a sign that we (the Dojo team) think highly of your contributions, value your insights, and believe that you have made significant efforts to improve the toolkit and community. Offers to join the project a committer aren't extended lightly, and we hope you'll take the decision to accept seriously. Before you say "yes", there are some things you should know.

Process

IP policy: as you know, Dojo is one of the few OSS JavaScript projects which uses a CLA process to ensure that contributions to the toolkit are "clean" from an IP perspective. The policies which we follow are outlined in the IP policies (TODO: add link) and as a committer you are expected to help us observe them. Long story short, if you didn't write it or are unsure of the CLA status of the contribution, don't commit it. The list of people and companies with CLAs on file is public, so be sure to consult it when in doubt. Artwork can be particularly problematic from an IP cleanliness perspective, and difficult to judge. There are also times when integrating some chunk of code which you find out on the net somewhere seems a reasonable thing to do. In each of these cases, it's best to ask the Project Lead for guidance.

Quality: committers are expected to observe the style guidelines for code, consult with the accessibility requirements when making visual and interaction changes, provide unit tests, and write inline documentation for the code they touch. As a contributor all of these things were also expected, but now it becomes your responsibility as a committer to ensure that your checkins meet the high standards of the project, even when you're merging patches that others might be contributing.

Getting Along: most decisions in the project arise out of consensus in one way or another. When things are contentious, we try to find data, common ground, or expert opinions to settle things. Despite this, decisions get made which not everyone agrees with, and as a result it's possible for tensions to flare. You've been offered a spot as a committer in part because you've demonstrated that you work well with others to resolve issues, find data to support arguments or theories, and avoid personal attacks when disagreeing. These are important traits for a distributed project and we expect that you'll work to embody them. Remember: the person on the other end of The Tubes is, like you, trying to make things better.

Community

Voting: As a committer on Dojo you will have a vote in both project-level and Foundation-level issues. Every project at the Dojo Foundation is potentially run differently, but most have some sort of "Benevolent Dictator For Live" or "Project Lead" who sets the agenda. Dojo as a project is organized in this style, but most decision making is made by consensus. That said, voting is part of the Dojo culture and your participation as a committer is required.

Any committer can start a vote on matters relating to Dojo (the project) or the Foundation as a whole at any time. Only committers on Dojo itself may vote in project-level issues. Project-level votes are carried out on the dojo-contributors mailing list via "+1" and "-1" messages. The same format is used for Foundation-level issues but those votes are held on the foundation list and in those votes committers on ALL Foundation projects get an equivalent vote. Votes are kicked off with announcement emails (like this one) containing "[VOTE]" in the subject line. Vote announcement mails should contain the proposal, the terms of the voting, the timeframe for voting, and any other relevant information to the matter at hand.

Votes may be started by any committer on any matter at any time. This may sound like it leads to chaos, but in practice neither Foundation or project-level votes are required on a regular basis. The reason for this is that voting is not a good way to solve problems. It's a good way to perhaps get people on the record in some way regarding an issue, but the act of starting a vote rarely has any influence on what people think about that issue. If votes are highly contentious, it probably means that the person starting the vote hasn't done the background work to convince others that their idea or proposal is good. Indeed, Apache's experience tells us that projects which vote frequently or which vote to settle relatively minor issues tend to become dysfunctional very quickly. As a committer your power to start votes gives you a powerful way to influence the direction of the project and the Foundation, but remember to use that power only when necessary.

Meetings: As you know by now, weekly team meetings are held nearly every week. Your participation in these meetings, while not strictly mandatory, is greatly appreciated. Indeed, the weekly meetings are one of the few times when most of the project contributors are available all at the same time and therefore provide a much-needed chance to discuss issues and catch up with others whose work you may be relying on or whose advice you need. The meetings also provide a vital forum for getting hard issues aired and discussed, and so we encourage you to attend and participate if it is at all possible.

New Committers: in order for you to have been considered for committer status, someone in the community had to champion you to the Board of Directors of the Foundation, noting some of your large contributions and your positive impact on the project. To make code changes as a non-committer contributor, you also had to work with committers to get your patches approved and merged. The people who have helped you earn your committer stripes are just like you and if you accept the role of committer on Dojo, we'd ask that you pay the same attention to others who are filing good patches, showing up with bright ideas and contributions on IRC and the forums, and looking for help in making Dojo better. Eventually, you should consider proposing those people for committer status...that's how you got here and how the Dojo community grows organically. Keep an eye out for promising contributors and do everything you can to help them succeed. The project depends on you to do this and our long-term success is in many ways dependent on it.

Systems

Shell accounts: we make shell accounts available to all committers. Don't do anything illegal with them, please. Also, note that while your shell account is provided on a system which isn't a production host, it would be great if you'd ask around before running huge jobs or starting large daemons (think Java servers). When in doubt, ask.

Email: as a committer you'll be given an "@dojotoolkit.org" email account. You can log into this account via IMAP or POP and SMTP mailing is supported with authentication. You can .forward your mail from this account to somewhere else or use it however you see fit.

Lists: if you're not already subscribed to dojo-contributors and the foundation list, you will be subscribed to them when your email accounts are created. Please monitor these lists for votes and other important traffic as many decisions are made there which may impact you and your interests in the project.

Ready?

If, after reading and considering all of this, you still want to accept a spot as a committer on Dojo, we'd be honored to have you join us. Don't hesitate to ask questions or get clarifications on anything in this document before or after you make your decision, and don't feel rushed. Whichever way you chose, we want to keep working with you in the future to make Dojo better. Thanks for your hard work so far and congratulations on your accomplishments to-date.