..  _development-community:

##################################
django CMS's development community
##################################

You can join us online:

* in our IRC channel, #django-cms, on ``irc.freenode.net``. If you don't have an IRC client, you can
  `join our IRC channel using the KiwiIRC web client
  <https://kiwiirc.com/client/irc.freenode.net/django-cms>`_, which works pretty well.
* on our `django CMS users email list <https://groups.google.com/forum/#!forum/django-cms>`_ for
  **general discussion** of django CMS
* on our `django CMS developers email list
  <https://groups.google.com/forum/#!forum/django-cms-developers>`_ for discussions about the
  **development of django CMS**
* on our `StackOverflow <https://stackoverflow.com/questions/tagged/django-cms>`_ for
  general **questions** around django CMS and it's plugin ecosystem

You can also follow:

* the `Travis Continuous Integration build reports <https://travis-ci.org/divio/django-cms>`_
* the `@djangocms`_ Twitter account for general announcements

You don't need to be an expert developer to make a valuable contribution - all
you need is a little knowledge of the system, and a willingness to follow the
contribution guidelines.

Remember that contributions to the documentation are highly prized, and key to
the success of the django CMS project.

Development is led by a team of **core developers**, and under the overall
guidance of a **technical board**.

All activity in the community is governed by our :doc:`code_of_conduct`.


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

django CMS was released under a BSD licence in 2009. It was created at `Divio
AG <https://divio.ch/>`_ of Zürich, Switzerland, by
`Patrick Lauber <https://github.com/digi604/>`_, who led its development for
several years.

django CMS represents Divio's vision for a general-purpose CMS platform able to meet its needs as a
web agency with a large portfolio of different clients. This vision continues to guide the
development of django CMS.

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>`_. As the chief backer of
django CMS, and in order to ensure a consistent and long-term approach to the project, Divio
reserves the right of final say in any decisions concerning its development.

Divio remains thoroughly committed to django CMS both as a high-quality technical
product and as a healthy open source project.


.. _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.


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

* Angelo Dini https://github.com/finalangel
* Daniele Procida https://github.com/evildmp
* Dennis Schwertel https://github.com/kinkerl
* Iacopo Spalletti https://github.com/yakky
* Malinda Perera https://github.com/malindap92
* Paulo Alvarado https://github.com/czpython
* Serhii Sydorenko https://github.com/SydorenkoSergiy
* Vadim Sikora https://github.com/vxsx


Core designers
--------------

django CMS also receives important contributions from *core designers*, responsible for key aspects of its visual
design:

* Christian Bertschy
* Matthias Nüesch

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

* Benjamin Wohlwend https://github.com/piquadrat
* Chris Glass https://github.com/chrisglass
* Jonas Obrist https://github.com/ojii
* Krzysztof Socha https://github.com/chaosk
* Martin Koistinen https://github.com/mkoistinen
* Øyvind Saltvik https://github.com/fivethreeo
* Patrick Lauber https://github.com/digi604
* Stefan Foulis https://github.com/stefanfoulis

Following a year or so of inactivity, a core developer will be moved to the
"Retired" list, with the understanding that they can rejoin the project in the
future whenever they choose.


Becoming a core developer
=========================

Anyone can become a core developer. You don't need to be an expert developer, or
know more than anyone else about the internals of the CMS. You just have to be a
regular contributor, who makes a sustained and valuable contribution to the
project.

This contribution can take many forms - not just commits to our codebase. For
example, documentation is a valuable contribution, and so is simply being a
member of the community who spends time assisting others.

Any member of the core team can nominate a new person for membership. The
nomination will be discussed by the technical board, and assuming there are no
objections raised, approved.


.. _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
meets the highest standards.

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 the technical board will include key developers from companies 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
* Christian Bertschy
* Daniele Procida (Chair)
* Iacopo Spalletti

The board will co-opt new members as appropriate.


.. _security@django-cms.org: mailto:security@django-cms.org
.. _django-cms-developers: https://groups.google.com/group/django-cms-developers
.. _freenode: http://freenode.net/
.. _@djangocms: https://twitter.com/djangocms
