-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
feedback on code loading docs #26910
Comments
FYI you can review merged PRs, would make it easier to understand the context in which your comments apply. |
fair enough, I can see how this list is a bit unwieldy. I'm not expecting per-point back-and-forth though, so I figured it's reasonable to comment on the current state. @StefanKarpinski LMK if this is a pain to walk through and I can migrate the notes to comments on the PRs some time in the next couple days (I haven't checked, but most of them probably belong to #26787) |
Thanks for the feedback, @ssfrr. I actually like having it in an issue since it helps keep track of changes that need to be made—I can make a PR that closes this issue with all the things that need changing in response to it.
Well, currently it's both since git is the unique example. I went back and forth.
Yes, it's just for the nil UUID case, which is annoying but it's a pretty important case at least until we reach a point where we can rely on all packages having UUIDs—which I'm not actually sure we ever will since it's kind of nice to be able to gradually move from a package that's just a directory to one that's got a project file and a UUID and so on. Until then we need the name.
By "exact version information" I actually meant the source tree hash, not the version number. The version number is redundant whereas the source tree hash is necessary. Perhaps this could be worded more clearly.
The rule is that the
Good catch, I used to have these reversed.
In the no project file case, you still want to be able to load dependencies and have things work the way they've worked in previous Julia versions, which means allowing the project to load top-level dependencies the same way you can in Main. The case of a project file with no UUID is not any different than having a UUID except that no one can depend on that project by its UUID since it doesn't have one. There is still a project file and you only want to allow the project to load explicitly declared dependencies in its
Everything is relative to the package directory. Any ideas on where to clarify that? |
Fixed by #27113? |
Partly but I wasn’t able to clarify everything. It’s unclear if I should aim to address all in the text or just answer here. |
Yeah for the most part those tweaks cleared up things for me. Thanks.
Might be worth a little note to this effect, most other features of the manifest and project files seemed pretty clearly laid out. Maybe something like: "Notice that I think for the other issues (clarifying the purpose of UUID-less project files and clarifying package directories) I don't have much more useful feedback right now. I probably just need to spend some more time playing with it and seeing how things shake out as folks start to transition. |
I told @StefanKarpinski a bit ago that I'd review the new code loading docs. This isn't really an issue but I figured it was better to file it here rather than a big slack dump. Feel free to close/migrate at will.
So here's some feedback:
paths
key? Are there cases where the same UUID would show up multiple times but with different names, each pointing to different entry points? (is this just to handle the nil UUID case?)Priv
package it looks like the version info is also optional, but this description makes it sound like the version is manditory.App
manifest file, how do we know whichPub
andZebra
packages the privatePriv
package depends on? It seems like only their names but not their UUIDs are given. In this case it's unambiguous because there's only one package with each name, but if there were two differentZebra
packages I don't see how we'd know which onePriv
was referring topaths
block the labels for which ones are in the user depot and the system depot are reversedAardvark
/Bobcat
/Cobra
example by mentioning why a given package might be in that state (e.g. why would a package ever have a Project.toml without a UUID?).roots
/etc. are being constructed. Is this when running from the REPL withpwd()
being the Package Directory, or when running a julia file in the same directory as the package directory, or something else?The text was updated successfully, but these errors were encountered: