Ignore manually installed duplicates of installed modules #4257
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.
Problem
According to #4256, installing Parallax with CKAN and then Parallax Continued manually causes CKAN to enforce version-specific relationships against the manually installed DLL:
This is arguably correct behavior, since you do have a manually installed DLL, for which which CKAN cannot programmatically determine a version for comparison with version-specific relationships. But it's opaque and frustrating for users, who just want some way to get these paid mods integrated into the ecosystem.
Cause
This is speculation because the affected mod is not publicly available and the issue description isn't detailed enough to confirm, but it sounds to me like the manually installed mod is being put in a different path than the CKAN-installed mod.
I say this because if you simply replaced the CKAN-installed files with manually installed ones in the same locations, then CKAN would not even know anything had changed and relationships would match or not exactly the same as if you had just installed with CKAN. Something is giving away the manual changes, and the most likely explanation is that they're in a different path, allowing the DLL to be detected as manually installed.
Changes
Now if you install a mod with CKAN and then install an extra copy of it manually somewhere else, the manually installed copy will be ignored by CKAN (but not by the game, of course!). This will ensure that version-specific relationships will match based on the CKAN-installed module only, so users of this one paid mod can have a workaround to bypass the non-paid mod's version-specific relationships.
Fixes #4256 (probably).