Paul Fultz II wrote:
bpm doesn't have a problem with cycles because it doesn't have a separate install step.
However, bpm can't remove or update a library either.
It can remove, actually. Updating is not required because it only targets a specific Boost release and does not version libraries separately. To remove a cycle without -f, you need to remove all libraries that participate in the cycle in a single step, otherwise it complains about not being able to remove a library that is still being depended on.
cget can auto install the dependecies as well.
Yes, that's what I was asking.
Currently, it grabs dependencies listed in a requirements.txt file, which it will do a `cget install` on everything listed there.
So you depend on the library maintaining up-to-date dependency information in requirements.txt? Is this file cget-specific, or is it some existing convention?
Test dependencies can be distinguished as well, so they are only installed when doing something like `cget install --test boostorg/config`.
Yes, and then you need to decide f.ex. when removing Core do you allow it while Config is still there, because this would break Config's tests but they may not be needed anymore. The alternative is to track Config and "Config's tests" as two separate modules which immediately solves the cycle but has other drawbacks.