CKAN
CKAN copied to clipboard
Multiple issues with depending a specific mod version
ATTN: @pjf, @RichardLake. This issue repeatedly refers to MechJebFARExt. With v1.8.4-0-gf17dfb5 (beta) on KSP 1.0.2 (win): Initial condition: a dummy ksp install consisting of just the readme.txt and the various required directories. Tick 'MechJeb Modules for FAR' (MechJebFARExt) and install. The following will be installed:
* MechJebFARExt 1.0.0 (cached)
* MechJeb2 2.5.1 (cached)
* FerramAerospaceResearch v0.15.2_Ferri (cached)
* ModuleManager 2.6.6 (cached)
* ModularFlightIntegrator 1.0.repackaged0 (cached)
This demonstrates that #1175 fixed the bug where the wrong version of FerramAerospaceResearch was selected causing the install to fail.
Tick [update] for Ferram Aerospace Research (FerramAerospaceResearch) and install. This will incorrectly allow FerramAerospaceResearch to be updated to a version (v0.15.3_Froude) that in incompatible with MechJebFARExt. v1.8.4-58-gb447380 (beta) behaves in the same way.
With v1.8.4-0-gf17dfb5 (beta) on KSP 1.0.2 (win): Initial condition: a dummy ksp install consisting of the readme.txt, the various required directories and the following mods.
- FerramAerospaceResearch v0.15.3_Froude
- ModularFlightIntegrator 1.0.repackaged0
- ModuleManager 2.6.6
Tick 'MechJeb Modules for FAR' (MechJebFARExt). The client will throw an exception of type 'CKAN.InconsistentKraken':
************** Exception Text **************
The following inconsistencies were found:
FerramAerospaceResearch requires a version v0.15.2_Ferri. However a incompatible version, v0.15.3_Froude, is in the resolver at CKAN.RelationshipResolver.ResolveStanza(IEnumerable`1 stanza, SelectionReason reason, RelationshipResolverOptions options, Boolean soft_resolve)
at CKAN.RelationshipResolver.Resolve(CkanModule module, RelationshipResolverOptions options)
at CKAN.RelationshipResolver.AddModulesToInstall(IEnumerable`1 modules)
at CKAN.MainModList.ComputeConflictsFromModList(Registry registry, IEnumerable`1 change_set, KSPVersion ksp_version)
at CKAN.Main.<UpdateChangeSetAndConflicts>c__async1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at CKAN.Main.<ModList_CellValueChanged>c__async0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__4(Object state)
v1.8.4-58-gb447380 (beta) does not crash, colours the line and displays an explanation of why. This demonstrates that #1219 fixes this bug, however if FerramAerospaceResearch is then unticked the client will crash with the message 'Mod FerramAerospaceResearch is not in the list':
************** Exception Text **************
System.ArgumentException: Mod FerramAerospaceResearch is not in the list
at CKAN.RelationshipResolver.ReasonStringFor(Module mod)
at CKAN.RelationshipResolver.get_ConflictList()
at CKAN.MainModList.ComputeConflictsFromModList(IRegistryQuerier registry, IEnumerable`1 change_set, KSPVersion ksp_version)
at CKAN.Main.<UpdateChangeSetAndConflicts>c__async1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at CKAN.Main.<ModList_CellValueChanged>c__async0.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<ThrowAsync>b__4(Object state)
Even able to reproduce similar behaviours in the gui when trying to install metapackages with old mods.