Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Environmental Visual Enhancement can produce CKAN.TooManyModsProvideKraken. #2026

Closed
solarsootysmudge opened this issue Apr 1, 2017 · 2 comments
Labels
Bug Something is not working as intended

Comments

@solarsootysmudge
Copy link

Installing Environmental Visual Enhancement can produce CKAN.TooManyModsProvideKraken.
I can install all of these mods by following a different method. Installing scatter first helps. However I suspect that most end users will do this instead.....

1. Enviromental Visual Enhancements
Asks for config choice
-EVE config
-SVE High
-SVE low
-SVE Medium

2. Select SVE High
Asks for sunflare config
-Scatter sunflare
-Astroniki
-Cepheus
-Eden
-SVE sunflare

3. Select Astroniki

Apply changes
Which lists mods to be installed as
EVE 2EVE1.2-2
SVE Highres 2:1.1.6
scatter 2v0.0300
SVE Scatter config 2:1.1.6
Astroniki for scatter 1.2

5. Click on apply
Recommends Planet shine
Tick mod

6. Click continue
Throws exception
************** Exception Text **************
CKAN.TooManyModsProvideKraken: Too many mods provide Scatterer-config:
Scatterer-config 2:v0.0300

SVE-Scatterer-Config 2:1.1.6
at CKAN.RelationshipResolver.ResolveStanza(IEnumerable1 stanza, SelectionReason reason, RelationshipResolverOptions options, Boolean soft_resolve, IEnumerable1 old_stanza)
at CKAN.RelationshipResolver.Resolve(CkanModule module, RelationshipResolverOptions options, IEnumerable1 old_stanza) at CKAN.RelationshipResolver.ResolveStanza(IEnumerable1 stanza, SelectionReason reason, RelationshipResolverOptions options, Boolean soft_resolve, IEnumerable1 old_stanza) at CKAN.RelationshipResolver.Resolve(CkanModule module, RelationshipResolverOptions options, IEnumerable1 old_stanza)
at CKAN.RelationshipResolver.AddModulesToInstall(IEnumerable1 modules) at CKAN.RelationshipResolver..ctor(IEnumerable1 module_names, RelationshipResolverOptions options, IRegistryQuerier registry, KspVersionCriteria kspversion)
at CKAN.ModuleInstaller.InstallList(List1 modules, RelationshipResolverOptions options, IDownloader downloader) at CKAN.Main.WasSuccessful(Action action) at CKAN.Main.InstallList(HashSet1 toInstall, RelationshipResolverOptions options, IDownloader downloader)
at CKAN.Main.InstallMods(Object sender, DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e)
at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)

Further Research.
Installing scatter first before going through the steps avoids problems.

@solarsootysmudge
Copy link
Author

solarsootysmudge commented Apr 1, 2017

Have confirmed that if Scatterer is selected first. All the same config files appear for selection and install is completed. Whilst doing it as above breaks things.

First posted as a possible NetKan issue. Asked to move here by @politas. Just keep everything in one issue report that one has been closed and last comment moved here.

This is a code issue. Looks like we aren't staying aware of all the changes as we traverse levels of dependency.Can you re-open this as a main repo

Many thanks

@ayan4m1 ayan4m1 added Architecture Bug Something is not working as intended and removed Architecture labels Sep 17, 2017
@HebaruSan
Copy link
Member

I believe this was addressed in #2577. Main.InstallMods now catches TooManyModsProvideKraken and prompts the user to choose.

CKAN/GUI/MainInstall.cs

Lines 175 to 198 in 7413c23

catch (TooManyModsProvideKraken k)
{
// Prompt user to choose which mod to use
CkanModule chosen = TooManyModsProvideCore(k).Result;
// Close the selection prompt
Util.Invoke(this, () =>
{
tabController.ShowTab("WaitTabPage");
tabController.HideTab("ChooseProvidedModsTabPage");
});
if (chosen != null)
{
// User picked a mod, queue it up for installation
toInstall.Add(chosen);
// DON'T return so we can loop around and try the above InstallList call again
}
else
{
// User cancelled, get out
tabController.ShowTab("ManageModsTabPage");
e.Result = new KeyValuePair<bool, ModChanges>(false, opts.Key);
return;
}
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something is not working as intended
Projects
None yet
Development

No branches or pull requests

3 participants