diff options
author | Loek Le Blansch <loek@pipeframe.xyz> | 2024-12-04 12:57:05 +0100 |
---|---|---|
committer | Loek Le Blansch <loek@pipeframe.xyz> | 2024-12-04 12:57:05 +0100 |
commit | 47cd8240013cc10682cdfacd39f5988e97b862cc (patch) | |
tree | 4a57b5f9bbac2c59128f2746e9840726788b153c /contributing.md | |
parent | 8d1c0d3b99d51c1b9a02e7baf41d78d3abd0d385 (diff) |
update contributing.md
Diffstat (limited to 'contributing.md')
-rw-r--r-- | contributing.md | 66 |
1 files changed, 49 insertions, 17 deletions
diff --git a/contributing.md b/contributing.md index 85e29bb..9f22c60 100644 --- a/contributing.md +++ b/contributing.md @@ -635,15 +635,21 @@ that you can click on to open them. </summary><table><tr><th>Good</th><th>Bad</th></tr><tr><td> ```cpp + void Foo::bar() { } + void Foo::set_value(int value) { this->value = value; + this->bar(); } ``` </td><td> ```cpp + void Foo::bar() { } + void Foo::set_value(int new_value) { value = new_value; + bar(); } ``` </td></tr></table></details> @@ -868,6 +874,8 @@ that you can click on to open them. # Documentation +[Doxygen commands](https://www.doxygen.nl/manual/commands.html) + - All documentation is written in U.S. English - <details><summary> Doxygen commands are used with a backslash instead of an at-sign. @@ -953,23 +961,45 @@ that you can click on to open them. Foo & operator=(Foo &&) = delete; ``` </td></tr></table></details> -- Features are described in the Doxygen Feature Tab (in this order): - - A feature description should explain the purpose and function of the feature, - focusing on what it enables or achieves for the gamedeveloper. - - Include additional information about when to implement the feature, - such as specific use cases or scenarios. - - Provide an example to demonstrate how gamedevelopers can enable or use the feature. - <!-- add example --> - - If the current feature depends on or reuses a previous feature, - include a link to that feature from the current feature (backward link, if applicable). - <!-- add example --> - - If the current feature depends on or reuses a previous feature, - include a link from the previous feature to the current feature (forward link, if applicable). - <!-- add example --> - > [!NOTE] - > A feature is almost never a component, system or large part of the engine. - > If a component or system has a single, - > distinct feature it should be named after that feature, not the component or system itself. +- Do not use markdown headings in Doxygen + +## Documenting features + +Engine features are small 'building blocks' that the user (game developer) may +reference when building a game with the engine. Features do not necessarily map +1-1 to engine components or systems. If a component or system has a single, +distinct feature it should be named after that feature, not the component or +system itself. + +The sources for these pages are located under `src/doc/feature/`, and have the +following format: + +- A feature description which explains— + - the purpose and function of the feature (focus on what it enables or + achieves for the user) + - additional information about when to implement the feature, such as specific + use cases or scenarios +- A list of 'see also' references to relevant classes and/or types +- A **minimal** example to demonstrate how the feature is used. The example + should be written such that the following is clear to the reader: + - Which headers need to be included to utilize the feature + - Where is this code supposed to be called (e.g. inside scene/script + functions) + - *Why* the example works, not what is happening in the example + - Which restrictions should be kept in mind (e.g. copy/move semantics, max + component instances, speed considerations) + +Features should be documented as clear and concise as possible, so the following +points should be kept in mind: + +- If a page expands on an example from another page, directly reference the + other page using a cross-reference (`\ref`) instead of writing a larger + example +- When explaining the usage of specific functions, qualify them such that + Doxygen is able to add a cross-reference or manually add a reference using the + `\ref` command. +- Users will likely copy-paste examples as-is, so do this yourself to check if + the example code actually works! # Libraries @@ -977,4 +1007,6 @@ that you can click on to open them. subdirectory - When adding new submodules, please set the `shallow` option to `true` in the [.gitmodules](./.gitmodules) file +- When adding new libraries, please update the library version table in + [readme\.md](./readme.md) |