Library inclusion check provides spurious inclusions for build specs …#62
Open
AndreaV-Lsi wants to merge 1 commit intojovianarts:mainfrom
Open
Library inclusion check provides spurious inclusions for build specs …#62AndreaV-Lsi wants to merge 1 commit intojovianarts:mainfrom
AndreaV-Lsi wants to merge 1 commit intojovianarts:mainfrom
Conversation
…with a change history of the Top-level Library This addresses Bug jovianarts#61 When we edit a PPL build specification and we change the "Top-level library" from say "Library A.lvlib" to "Library B.lvlib", and we don't assign "Library A.lvlib" to "Always Included", traces of "Library A.lvlib" are left in the project XML file build specification filed in the "Source" array. This results in the fact that the Source[%d].sourceInclusion .neq. "Exclude" will yield TRUE while the"Library A.lvlib" is not included in the build specification. For this reason, we OR compound the .neq. check with an "Empty String/Path?" check. If we don't do this, we end up with spurious inclusions that can cause bogus circular dependencies Source code was edited in LabVIEW 2019 SP1. Failing Unit Tests were failing before the fix
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 Closes #61
When we edit a PPL build specification and we change the "Top-level library" from say "Library A.lvlib" to "Library B.lvlib", and we don't assign "Library A.lvlib" to "Always Included", traces of "Library A.lvlib" are left in the project XML file build specification filed in the "Source" array. This results in the fact that the
Source[%d].sourceInclusion .neq. "Exclude"
in subXMLGetSourceItemInclusion.vi will yield TRUE despite the fact that the"Library A.lvlib" is not included in the build specification. For this reason, we now OR compound the .neq. check with an "Empty String/Path?" check which singles out the fact that we are actually reading some traces of a previous Top-level Library. If we don't do this, we end up with spurious inclusions that can cause bogus circular dependencies.
The source code was edited in LabVIEW 2019 SP1. Failing Unit Tests were failing before the fix
What does this Pull Request accomplish?
High-level Checklist (if any apply):
Edited subXMLGetSourceItemInclusion.vi by .or. compounding 'Source[%d].sourceInclusion .neq. "Exclude"' with an "Empty String/Path?" check to avoid bogus library inclusion detections.
Why should this Pull Request be merged?
This solves Bug #61, which occurs to users accustomed to building build specifications by duplicating existing ones. When libraries have dependencies (with dependency depth larger than/equal to three), this habit results in the inability to build due to spurious circular dependencies.
What testing has been done?
All tests were run before and after the fix. Tests that fail after the fix were failing before.
An example source code triggering the bug was created, and it was proven that the project builds correctly after the build, and fails with the original code
What Release Build Should This Go In?