Trac
Rules & Guidelines for Code Committers
- Before you commit a new feature, make sure this feature does not yet exist. Also, familiarize yourself with the context of the modified code to make sure you've found the best place in the code where the feature will be added. This helps to maintain a good OO design.
- Before you commit a bugfix, make sure your fix is a long-term solution and not a dirty work-around.
- If you make changes that break backwards-compatibility in a codebase that is already in beta-state or later (RC, final, ...), document these changes in the CHANGELOG.
- Try to avoid changes that break backwards-compatibility in a codebase that is in RC state or later (final, ...).
- Release branches, found in directories such as branches/0.9, are meant to be stable, bugfix-only branches. They are created from trunk when all of the features and major refactoring for a new release are completed, and the new release has reached feature freeze. No new features or any backwards compatibility breakage should ever happen in a release branch; they are purely for bugfixes.
- When fixing a bug in a specific release, fix the issue in the release branch and then merge it back to the trunk.
- It is advisable to commit a new testcase together with a new feature or bugfix, if none exists yet.
- It is advisable to discuss larger changes or changes that affect the public API with other developers. Below is a list of persons that lists their main responsibilities so that you know with whom to talk. Note that the dev mailing list is preferrable to IRC for discussions as gives everyone a chance to make a comment.
- Before you commit ANYTHING, make sure to run the whole test suite and that the suite does not produce more failures after your changes than before. The tests must never be in a broken state (fatal error ...).
Persons and the areas they work in
Konsta (zyne)
Mainly: Doctrine core (Relations, DQL, Hydration, Inheritance), Plugins, Templates, Doctrine_Search, Event Listeners
Secondary: Caching, Database abstraction
Roman (romanb)
Mainly: Doctrine core (Relations, Hydration), Validation, NestedSet, Performance
Secondary: Migrations, Database abstraction, Caching
Jonathan (jonwage)
Mainly: Migrations, Import, sfDoctrinePlugin, Schema files, CLI, Sandbox, File Parser, Data Fixtures
Secondary: NestedSet
Lukas (lsmith)
Mainly: Database abstraction (Import, Export)