Look up dependency list and extensions from project file for stdlibs and deved packages.
Right now, when a package is loaded the manifest is used to look up the set of dependencies and the set of extensions for that package. This is a problem for stdlibs and deved packages because this information can change without the manifest being updated:
- Changing julia version will change the stdlibs used which can change the set of dependencies and extensions
- Modifying a deved package (either changing the set of dependencies or extensions) will not update the manifest.
In both of the cases above, a user need to do e.g. a pkg> resolve to update the manifest based on the non-content tracked packages.
Failure to do so leads to annoying loading errors and precompile problems.
However, there is a place where the correct information is always available, the project file. This is always up to date and we can instead read that one.
We could still store the set of dependencies in the manifest for stdlibs and deved packages but the source of truth would be the project file and we can warn when the two sources of information are not consistent.
I reopen this because while the dep lookup for stdlibs is now done via project file this is not done for devved packages and the same thing should apply to extensions.
Is this what Keno is trying to fix with his big rewrites (#59863 and #59881)?
I don't think so
It's not, but I understand the code now, so I could probably implement this.