Netkan errors and warnings for Harmony bundlers #3326
Merged
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.
Background
See KSP-CKAN/NetKAN#8288, we are attempting to prevent mods that bundle conflicting versions of Harmony from clashing with each other.
Harmony 1
Before that PR, all Harmony-based mods in CKAN bundled Harmony 1, and CKAN installed them as-is. They may continue to do so, but only if they are appropriately flagged in the metadata:
A mod with this metadata will be treated as incompatible with
Harmony2
, and each time it releases a new version, it will be staged for manual review so we can check whether the author has upgraded to Harmony 2.Harmony 2
Mods that use Harmony 2 will share a common dependency on the new
Harmony2
module, and any bundled copies they may include will be filtered out:Problem
The remaining gap in this strategy is that any mod author might decide to add Harmony to an existing mod at any time, and we would be none the wiser. There may even be some existing ones that we didn't catch in the first round of updates.
Changes
Now if a mod installs a DLL with "Harmony" in its name and it doesn't provide Harmony1, the inflator emits an error, to prevent any newly bundled files from causing conflicts in user installs. These must then be inspected manually to determine which version of Harmony is bundled, and then the appropriate solution will be applied.
Now if a mod does provide Harmony1 but doesn't seem to bundle it, the inflator emits a warning.
The
Harmony2
module is exempted from these checks.