Difference between revisions of "Organisation"
m (Masterserver subsys. is [OPEN] too) |
|||
Line 17: | Line 17: | ||
== Subsystems == | == Subsystems == | ||
− | {| class="wikitable" style="background-color: # | + | {| class="wikitable" style="background-color: #cfd;" width="80%" |
− | |Developer | + | |'''Developer''' |
− | |Subsystem | + | |'''Subsystem ''' |
− | |- style="background-color: # | + | |- style="background-color: #fff;" width="80%" |
|celeron55 | |celeron55 | ||
|maintainer conflicts | |maintainer conflicts | ||
− | |- style="background-color: # | + | |- style="background-color: #eee;" width="80%" |
|sapier | |sapier | ||
|server/client/env | |server/client/env | ||
− | |- style="background-color: # | + | |- style="background-color: #fff;" width="80%" |
|kahrl | |kahrl | ||
|startup/config/util | |startup/config/util | ||
− | |- style="background-color: # | + | |- style="background-color: #eee;" width="80%" |
|ShadowNinja | |ShadowNinja | ||
|script API | |script API | ||
− | |- style="background-color: # | + | |- style="background-color: #fff;" width="80%" |
|hmmmm | |hmmmm | ||
|mapgen | |mapgen | ||
− | |- style="background-color: # | + | |- style="background-color: #eee;" width="80%" |
|celeron55 | |celeron55 | ||
|client/audiovisuals | |client/audiovisuals | ||
− | |- style="background-color: # | + | |- style="background-color: #fff;" width="80%" |
|sapier | |sapier | ||
|low-level network | |low-level network | ||
− | |- style="background-color: # | + | |- style="background-color: #eee;" width="80%" |
− | |[OPEN] | + | |''[OPEN]'' |
|build system | |build system | ||
− | |- style="background-color: # | + | |- style="background-color: #fff;" width="80%" |
− | |[OPEN] | + | |''[OPEN]'' |
|masterserver | |masterserver | ||
− | |- style="background-color: # | + | |- style="background-color: #eee;" width="80%" |
|ShadowNinja | |ShadowNinja | ||
|Documentation | |Documentation | ||
− | |- style="background-color: # | + | |- style="background-color: #fff;" width="80%" |
− | |[OPEN] | + | |''[OPEN]'' |
|Translation | |Translation | ||
|} | |} | ||
Line 63: | Line 63: | ||
(TODO) | (TODO) | ||
− | === | + | === Maintainer conflicts === |
+ | |||
Meta-subsystem with the task of resolving conflicts between other subsystem maintainers that they can't solve themselves. | Meta-subsystem with the task of resolving conflicts between other subsystem maintainers that they can't solve themselves. | ||
== Proposed == | == Proposed == | ||
− | === | + | === Proposed: releases === |
+ | |||
Meta-subsystem with the task of maintaining a reasonable release schedule by deciding when to do it, what is missing and announcing feature freezes and poking the necessary people to make it happen. The most important tasks are to make sure every subsystem maintainer knows when there is a feature freeze and when there is not, and to manage the tags and branches on github. | Meta-subsystem with the task of maintaining a reasonable release schedule by deciding when to do it, what is missing and announcing feature freezes and poking the necessary people to make it happen. The most important tasks are to make sure every subsystem maintainer knows when there is a feature freeze and when there is not, and to manage the tags and branches on github. | ||
− | === | + | === Proposed: voting/community === |
+ | |||
Meta-subsystem with the task of figuring out and remembering what the community wants by reading discussions and arranging votings, and being a source of that kind of information to developers who want to focus on developing. | Meta-subsystem with the task of figuring out and remembering what the community wants by reading discussions and arranging votings, and being a source of that kind of information to developers who want to focus on developing. |
Revision as of 17:01, 18 October 2014
System
With the goal of lessening the likeliness of pull requests being left hanging around, making it clearer who knows what, giving more motivation via responsibility and change for the sake of change, Minetest's organization update of 2014-01-02:
The engine is split into virtual "subsystems" based on the most easily definable but still meaningful parts of the code (mostly each file should belong to one subsystem, but this is not strictly possible).
Each subsystem is allocated to one "subsystem maintainer", who is responsible for making sure pull requests get handled and fixing the subsystem if it doesn't work. Subsystem maintainers are trusted to give their permissions and/or responsibiltiies to someone else too if they see fit.
Subsystem maintainers can be proposed to the core team by anyone (preferably by themselves or by the previous one), and they are not-so-officially majority voted. The person on "maintainer conflicts" can turn down proposals on the basis of wrong direction or too much controversy (as rarely as possible).
The old rule of merging if two core devs agree still stays valid for when it is useful (= when the appropriate maintainer is away).
Github
Each issue and pull request should be assigned to a subsystem using the appropriate section label. For example, pull request #7 would get the label "Section - Build".
Subsystems
Developer | Subsystem |
celeron55 | maintainer conflicts |
sapier | server/client/env |
kahrl | startup/config/util |
ShadowNinja | script API |
hmmmm | mapgen |
celeron55 | client/audiovisuals |
sapier | low-level network |
[OPEN] | build system |
[OPEN] | masterserver |
ShadowNinja | Documentation |
[OPEN] | Translation |
Those positions will maybe be assigned in the future:
releases
voting/community
Subsystem Files
(TODO)
Maintainer conflicts
Meta-subsystem with the task of resolving conflicts between other subsystem maintainers that they can't solve themselves.
Proposed
Proposed: releases
Meta-subsystem with the task of maintaining a reasonable release schedule by deciding when to do it, what is missing and announcing feature freezes and poking the necessary people to make it happen. The most important tasks are to make sure every subsystem maintainer knows when there is a feature freeze and when there is not, and to manage the tags and branches on github.
Proposed: voting/community
Meta-subsystem with the task of figuring out and remembering what the community wants by reading discussions and arranging votings, and being a source of that kind of information to developers who want to focus on developing.