We manage our Confluence doc releases with Python scripts and this post briefly describes the release process.
First, a bit of background about our environment. The Abiquo cloud management platform is very large with over 75 different entities and 750 operations. And the main documentation site has over 1500 pages. In order to manage documentation versions and releases, ideally we would use a magnificent tool such as Scroll Versions. But for every version, Scroll Versions creates a copy of every single page, and we release major versions every few months, so the number of pages in our documentation site would soon be way out of control.
So in our homegrown release process we only copy pages that need changes. These are our draft pages for the new version. We add a suffix of vXXX to the draft page names, where XXX represents the product version number, for example, v600 would be for version 6.0.0.
Just before the release date, we use a script to create new "originals" for new pages that we have created as drafts with the vXXX suffix. And we make sure that the latest draft version of each page is always the vXXX page. The script that creates the new pages also creates a table of all the original pages and new pages in Wiki markup format so I can paste that into a wiki page, and click through to check the pages.
At release time, the release script copies the draft pages over the top of the original pages. And finally we run a cleanup script to move the draft pages to a staging area so we can easily delete them.