-
Notifications
You must be signed in to change notification settings - Fork 23
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
Give feedback on failed dependency resolution #15
Comments
This could also be what we need to give the user more choice in the game setup menu - accepting newer module dependency versions after a disclaimer, for instance. Sounded like @Josharias was interested in helping out with that in the game menu piece :-) |
Hmm. To be honest I had thrown this one in the too hard basket to worry
about much later. I'm sure something is possible, although I think it might
be separate from the Dependency Resolver.
The problem with the algorithm used is it isn't clear to me how to detect
the root cause of a resolution failure - and in fact there may be multiple
root causes. Constraints don't fail - the are merely statements used to
filter out options that can't be satisfied - and any given filtering out
may be fine. It isn't until every version of a desired module is eliminated
that you can be sure there is an issue, but then the cause isn't the
constraint that eliminates the last version, but the initial constraints
triggering the chain leading to the elimination of each version.
|
checks watch ⌚ Is five years later “much later” yet? 😉 but seriously, this is a huge source of frustration in trying to work in Terasology. You just get this message that says “failed” with nothing to follow up on and your only options are to walk away or try slamming your face into the wall again and hoping it doesn't hurt this time. So after spending a couple hours with a debugger, I'm here in ResolutionAttempt.VersionConstraint.ConstrainFrom, figuring this is where stuff gets thrown out. (which is itself information! it was loaded in the first place and then excluded by a constraint, which is different than never-found.) and I've got the debugger spitting this out when something's invalid String.format("INCOMPATIBLE %s %s %s %s %s",
fromVersions, this, toVersions,
version.version.orElse(null), compatibility.versionRange); which is starting to look almost useful, except I can't read this very well
so I think the bare minimum here is:
and I guess that goes for That's not going to make it back to ResolutionResult in a way that we can put a UI on top of, and it's not going to conclusively identify the point of failure (as you said, not all constraints lead to failure), but at least it'll give a person something to go on. |
seems like it may also be useful to filter on |
Currently, the
ResolutionResult
class returnsfalse
when the resolutions fails. I would find it helpful to get more information on why that happened.This could include the modules (version ranges) in the DAG that were missing or the dependency links (as modeled by the
--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/11606101-give-feedback-on-failed-dependency-resolution?utm_campaign=plugin&utm_content=tracker%2F12992746&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F12992746&utm_medium=issues&utm_source=github).Constraint
class).The text was updated successfully, but these errors were encountered: