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

Respect installing modules during dependency resolution #3002

Merged
merged 3 commits into from
Feb 15, 2020

Commits on Feb 15, 2020

  1. Respect installing modules during dependency resolution

    Currently when uninstalling dependencies of a mod and installing a new mod that provides these dependencies,
    CKAN will remove the dependent mod, even though its dependencies will be satisfied after the process completed.
    
    Example: Scatterer depends on Scatterer-config and Scatterer-sunflare.
    Spectra provides both of these modules.
    
    When you have Scatterer installed with its default config + sunflare and mark Spectra for installation, CKAN correctly reports conflicts.
    Then you de-select the dafault config + sunflare so they get uninstalled.
    Even though Spectra provides these modules too (which triggered the TooManyModsProvide conflict), CKAN (both GUI and ConsoleUI) wants to remove Scatterer.
    
    This is due to the mods that are about to be installed not being respected in `FindReverseDependencies()` > `FindUnsatisfiedDepends()` > `MatchesAny()`.
    This commit adds an optional argument to `FindUnsatisfiedDependencies()`, `IEnumerable<CkanModule> modulesToInstall`, which will be added to the list of "currently installed" mods,
    so `FindUnsatisfiedDepends()` considers them and their provided modules.
    DasSkelett committed Feb 15, 2020
    Configuration menu
    Copy the full SHA
    fafdb09 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2526190 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    7ae5ba6 View commit details
    Browse the repository at this point in the history