Commit rules
From Freeciv
Coding | Remember | How to Contribute | Bug Reporting | Commit Rules | Source Tree Access | Help Wanted Forum | Known Bugs | Browse Source Tree | Testing tips | edit navbar
Contents |
[edit] Concept
The basic concept is that default modules of the tree are sensitive and optional modules are not. If a default module gets disturbed you will stall the work of the other developers. If an optional module gets disturbed the issues will have limited impact and the other developers may continue their work unimpaired.
[edit] Default modules
The files in these directories are critical for the game to function:
- ai/*
- client/*
- client/gui-gtk-2.0/*
- common/*
- common/aicore/*
- data/default/*
- data/isophex/*
- data/isotrident/*
- data/misc/*
- data/nation/*
- data/trident/*
- server/*
- server/scripting/*
The procedure for commits to these modules is as follows:
Patches must be posted to the bug tracker before commit in all cases. Critical bug fix patches may be commited immediately after post by anyone who has had SVN access for at least a month. Everyone else follows the rules for Normal patches. Remember to list the bug tracker number (PR#) in the commit to allow easy cross-referencing from the SVN history into the discussion about a particular issue.
[edit] Normal patches
Patches must be posted to the bug tracker. Grant an adequate period of time before commit to allow comments (minimum 36 hours).
If there are comments the patch should be modified accordingly and reposted by one of the interested parties. Wait for comments regarding the modification (minimum 24 hours). Iterate.
If there are no more issues commit.
[edit] Critical bug fix patches
A critical bug fix patch removes the causes of one or more of these effects:
- Compilation failure.
- Program startup failure.
- Program lockup/infinite loop.
- Premature program termination (e.g. core dump).
- Data corruption.
[edit] Stable and Unstable periods
Normal development proceeds at a testing level of stability. But from time to time a higher or lower stability level is desired.
- The stable branch of SVN, and the development branch immediately before branching, are considered stable. Extra care needs to be taken not to break the building or execution of the tree with these tags.
- Sometimes when a large series of patches depend on each other, or when development is proceeding at a more rapid pace, patches may be integrated immediately to allow continued development. This should happen only with the consensus of other maintainers.
[edit] Maintained optional modules
These modules are optional and have specific maintainers. These maintainers are responsible for the contents of these modules. If it gets broken it is their responsibility to fix it.
Client modules:
- amiga/*
- client/gui-gtk-2.0/*
- client/gui-mui/*
- client/gui-sdl/*
- client/gui-win32/*
- client/gui-ftwl/*
- client/gui-xaw/*
Translation modules:
- doc/{de, fr, it, ja, nl, sv}/*
- po/*.po
The procedure for commits of patches to these modules is as follows:
[edit] Module maintainers
Module maintainers may commit patches immediately. It is considered polite to post the patches to the bug tracker before commiting.
[edit] Everyone else
Follow the rules used for Default modules. It is considered polite to ask the module maintainer for comment before commiting.
[edit] Non-Maintained optional modules
Follow the rules used for Default modules.
[edit] See also
- Marko's Testing tips
