From d8c39a61216ad17de4ea1639c5d7bc197fe65803 Mon Sep 17 00:00:00 2001 From: Lukas Rothenberger Date: Fri, 13 Oct 2023 10:22:22 +0200 Subject: [PATCH] doc[developer-guide]: added overview of folder structure --- docs/How_to_contribute.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs/How_to_contribute.md b/docs/How_to_contribute.md index 7d9e51017..80fdc27e4 100644 --- a/docs/How_to_contribute.md +++ b/docs/How_to_contribute.md @@ -64,3 +64,25 @@ A new version number shall be determined as follows: * Release adds a major new feature or modifies any interface (for example by modifying the format of input or output data) in such a way that it is not fully compatible with the previous version anymore. * ==> Increase first digit by `1`. * ==> Set remaining digits to `0`. + +# Developer hints +## Output folder structure +All tools developed as part of the DiscoPop Project make use of the following folder structure: +``` +- project root/ + - .discopop/ + - common_data/ + - FileMapping.txt + - / + - tool_1 output files + - private/ + - tool_1 intermediate files + - / + - ... + - ... +``` +, where no data should be stored / created outside the `.discopop` folder in order to keep the users build directory as clean as possible. +Files which are read by different tools, e.g. the `FileMapping.txt`, shall be stored in the `.discopop/common_data` folder. +Each tool may create a folder. In case data from these files is required by another tool, think about how to encode the information in a easy-to-use and structured format, preferrably JSON. If possible, please do not rely on exporting to simple `.txt` files as parsing adds a potential point of failure. +Output data for use by other tools should be stored in the folder of the creating tool. Intermediate files may be stored in a folder named `private` and shall not be used by other tools. +Analysis tools, like pattern detection scripts etc. shall be structured in such a way, that a execution from within the `.discopop` folder is intended.