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 discussions, filing bug reports, proposing improvements, contributing code or documentation, and testing the system - amongst others.
Divio AG
django CMS was released under a BSD licence in 2009. It was created at Divio AG of Zürich, Switzerland, by Patrick Lauber, 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 django CMS 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 and maintains overall control of the django CMS repository. 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
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, and the django CMS users and 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
- Daniele Procida http://github.com/evildmp
- Iacopo Spalletti http://github.com/yakky
- Jonas Obrist http://github.com/ojii
- Martin Koistinen http://github.com/mkoistinen
- Patrick Lauber http://github.com/digi604
- Paulo Alvarado http://github.com/czpython
- Stefan Foulis http://github.com/stefanfoulis
- 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
- Chris Glass http://github.com/chrisglass
- Øyvind Saltvik http://github.com/fivethreeo
- Benjamin Wohlwend http://github.com/piquadrat
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
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 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
- Christian Bertschy
- Daniele Procida (Chair)
- Iacopo Spalletti
- Jonas Obrist
- Martin Koistinen
- Matteo Larghi
The board will co-opt new members as appropriate.