Closed jeremyd2019 closed 2 years ago
a) this seems to be in msys2-web, not autobuild, and b) it may be some sort of confusion about circular dependencies? Some packages are getting tomli and some are not.
https://github.com/msys2-arm/msys2-autobuild/runs/4387514100?check_suite_focus=true
pep517 should have depended on tomli, but didn't. virtualenv should have depended on setuptools-scm but didn't (and was actually attempted to be built before setuptools-scm as a result).
If my underlying assumptions are correct, maybe it would make more sense to put breaking dependency loops in autobuild instead of msys2-web. autobuild's get_buildqueue_with_status
would be able to know if some of them are already built and thus the "solution" would be obvious.
For context, it's that way currently so in case the cycle is already in the repo (the common case) it will fall back to the outdated package in the repo which usually works out if there is no API/ABI change.
I agree that autobuild could make smarter decisions if it had that info.
I'll try to move the same logic into autobuild, for starters.
i think this only happens to python extensions right?
i think this only happens to python extensions right?
No, any dependency cycle could result in this.
I've removed this in https://github.com/msys2/msys2-web/commit/3c41af895f1734 now, so cycles will result in autobuild getting stuck if all of the cycle is missing.
But better than randomly missing deps I guess.
To prevent things getting stuck I've now added a manual list for breaking cycles:
Not sure if this is the right approach.. we'll see. Other ideas welcome.
Ugh, it looks like maybe packages that are dependencies of -cc
wind up in cycles. I threw in + "mingw-w64-openssl": ["mingw-w64-libxml2"],
for the arm fork for now, but I think the libxml2 is coming in via cc, because it's only breaking on clang*.
Yeah.. Not really feasable...
There are 881 unique package pairs that are in cycles, so, no this doesn't scale.
Continuing in #52