Description
Multiple time in the history of this cron, a sphinx-build is launched while the previous one is not complete.
Also we're only building a few versions, so it does not take too long, but we're adding languages, so it take more and more time.
I propose to convert this script to a daemon, while keeping the possibility to start it one shot as a script manually.
The feature I would like to see in the daemon:
- Availability to build old versions, less often than new versions, so they get the new version links in their menu and deprecation header more easily.
- Listen for notifications from github to start a build right after a push, either on translations or on cpython.
- Avoid building where it's not needed.
- Do not start a build when a build is already running.
- Implement a /health/ endpoint showing the overall health of the build system, it may even be integrated to display a green/red line on status.python.org maybe.
I don't think all those feature are impossible as a cron, typically I could implement "avoid building when it's not needed", just by skipping the call to sphinx-build if the previous git pull has pulled nothing. But overall, I think having it as a daemon could help implementing more things.
I'm opening the issue to gather feedback before starting to work on it.