The project page listed relationship of the latest "default" package (the one that is available from curse.com), so either latest release or latest beta if no release package exists. In short, you should :
1) edit the project default relationships so future packages will get it.
2) edit the latest release/beta relationships so the project immediately get it.
1) No need to optdep anything. Addons only check for LDB's presence/absence during VARIABLES_LOADED or PLAYER_LOGIN, which only fire after all non-LOD addons have loaded.
Actually some of my addons aren't using AceAddon nor listening to PLAYER_LOGIN or VARIABLES_LOADED, because they don't need to. In these case the DOs are just built at loading. I think I'll have to keep LDB embedded for these ones.
Let alone addons that have no use without LDB (Broker_*), I see two issues with your proposal Xinhuan:
1) LDB should be loaded before the addons could use it. Given that there exist several displays, should they be all listed in the OptDeps ? In other words, how do I ensure LDB is loaded before creating my dataobject ?
2) LibDBIcon allows a standalone use of LDB.
I admit that if the point 1 could be fixed, optional LDB support is an interesting idea.
Are you sure it doesn't simply hard-embed LDB as it did when you were pulling from github? If it doesn't, I would consider that a bug with the packager. No ToC should be treated the same as pulling off-site.