Development Intro Development Intro

Introducing the development process

 

Cotonti Development Intro

How does the development in Cotonti Project work? We run an SVN repository, where the core, modules, plugins and themes are developed. And we run the project tracker for task management and bugtracking. There are 3 levels of Team members:

  • Testers. They have read-only access to SVN, they may and must test the mods, report bugs, participate in discussions and suggest new features. They may even contribute some code in forums, but those should be approved by developers before committing to SVN. Any Cotonti community member may act as a tester, we appreciate any help with finding and fixing bugs.

  • Developers. They have write access to SVN, they should do the tasks, add new plugins, etc.

  • Coordinators. Bigger tasks are grouped into «projects» (major changes, important plugins and such are «projects»), every project has a coordinator who is responsible for its implementation. He forms a workgroup of developers and testers, gives them tasks and controls them. Obviously, a coordinator is a developer as well.

Bug fixing looks like this:

  1. A Tester submits a bug to tracker, provided a detailed description.

  2. "Bugfix" project Coordinator assigns a Developer to fix it.

  3. The Developer finds the bug, fixes it and submits changes to SVN.

  4. The Tester checks the fix and in case of success the ticket is closed.

Core and extension development looks like this:

  1. A new feature, enhancement or entire project is suggested by starting a new thread in forums. It is provided with detailed description and «pros/cons».
    Then the open discussion follows.

  2. For a usual task it should be accepted by one of Coordinators and assigned a Developer who is ready to complete the task. He implements the feature with assistance of testers. The development is held on SVN, proved versions get tagged.

  3. A valuable project can be accepted by the majority of Coordinators and Developers only. An accepted project is assigned a Project Coordinator. Project Coordinator creates a workgroup and manages the project himself. All the changes are accessible to other members via SVN and forum discussions.

Besides the core and standard extensions, there are a separate branches in the repository for modules, plugins, themes and localizations (aka langpacks). New extensions can be submitted by their initial authors or Developers, after they have ensured the code is working and reliable. After an extension is added to repository, it can be enhanced and developed the same way as described above.

The main problem for us is that each of us has a lack of spare time. That's why there should be enough coordinators to complement and replace each other in case of someone's absence. Another major problem is code quality assurance, that's why the described hierarchy should take place.

Now what you should know about the Team membership. There are basic requirements for Team members (requirements of previous group apply to next one):

Developers:

  • Ability to read and write in English. We will most probably create national workgroups for communication efficiency within subprojects, but the project is international overall.

  • Personal and/or material interest in Cotonti's stability, growth and success.

  • Willingness and ability to take part in discussions, report bugs and test new features, hold the tasks on request.

  • Responsibility.

  • At least one year experience in PHP, MySQL, HTML and CSS, at least 2 years of programming experience.

Similar but a little bit different skills for template makers.

  • Good knowledge of Seditio's internals. At least 2 months experience of high quality modification development.

  • Some spare time required, at least to hold tasks from times to times.

Coordinators:

  • Even more responsibility.

  • Ability to organize and communicate with people

  • Community authority.



No comments yet
Only registered users can post new comments