#########################
Development of django CMS
#########################

django CMS is developed by a community of developers from across the world,
with a wide range and levels of skills and expertise. Every contribution,
however small, is valued.

As an open source project, anyone is welcome to contribute in whatever form
they are able, which can include taking part in dicussions, filing bug reports,
proposing improvements, contributing code or documentation, and testing the
system - amongst others.

********
Divio AG
********

django CMS was created and released under a BSD licence in 2009 by `Divio AG
<https://divio.ch/>`_ of Zürich, Switzerland. Divio remains thoroughly
committed to django CMS both as a high-quality technical product and as a
healthy open source project.

Divio's role in steering the project's development is formalised in the
:ref:`django CMS technical board <technical_board>`, whose members are drawn
both from key staff at Divio and other members of the django CMS community.

Divio hosts the `django CMS project website <http://django-cms.org>`_ and
maintains overall control of the `django CMS repository
<https://github.com/divio/django-cms>`_.

.. _core_developers:

***************
Core developers
***************

Leading this process is a small team of core developers - people who have made
and continue to make a significant contribution to the project, and have a good
understanding not only of the code powering django CMS, but also the
longer-term aims and directions of the project.

All core developers are volunteers.

Core developers have commit authority to django CMS's repository on GitHub.
It's up to a core developer to say when a particular pull request should be
committed to the repository.

Core developers also keep an eye on the ``#django-cms`` IRC channel on the
`Freenode network <http://freenode.net>`_, and the `django CMS users
<https://groups.google.com/forum/#!forum/django-cms>`_ and `django CMS
developers <https://groups.google.com/forum/#!forum/django-cms-developers>`_
email lists.

In addition to leading the development of the project, the core developers have
an important role in fostering the community of developers who work with django
CMS, and who create the numerous applications, plugins and other software that
integrates with it.

Finally, the core developers are responsible for setting the tone of the
community and helping ensure that it continues to be friendly and welcoming to
all who wish to participate. The values and standards of the community are set
out in its Code of Conduct.

Commit policy for core developers
=================================

Except in the case of very minor patches - for example, fixing typos in
documentation - core developers are not expected to merge their own commits,
but to follow good practice and have their work reviewed and merged by another
member of the team.

Similarly, substantial patches with significant implications for the codebase
from other members of the community should be reviewed and discussed by more
than one core developer before being accepted.

Current core developers
===============================

* Angelo Dini http://github.com/finalangel
* Benjamin Wohlwend http://github.com/piquadrat
* Daniele Procida http://github.com/evildmp
* Iacopo Spalletti http://github.com/yakky
* Jonas Obrist http://github.com/ojii
* Martin Koistinen http://github.com/mkoistinen
* Øyvind Saltvik http://github.com/fivethreeo
* Paulo Alvarado http://github.com/czpython
* Patrick Lauber http://github.com/digi604
* Stefan Foulis http://github.com/stefanfoulis

Retired core developers
=======================

* Chris Glass http://github.com/chrisglass


Election of new core developers
===============================

New members of the core team are selected by the technical board.

.. _technical_board:

***************
Technical board
***************

Historically, django CMS's development has been led by members of staff from
Divio. It has been (and will continue to be) a requirement of the CMS that it
meet Divio's needs.

However, as the software has matured and its user-base has dramatically
expanded, it has become increasingly important also to reflect a wider range of
perspectives in the development process. The technical board exists to help
guarantee this.

Role
====

The role of the board is to maintain oversight of the work of the core team, to
set key goals for the project and to make important decisions about the
development of the software.

In the vast majority of cases, the team of core developers will be able to
resolve questions and make decisions without the formal input of the technical
board; where a disagreement with no clear consensus exists however, the board
will make the necessary definitive decision.

The board is also responsible for making final decisions on the election of new
core developers to the team, and - should it be necessary - the removal of
developers who have retired, or for other reasons.

Composition of the board
========================

The members of the technical board will include key developers from Divio and
others in the django CMS development community - developers who work *with*
django CMS, as well as developers *of* django CMS - in order to help ensure
that all perspectives are represented in important decisions about the software
and the project.

The board may also include representatives of the django CMS community who are
not developers but who have a valuable expertise in key fields (user
experience, design, content management, etc).

The current members of the technical board are:

* Angelo Dini
* Daniele Procida
* Iacopo Spalletti
* Jonas Obrist
* Martin Koistinen
* Matteo Larghi
* Patrick Lauber

The board will co-opt new members as appropriate.
