diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 00b1555..ea94e01 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -10,6 +10,25 @@ { "id": "676a3e53a7c36034", "type": "leaf", + "state": { + "type": "kanban", + "state": { + "file": "Kanban Pages/Work Kanban.md", + "kanbanViewState": { + "kanban-plugin": "board", + "list-collapse": [ + false, + false, + false, + false + ] + } + } + } + }, + { + "id": "baccd079c408fe2f", + "type": "leaf", "state": { "type": "markdown", "state": { @@ -19,7 +38,8 @@ } } } - ] + ], + "currentTab": 1 } ], "direction": "vertical" @@ -146,10 +166,10 @@ "obsidian-kanban:Create new board": false } }, - "active": "676a3e53a7c36034", + "active": "baccd079c408fe2f", "lastOpenFiles": [ - "Kanban Pages/HelyxVerify.md", "Kanban Pages/Work Kanban.md", + "Kanban Pages/HelyxVerify.md", "Kanban Pages/V&V.md", "Kanban Pages/QA.md", "Windows Compilation.md", diff --git a/Kanban Pages/HelyxVerify.md b/Kanban Pages/HelyxVerify.md index 0bc5841..31fb19c 100644 --- a/Kanban Pages/HelyxVerify.md +++ b/Kanban Pages/HelyxVerify.md @@ -6,17 +6,119 @@ - [x] If the generated file doesn't exist in the long run, ask again - [x] In "init", update the reference (this should be done inside `Generator`)\ +# 0.20 Documentation +- Rundir +- Reduction +- Small-Fail/Large-Fail +- What is the absolute and relative differences # Not reducing +- ===THIS MAY BE UNNECESSARY WITH THE NEW CONFIG FORMAT=== - `caseSetupDict.static`, maybe? - When there is no reduction, there is no need to build the short/long run things - The old format supports that, we just need to figure out when there are no reductions in `init` to generate the old format. - - There is also a suggestion to change the run-dir when there is no reduction, which I'm not sure if possible due the other of "expander"/"reducer"... + - There is also a suggestion to change the run-dir when there is no reduction, which I'm not sure if possible due the other of "Expander"/"Reducer"... - Also, would need to have, in meta information, to have both (one option) rundirs. - This would help the other point of keeping the run-dir static for init, update and run. - Expanding all run-dirs at the start would save a few runs too. - In the pipeline, the sequence is Expander, Reducer, Loader. - The Expander doesn't know if the case can be reduced or not, and can't make a judgement if we need 1 or 2 run-dirs. - Maybe Reducer could have a "reducer probability" kinda of thing that Expander could call to find out the number of run-dirs. - - Function returns: caseSetupDicts that can be reduced but are not continuations, caseSetupDicts that are continuations and caseSetupDicts that can't be reduced. I'd like to make it an iterator, but I guess returning a Vec is good enough (specially since we need to sort the files in the filesystem to find out the continuations). + - Function returns: caseSetupDicts that can be reduced but are not continuations, caseSetupDicts that are continuations and caseSetupDicts that can't be reduced. I'd like to make it an iterator, but I guess returning a Vec is good enough (specially since we need to sort the files in the file system to find out the continuations). + - Problem: Variations need to be sorta-kinda expanded, 'cause they have more/replace caseSetupDicts + - So Reducer needs to know about variations and the merge space from the Expander, and Expander needs to know about reductability from the Reducer. + - (All this to know how many run-dirs we need...) + - Default doesn't have long run (all caseSetupDicts are static); variation have short and long run (at least oneCaseSetupDict is reducible). + - Rename the run-dir after expansion, if found anything that can be reduced? + - Expand the short and long run-dirs always, and then just ignore/delete the long one if the case isn't reducible? + - We need to remove it if it doesn't have a long validation either. - Should we follow the same idea for controlDicts? -- **Need to document this properly** \ No newline at end of file +- **Need to document this properly** [[#0.20 Documentation]] +# verificationDict/validationDict +Idea for a Foam-formated file for Verify +```foam +validation { + variables ("phi" "meanT"); + + // Validation is run in sequence: "long" and "infinite" will not run if "short" passes its thresholds. + // Names are free form, and we could use them to defined the run-dir, e.g., "short" validation will be run in ".run-short", "long" in ".run-long" and "infinite" in ".run-infinite". + short { + steps 10; + generatedFile "postProcessing/10/blah"; + referenceFile "verification/10/blah"; + // No tolerances mean "it will warn if the values are not the same" + + // This makes the continuations explicit, by specificing files that form a single run. + continuations ( + "system/caseSetupDict.initial" + "system/caseSetupDict.continuation1" + "system/caseSetupDict.continuation2" + ) + } + + long { + steps 100; + generatedFile "postProcessing/100/blah"; + referenceFile "verification/100/blah"; + failIf { + absolute 10; + relative 10; + operator and; // will fail is the absolute difference is above 10 AND the relative difference is above 10; + } + } + + infinite { + // With no steps, there is no reduction + // (maybe we need something to tell that there is no reduction explicitly?) + generatedFile: "postProcessing/20000/blah;" + referenceFile "verification/20000/blah"; + failIf { + absolute 20; + relative 20; + // no operator means OR, so example will fail if the absolute different is above 20 OR the relative difference is above 20 + } + } +} + +// This is used for filtering. +tags ("GIB" "AES" "compressible"); + +unstable { + operatingSystem windows; // valid values: "windows", "linux", "all" + reason "The script uses Python, and Python isn't usually available on Windows"; +} +``` +Pest: +```pest +foam = { SOI ~ entry ~ EOI } + +// general stuff +quote = _{ "\"" } +semicolon = _{ ";" } +braces_open = _{ "{" } +braces_close = _ { "}" } +parentheses_open = _{ "(" } +parentheses_close = _{ ")" } +specials = { semicolon | braces_open | braces_close | parentheses_open | parentheses_close | WHITESPACE } +WHITESPACE = _{ " " | "\t" | NEWLINE } +COMMENT = _{ "//" ~ (!NEWLINE ~ ANY)+ } + +// somewhat complex structures +single_word = @{ (!specials ~ ANY)+ } +quoted_word = @{ quote ~ (!quote ~ ANY)* ~ quote } +keyword = { quoted_word | single_word } +value = { keyword } + +// main foam stuff +entry = { (dictionary | list | attribution)* } + +attribution = { keyword ~ value+ ~ semicolon } +dictionary = { keyword ~ braces_open ~ entry ~ braces_close } +list = { keyword ~ parentheses_open ~ value+ ~ parentheses_close ~ semicolon } +``` +Migration plans? +- Side pipeline? + - Current pipeline still exists, a new pipeline is build next to it with the new actors, with the new structures and "finder" sends requests depending on found files. + - What about reporter? +- No actors? + - New design is in early stages and I'm not sure how long till they are both feature compatible. + - Also, how about the current tests? \ No newline at end of file diff --git a/Kanban Pages/Work Kanban.md b/Kanban Pages/Work Kanban.md index 6d19133..9842c56 100644 --- a/Kanban Pages/Work Kanban.md +++ b/Kanban Pages/Work Kanban.md @@ -6,10 +6,6 @@ kanban-plugin: board ## Backlog -- [ ] Allow helyxVerify cases not to be reduced - https://engys.atlassian.net/browse/DO-1198 - [[HelyxVerify#Not reducing]] - #helyxVerify - [ ] Document QA development status #docs - [ ] Doxygen -> Confluence ^y6ec6w @@ -32,9 +28,16 @@ kanban-plugin: board ## Working +- [ ] Allow helyxVerify cases not to be reduced + https://engys.atlassian.net/browse/DO-1198 + [[HelyxVerify#Not reducing]] + #helyxVerify - [ ] Create V&V pipeline [[V&V]] #jenkins +- [ ] Documentation on v0.20 + [[HelyxVerify#0.20 Documentation]] + #helyxVerify ## Blocked @@ -45,13 +48,13 @@ kanban-plugin: board - [ ] Native Windows Build, looking at Caelus-CML (DO-1182) [[Windows Native Compilation]] -- [ ] Python Testing Pipeline - (DO-1161) - > The pipeline is ready, but the script is broken ## DevOps Dec24 - A6 +- [ ] Python Testing Pipeline + (DO-1161) + > The pipeline is ready, but the script is broken - [ ] Copy Geometries to QA run [[QA]] https://engys.atlassian.net/browse/DO-1206