Tested now, and after two small fixes, it works. However, there are some pretty large logical gaps here:
The current code works for updating dependent pages that are referenced from the page of the original docset (i.e. the docset we actively intended to rebuild) by means of a \<ref/>.
The current code may remove (still-working) refs from dependent pages if the refs (or underlying documents) have been removed from the newest version of the product config. That may or may not be what you want, but that's probably not a huge issue.
It has a complete blind spot when it comes to removing historical refs that still exist in the rendered page but no longer in the product config, pointing at the original docset. I could imagine remediating that issue by creating another set of cache files, e.g. [cache dir]/product-dependencies/[product]/[docset].xml. These cache files would then include data like:
(Issue #246 features a different idea: keep configuration from the last build of a docset around for later re-use. But that seems like as bad option.)
The current code does not deal with the question of docsets that have been removed from the configuration entirely -- although at the very least those would be delisted from the homepage, and it is clear that they have to be cleaned up manually. (Although -- I guess we could use the above-demonstrated extra cache file to clean up such docsets, i.e. not mentioned in the product config + has a cache file = delete.)
~100% untested but I have high hopes~
Tested now, and after two small fixes, it works. However, there are some pretty large logical gaps here:
[cache dir]/product-dependencies/[product]/[docset].xml
. These cache files would then include data like:(Issue #246 features a different idea: keep configuration from the last build of a docset around for later re-use. But that seems like as bad option.)
not mentioned in the product config
+has a cache file
=delete
.)