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

Once again allow users to select dependencies when multiple provides exist #1002

Merged
merged 12 commits into from
Jun 5, 2015

Conversation

RichardLake
Copy link
Contributor

Fixes #976.

See: KSP-CKAN/CKAN-GUI#137 for some discussion.

@RichardLake RichardLake added Enhancement New features or functionality GUI Issues affecting the interactive GUI Core (ckan.dll) Issues affecting the core part of CKAN ★★☆ In progress We're still working on this pull request and removed In progress We're still working on this ★★☆ labels May 31, 2015
@RichardLake RichardLake force-pushed the UserProvidesSelect branch 5 times, most recently from a5fa0a4 to 90c751a Compare June 1, 2015 02:35
@pjf pjf changed the title User provides select Once again allow users to select dependencies when multiple provides exist Jun 2, 2015
@@ -9,12 +9,15 @@
<AssemblyName>CmdLine</AssemblyName>
<StartupObject>CKAN.CmdLine.MainClass</StartupObject>
<ApplicationIcon>..\GUI\assets\ckan.ico</ApplicationIcon>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm guessing we didn't have a target framework before? What would it default to without this? (My mind says that we were targeting dotnet40, but I've no idea if that's actually true.)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the VS default is v4.0 but I'm not 100%

@@ -333,6 +334,15 @@ private void Add(CkanModule module, Relationship reason)
}
}

private bool MightBeInstallable(CkanModule module)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Some docs on this would be great.

It looks like we recursively chase all dependencies and make sure we can potentially install them all in some iteration. (Although we don't check against conflicts against currently installed mods, since MightBeInstallable vs AbsolutelyInstallable. :)

@pjf
Copy link
Member

pjf commented Jun 2, 2015

Under Linux with mono 3.2.8 and 21d2b98, I get a hard lock whenever I select anything that requires a choice to be made. The GUI completely stops responding, the window can't be closed, and I have to kill it from the command-line. :(

@pjf
Copy link
Member

pjf commented Jun 2, 2015

I can also reproduce the same lock-up under Mono 3.12.1 under Linux.

Fixes KSP-CKAN#976
Pops up the moment the user chooses a mod instead of waiting until the install. This way there can be accurate change sets and conflict detection.
Allows scrolling the error message and easier copying.
Now works. It deselects the mod which caused the screen to pop up. Also adds a test.
Windows seems to fire ItemChecked on creation, Linux does not. As such all checkbox where selected on Linux leading to errors.
Fixes some of KSP-CKAN/CKAN-GUI#137 (comment)
When a selected provide mod it self triggered to many provides the next screen's cancel button was incorrectly cancelling the original mod.
Select mod for install was working on the filtered list instead of the whole.
ModuleNotFound occurs because the registry's availablewithprovides happy returns mods which are not available. Long term fixing that would be the correct solution
Otherwise if a provides throws a InconsistentKraken the contents would leak.
@pjf
Copy link
Member

pjf commented Jun 3, 2015

Testing 4b5d3e4:

  • Selecting Astronomer’s Pack immediately gives me a choice of clouds. Hooray!
  • Selecting an option (eg High) and then selecting another without unticking the first does change my selection, but causes the continue button to grey out.
  • Unselecting an option and then re-selecting it causes the continue button to return to active behaviour.

This isn't a show-stopper (we're way better than we were before), so I'm continuing with review.

@pjf
Copy link
Member

pjf commented Jun 3, 2015

Same commit, but more serious bug:

  • Select Astronomer's Pack
  • Select a cloud pack (I picked low)
  • Note that we're back on the mod selection list, but there's no Changset tab, nor active "go to changes" button.

Selecting the cloud pack directly in the mod list does the right thing (gives me a change set with dependencies listed).

A more minor behavioural surprise (and also not a merge-blocker) is that if we untick the cloud pack we immediately get asked to choose a cloud pack. That's kind of cool (because it keeps consistency), but users may be surprised by it (eg: either expecting either for the dependant package to be unchosen, or for that to be an option that's presented).

@Postremus
Copy link
Contributor

Outerplanetsmod shows a similar behaviour.
Dependencys are not listed, but instead immediatly installed.
You only see the dependencys in the install screen

----- Ursprüngliche Nachricht -----
Von: "Paul Fenwick" notifications@github.com
Gesendet: ‎03.‎06.‎2015 10:05
An: "KSP-CKAN/CKAN" CKAN@noreply.github.com
Betreff: Re: [CKAN] Once again allow users to select dependencies whenmultiple provides exist (#1002)

Same commit, but more serious bug:
Select Astronomer's Pack
Select a cloud pack (I picked low)
Note that we're back on the mod selection list, but there's no Changset tab, nor active "go to changes" button.
Selecting the cloud pack directly in the mod list does the right thing (gives me a change set with dependencies listed).
A more minor behavioural surprise (and also not a merge-blocker) is that if we untick the cloud pack we immediately get asked to choose a cloud pack. That's kind of cool (because it keeps consistency), but users may be surprised by it (eg: either expecting either for the dependant package to be unchosen, or for that to be an option that's presented).

Reply to this email directly or view it on GitHub.

@RichardLake
Copy link
Contributor Author

Selecting an option (eg High) and then selecting another without unticking the first does change my selection, but causes the continue button to grey out.

Fixed in 2cbcdf1

. ... (eg: either expecting either for the dependant package to be unchosen, or for that to be an option that's presented).

Long term idea is to continue towards making RelationshipResolver work with multiple calls instead of the current one-shot everything in ctor method. Once this and adding mods to the provider with reasons are in it should be possible to use the reasonFor functionality to extract which mod is the dependant package. At which point it would be easy to change the GUI behaviour.

Note that we're back on the mod selection list, but there's no Changset tab, nor active "go to changes" button.

:worksOnMyMachine:. I'll break out the linux VM and check if it is a mono/.Net difference and investigate.

@RichardLake
Copy link
Contributor Author

Note that we're back on the mod selection list, but there's no Changset tab, nor active "go to changes" button.

Functioning on mono 4.0.1 from a empty install.

@RichardLake
Copy link
Contributor Author

@pjf Can you replicate the missing changeset tab with a empty install?

@pjf
Copy link
Member

pjf commented Jun 5, 2015

Apologies for my absence over the last two days; life threw me a real curveball.

@pjf Can you replicate the missing changeset tab with a empty install?

I cannot. And after some tracking, I discovered that I have PlanetShine-Config-Default installed, which conflicts causes conflicts. Selecting just the cloud pack doesn't technically depend upon the parent Astronomer’s Pack, so no conflicts.

This is a fault in my testing. Hooray! :D

@pjf
Copy link
Member

pjf commented Jun 5, 2015

Merging every zig for great justice. :)

pjf added a commit that referenced this pull request Jun 5, 2015
Once again allow users to select dependencies when multiple provides exist
@pjf pjf merged commit c57dc8a into KSP-CKAN:master Jun 5, 2015
@pjf pjf removed the pull request label Jun 5, 2015
@RichardLake RichardLake deleted the UserProvidesSelect branch June 5, 2015 07:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Core (ckan.dll) Issues affecting the core part of CKAN Enhancement New features or functionality GUI Issues affecting the interactive GUI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

CKAN GUI no longer gives choices of dependencies (TACLS)
3 participants