-
-
Notifications
You must be signed in to change notification settings - Fork 782
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
suggest unlocking locked pkgs that cause dep resolution failures #3970
base: main
Are you sure you want to change the base?
Conversation
fc51146
to
d40fb24
Compare
.iter() | ||
.map(|(name, package)| (name.clone(), package.to_hex_package(name))) | ||
.collect(); | ||
|
||
let resolved = dependency::resolve_versions( | ||
let root_requirements_clone = root_requirements.clone(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking for suggestions of better designs for this section. Cloning for use in calling the function recursively on the should_try_unlock
page feels a bit gross
vec![Diagnostic { | ||
title: "Dependency resolution with a locked package".into(), | ||
text, | ||
hint: Some("Try removing locked version(s) in your manifest.toml and re-run the command.".into()), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A bit redundant, could remove, lmk
Resolves #3622
Changes:
Error::dependency_resolution_failed
to detect dependency resolution failures due to locked packages in two waysResolutionError::NoSolution
. These are errors where a locked package version is incompatible with a new package added viagleam add
or via a manualgleam.toml
update andgleam deps download
AND the locked package is not constrained inmanifest.toml
. More manual testing is needed for the larger cli interactions.resolution_locked_version_doesnt_satisfy_requirements_indirect
tests this case.locked
map is not in the range specified inrequirements
.resolution_locked_version_doesnt_satisfy_requirements
tests this case.DependencyResolutionFailedWithLocked
to allow pattern matching later to start the CLI action (waiting for user to [y/n] the suggestion)Questions for reviewers:
Ty