3 ms·
This looks similar to some Bazel rules I'm working on. I'm also using the approach of defining target environments up front [1], but the main difference is that
by jvolkman 4y ago
This looks similar to some Bazel rules I'm working on. I'm also using the approach of defining target environments up front [1], but the main difference is that I'm currently offloading the actual resolution process to Poetry or PDM, which both generate cross-platform lock files.
But Poetry and PDM don't add build dependencies to lock files - which I need - so I'm thinking of building a custom resolver.
Did you consider using resolvelib [2], which is what underlies both pip and PDM?
[1]
https://github.com/jvolkman/rules_pycross/blob/main/examples/poetry/BUILD.bazel#L58-L71 https://github.com/jvolkman/rules_pycross/blob/main/examples...
[2] https://github.com/sarugaku/resolvelib https://github.com/sarugaku/resolvelib
- idop 4y agoI didn't know about resolvelib, looks interesting, I'll have to give it a deeper look, thanks.
- idop 4y agoBy the way, Poetry's dependency resolution isn't that great. It doesn't properly evaluate optional dependencies. For example, when I try to install pymongo on Linux, it will insist on installing pywin32 as well, even though it is completely irrelevant. It's given me a lot of headaches.