-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Initial workspace support #3705
Conversation
ed3ee3f
to
203b2cf
Compare
8cc2fa7
to
ec688f3
Compare
CodSpeed Performance ReportMerging #3705 will not alter performanceComparing Summary
|
ec688f3
to
d9322e1
Compare
1281558
to
4e036f8
Compare
Make the error messages more consistent with the format use elsewhere. Split out from #3705
4e036f8
to
ee97dfd
Compare
Make the error messages more consistent with the format use elsewhere. Split out from #3705
ee97dfd
to
bd60f2a
Compare
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.
The discovery logic looks good to me. Just a few comments.
040bedf
to
797cc9a
Compare
@konstin - sorry for going back-and-forth on this, but can we remove all the added links and just install from PyPI? I don't think we should change our test policy in a PR like this -- we pull directly for other tests, so it seems correct here. And checking-in binaries has its own downsides and risks. |
797cc9a
to
88704d0
Compare
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.
Is this still necessary?
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.
Removed it
if !editable { | ||
// TODO(konsti): Support this. | ||
return Err(LoweringError::NonEditableWorkspaceDep); | ||
} |
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.
When does this occur? I'm looking at this from the perspective of: what regressions could we ship that would accidentally impact users?
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.
This branch is only reachable when using uv.tool.sources
(otherwise source is None
), so it's preview gated
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.
Can you please expand the TODO?
66bba83
to
bc920f1
Compare
@@ -1,10 +1,41 @@ | |||
use std::collections::BTreeMap; | |||
//! Collecting the requirements to compile, sync or install. |
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.
Should all of this logic instead be in source_tree.rs
, like in the source tree resolver, instead of defined here?
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.
What parts do you mean? If it's a larger refactoring, i'd do it in another PR
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.
I'm wondering if we shouldn't be doing any dependency resolution in specification.rs
and, instead, move all requirement collection into source_tree.rs
.
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.
(Not for this PR, I suppose.)
Add workspace support when using
-r <path>/pyproject.toml
or-e <path>
in the pip interface. It is limited to all-editable static-metadata workspaces, and tests only include a single main workspace, ignoring path dependencies in another workspace. This can be considered the MVP for workspace support: You can create a workspace, you can install from it, but some options and conveniences are still missing. I'll file follow-up tickets (support in lockfiles, support path deps in other workspace, #3625)There is also support in
uv run
, but we need #3700 first to properly support using different current projects in the bluejay interface, currently the resolution and therefore the lockfile depends on the current project. I'd do this change first (it's big enough already), then #3700, and then add workspace support properly to bluejay.Fixes #3404