-
Notifications
You must be signed in to change notification settings - Fork 162
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
Run new solver with bulk -n
#1163
Comments
The problem is that the shlib checking happens inline - during the build - and depends on dependencies being updated before deciding if a package needs to rebuild. Can't build
I don't know how to fix this without more metadata or simply changing what the output of To be clear, it's not an issue of simply processing packages and checking what libraries they use or provide - we need to actually build some stuff to decide what work is remaining. It's very dynamic now. The other solution is to not do any of this and rely on |
There is some potential for optimizing away some redundant checks. There will still end up being a dynamic set of uncertainty though. |
Hi @bdrewery Sorry, just now I saw this issue. I don't usually check here. Would it be possible to dry-run after calculating the dependencies and the build list, "start" a "build" just to check if the shlib checking step passes? If the step passes, skip the build and go to the next package. As it currently stands, dry-run loses a very important functionality, which is checking the packages that will actually need to be builded. :( Thanks! |
No it cannot be done in a separate phase. Each package must be checked after its own dependencies have been built and checked. If foo requires libfoo which requires bar, and both bar and libfoo are not built (and foo does not need a rebuild) we must build bar and libfoo before we can do the shlib check on foo. It's just not possible to dry-run this stuff. That's the cost of a faster incremental build. The only solution I can see is adding more metadata to ports which is a massive effort. The display problem and lack of dry-run are reasons I sat on this for so long. It is what people want but it complicates things a lot and is unpredictable. |
Prerequisites
The new solver seems great, and I’m spending a fraction of what I used to rebuilding ports.
The new logic is not reflected in
bulk -n
output.I’ve always used
bulk -n
to preview which ports need a rebuild before running it (my poor old server needs comforting when I rebuild node, llvm or rust). The output for ports needing rebuild now always includes the ports that would be ignored.Can the new logic be run before reporting
bulk -n
results? I’d expect the output to reflect what actually will occur.The text was updated successfully, but these errors were encountered: