As discussed in #62, the interface version (x in x.y.z) of a file should be set entirely by the output_interface_version column in the code that creates it. #62 presents four problems in versioning, two of which (3 and 4 on that list) pertain to the interface version. This PR contains two changes to fix those problems.
One (3 from #62), if a code has its interface (major) version incremented, with no other changes (including no change to output_interface_version), its outputs become candidates for reprocessing and the reprocessed files will have an increment to the quality version. Without this PR, this would increment the interface version, and thus no longer match output_interface_version.
Two (4 from #62), if a file's interface (major) version is incremented, with no other changes, its children files become candidates for reprocessing, again with an increment to the quality version. Without this PR, these files are not reprocessed. (It's actually not an infinite loop, as I originally though, runMe just thinks the file already exists in the database and is up to date.)
PR Checklist
[X] Pull request has descriptive title
[X] Pull request gives overview of changes
[X] New code has inline comments where necessary
[X] (N/A) Any new modules, functions or classes have docstrings consistent with dbprocessing style
[X] (N/A) Major new functionality has appropriate Sphinx documentation
[X] Added an entry to release notes if fixing a major bug or providing a major new feature
[X] New features and bug fixes should have unit tests
[X] Relevant issues are linked in the description (use Closes # if this PR closes the issue, or some other reference, such as See # if it is related in some other way)
As discussed in #62, the interface version (x in x.y.z) of a file should be set entirely by the
output_interface_version
column in the code that creates it. #62 presents four problems in versioning, two of which (3 and 4 on that list) pertain to the interface version. This PR contains two changes to fix those problems.One (3 from #62), if a code has its interface (major) version incremented, with no other changes (including no change to
output_interface_version
), its outputs become candidates for reprocessing and the reprocessed files will have an increment to the quality version. Without this PR, this would increment the interface version, and thus no longer matchoutput_interface_version
.Two (4 from #62), if a file's interface (major) version is incremented, with no other changes, its children files become candidates for reprocessing, again with an increment to the quality version. Without this PR, these files are not reprocessed. (It's actually not an infinite loop, as I originally though, runMe just thinks the file already exists in the database and is up to date.)
PR Checklist
Closes #
if this PR closes the issue, or some other reference, such asSee #
if it is related in some other way)