Login Register

The Foundation

Why A Foundation?

Development of Cometd, the Dojo Toolkit, DWR, and OpenRecord are supported by an independent foundation which is set up as a 501c6 not-for-profit legal entity. Like other Open Source foundations, the Dojo Foundation provides infrastructure for development, shields individual contributors from liability, and helps to ensure that project communities are healthy and successful.



To understand the relationship between the various projects and the Foundation, it helps to understand what the Foundation is responsible for, how the Foundation makes decisions, and what guiding principles shape these decisions. The Dojo Foundation handles:

  • Licensing and distribution of Foundation projects
  • Development infrastructure
  • Sponsorship of new projects
  • Project oversight (including accepting new committers)
All of that still doesn't answer the question "why a foundation?" And more importantly, why a new foundation? Having worked on several prior Open Source projects, the project founders realized that a Foundation would be key in helping to avoid legal ambiguity as contributors moved from job to job. Additionally, it was unclear that a pre-existing Open Source foundation would have played host to our efforts in 2004.



Now that the Dojo foundation is several years old and has had a chance to discuss our choices with colleagues from other Open Source foundations, it is pretty clear that any new Open Source project that wants to start a Foundation should think twice. Or three times. In most cases, starting a new foundation shouldn't be necessary, but should it be, finding a good lawyer to assist in the process should be the first step anyone takes.



There appears to be a strong "language affinity" between the communities that spring up at Open Source foundations and that affinity tends to determine what types of projects happen in those communities. In the case of the Dojo Foundation, we inadvertently created the only JavaScript-centric Open Source foundation. As such, we view an important part of our role as being a neutral place where high-quality JavaScript work can get done. The Dojo Foundation today serves as a thin legal structure that attempts to impose as little bureaucracy into Foundation projects as possible while still achieving Foundation and project goals.

Foundation Goals and Principles

The Foundation hasn't adopted a set of official principles and goals at the time of this writing, but historically the Dojo Foundation has worked to:

  • Provide a level playing field for everyone who wants to be involved in Foundation projects
  • Provide licensing terms that encourage adoption of Foundation projects

  • Help potential contributors and sponsors understand what involvement in Foundation projects entails

Voting

Decisions inside the foundation are made based on a voting basis handled via mailing lists. Committers on any Foundation-sponsored project are eligible to vote on any Foundation matter and any committer may propose a vote on a topic. Votes are won or lost based on a simple majority of votes cast. Almost all votes take place on the dojo-contributors mailing list, a semi-public mailing list which all contributors to Foundation projects should be subscribed to. Votes are always conducted in a public forum with adequate time provided for all interested parties to cast a vote, traditionally 48 hours from the sending of the email that proposes the vote, but balloting may be left open longer. Since there isn't a formalized concept of membership in the Foundation, voting by committers is the way that the will of the Foundation is assessed.

Licensing

The Dojo Foundation has straightforward licensing goals:

  • Encourage adoption
  • Discourage political contention
  • Encourage collaboration and integration with other projects
  • Be transparent
As a result of these goals, and much discussion about how to best achieve them, Foundation projects must:

  • Release all code under the terms of the Academic Free License version 2.1 ("the AFL")
  • Request a variance from the Foundation in order to release their code under additional licenses. Variances are granted by a vote of Foundation committers and are generally non-controversial as long as the proposed license meets the foundation licensing goals.
  • Require that all contributors submit Contributor License Agreements to cover their original works which are submitted for inclusion.

  • Provide a clear disclaimer of origin and copyright ownership when including or distributing 3rd party code. (example)
The Dojo Foundation does not hold the copyright to code and other kinds of IP that are donated. Instead, contributors give the Foundation licenses to those copyrights and the Foundation in turn uses those licenses to distribute the resulting collective works (i.e., the toolkit) under the licenses that the project uses. For example, the Dojo Toolkit is distributed under both the AFL license and the "new BSD" license. Because the Foundation has licenses to all the code involved, it's possible to issue the toolkit under both sets of terms. Users in turn can then decide which set of terms is best for them, but both licenses meet the Foundation's goals. Note that currently, DWR is licensed under the Apache Software License Version 2.

Foundation Projects

Today there are 4 Foundation-sponsored projects:

Each project releases code independently, has their own development infrastructure (sometimes shared), and manages it's own community, including the introduction of new committers into their project.



Projects may organize themselves "internally" any way they wish, but in general, all critical project decisions should at least be subject to over-ride by committers of the project by a vote on the appropriate mailing lists.

New Committers

There are many ways to get involved in Foundation projects, and becoming a committer is the last and most significant way to get involved. Projects are free to invite new committers any way they see fit. The Dojo Toolkit project, for instance, and historically used a process like this:

  1. Contributor starts to help others in project mailing lists and on IRC

  2. Contributor files CLA
  3. Multiple non-trivial patches are merged from the contributor
  4. Being impressed with the contributions of the contributor, a committer recommends to the project lead that the contributor be offered a spot as a committer.
  5. Project lead reviews the submitted patches and consults with others in the community to ensure that the contributor "is a good fit"
  6. New committer is added to the project
Other projects might do it other ways, e.g. a vote of all current committers on the project, but whatever the process, the Foundation requires that the process be fair, even-handed, and that the contributor have a CLA on file with the Foundation before they are made a committer.

New Projects

From time to time, new projects are brought under the umbrella of the Dojo Foundation. This has historically been infrequent (less than two new projects per year). New projects are considered on an individual basis, and no one can simply declare a project to be a Dojo Foundation project. A majority vote of all committers on all Foundation projects is required for any new project proposal to be accepted. These votes take place on the dojo-contributors mailing list.



The minimal requirements that any new project proposal should meet are:

  • Clear title and license to all copyright and other IP that affects the code base. Since this will all be licensed through the Dojo Foundation once the

  • Willingness to abide by Foundation licensing goals and policies
    • Once accepted as a project, all project committers must submit CLAs
    • All 3rd party code must be correctly noted
    • No variances will be granted for licenses that are not in harmony with Foundation licensing goals (e.g., the GPL).
  • No code without committers. The Foundation will not take on "abandonware" projects nor will any projects be considered that don't have a clear group of individual committers who will be dedicated to seeing the project succeed. Corporate-sponsored projects are fine so long as the resulting project will accept committers from outside the sponsoring corporation.
Once a vote on a project proposal passes, the project lead from the new project should propose any licensing variances for a vote and the new project should work with Foundation volunteers to help ensure that their infrastructure needs are met.

The Role of the Board

As noted in the introduction to this chapter, the Dojo Foundation is a thin legal "shim" that binds the various Foundation projects together under a single banner and set of guiding principles. As a result, little formalism is desired or required from the Foundation board or from Foundation projects. The Board simply carries out the will of the aggregated committers. Today, the Board is comprised of:

  • Alex Russell, President
  • Dylan Schiemann, Treasurer and Secretary
From time to time, votes are taken to elect new Board representatives from among Foundation Project committers.

Project Leads

Every project designates someone to hold the "project lead" position. Currently, these are:

  • Brian Skinner (OpenRecord)
  • David Davis (Cometd)
  • Alex Russell (Dojo)
  • Joe Walker (DWR)

Cross-Project Pollination

There is no foundation-wide policy regarding how projects from one Foundation project are accepted into sister projects. It's up to each project to set these policies, but should a deadlock or impasse occur, Dojo Foundation Officers (the Board) reserves the right to settle the dispute.



The Foundation strongly encourages each project to set up a transparent process for accepting committers from sister projects that is less onerous than the process for accepting external committers but leaves the exact details of how this happens up to each project.