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

Compatibility debugging #2583

Closed
fonsp opened this issue Jun 1, 2021 · 4 comments
Closed

Compatibility debugging #2583

fonsp opened this issue Jun 1, 2021 · 4 comments

Comments

@fonsp
Copy link
Member

fonsp commented Jun 1, 2021

In addition to #2582, @staticfloat also proposed adding "compatibility debugging" features to IDEs (like Pluto.jl): if a package has a more recent version but it cannot be installed, show the user why not (i.e. which other direct dep is holding it back).

I think that this is also valuable directly in the Pkg REPL. For example:

pkg> add Revise
... Revise 2 added! ...

pkg> # hmmm I heard that Revise 3 is available, let's try update!

pkg> update Revise
... No changes to Manifest ...
... Revise 3 is available but Example restricts it to 2 ...

Currently, I can achieve this by copying my environment to a temporary directory, and calling add [email protected] (if 3.2.1 is latest according to the registry). The resulting error message will be the debugging information I need. However, like in #2582, a "dry run" option to Pkg.add would be very useful, allowing me to quickly call Pkg.add without downloading source or binaries.

In the future, perhaps this behaviour can be implemented into Pkg itself?

@KristofferC
Copy link
Sponsor Member

I did some WIP here #2284. Might be able to take something from there.

@KristofferC
Copy link
Sponsor Member

KristofferC commented Nov 29, 2021

Closed by #2284

@fonsp
Copy link
Member Author

fonsp commented May 10, 2022

Thanks, awesome! Would it be easy to expose this through API, so that we can use it in Pluto?

@KristofferC
Copy link
Sponsor Member

You can probably use the status_compat_info as an API and then display the result of that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants