Suppose that I am developing a package P. I want package to have a published package W as a weak dependency, but if the weak dependency is activated then I want another published package C to be automatically loaded.
I can make this happen by making C a strong dependency of P but that seems overkill.
What is the recommended route to make this happen?
It sounds a bit abstract, what you want to achieve.
But you could make the weak dependency “coupled”, that is the extension is only loaded if both W and C are loaded.
Example (sorry could only find my own one fast)
This is not 100% what you wrote, it is more like
W&C together are a weak dependency of P, i.e. loading both is necessary to “activate” the extended features.