|
|
(3 intermediate revisions by 2 users not shown) |
Line 1: |
Line 1: |
− | This page documents the level of quality that Phobos strives for.
| + | #REDIRECT [[Contributing_to_Phobos]] |
− | Especially new modules should be judged according to these guidelines.
| |
− | | |
− | | |
− | == Documentation ==
| |
− | | |
− | * Uses complete english sentences with correct syntax, grammar, and punctuation.
| |
− | * Uses precise technical terms. Avoids colloquialisms.
| |
− | * A synopsis at the beginning motivates the module with an example.
| |
− | * All members are explained with examples which should also be unit tests.
| |
− | * Honestly describe limitations and dangers.
| |
− | | |
− | == Code ==
| |
− | | |
− | * Follows the [http://dlang.org/dstyle.html style guide] and being consistent in general.
| |
− | * Appropriate unittesting, coverage should be at or near 100%.
| |
− | * Avoid unnecessarily importing other Phobos modules.
| |
− | * Try to not require a garbage collector (this is not a must).
| |
− | * Module boundary is sensible, which means no temptation to split it into multiple modules nor to merge it into another module.
| |
− | * Observe usual good engineering practices (clarity, one entity/one responsibility, avoid code duplication etc).
| |
− | * Maximal <tt>pure</tt>, <tt>@safe</tt>, and <tt>nothrow</tt> unless deduction is in effect.
| |