Create an "always stale" target that generates the hash table of parser functions #242
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a partial for #231 , and focuses on solving a single problematic part of the pull: there is a target that generates the hash table of parser functions, but required manual intervention to trigger an update (the prior way was to edit the
dummy
string). This was generating issues, because if you made an edit to a parser function or added a new one, you wouldn't necessarily send those changes on to the parsing of the files. You'd discover this when you got an error because there was a cooperator-added file that didn't have a parser ("but I added that file!") and then realize you need to go back and change the dummy argument. The worse case was when you made a bug fix to a parser and thought you propagated the changes withscmake()
but the changes weren't recognized because they are effectively hidden fromremake
(the parser files are referenced by a directory of files, not the individual files in the recipe).This is a
scipiper
-specific fix which does introduce some new codes and concepts even though I think we're doing most of the new stages and refactors withtargets
. But I found this issue to be too error-prone to have it keep biting us, so this could be a solution moving forward or could be replaced if the coop section of this pipeline is refactored withtargets
due to the stage's continued use/development and the other brittle components that still exist and are or will be documented in #231What this solution does is force
7a_temp_coop_munge/tmp/parser_files.yml
andcoop_parsers
to both be stale on every single build. These are quick targets to generate, so this doesn't cost much. If neither of these targets actually change after rebuild, the result of the task table isn't rebuilt too, so that works as expected: