Posts tagged builds

Override the build process completely with build.commands

We are happy to announce a new beta feature that allows users to override the Read the Docs build process completely. We previously talked about executing custom commands in-between the Read the Docs build process. That approach is not sufficient for projects with a heavily customized build process, or those that want to use a different documentation tool like Pelican, Docsify and Docusaurus for their documentation. Some of which were not able to use our platform at all. Until now! We have good news for them!

The new configuration file option build.commands allows projects to only execute exactly the commands they want. No more. No less. This means that Read the Docs won’t execute any of the default commands behind the scenes. You have 100% control over the build process.

Read more ...


Auto-canceling builds when pushing to the same branch twice

Read the Docs allows you to keep your documentation up to date in a simple way, by triggering a new build each time developers push a git repository. Depending on your workflow, there could be situations where multiple pushes are done during a short time window. This causes a situation where you have to wait a long time for a build that will be immediately overwritten.

To avoid waiting for those builds to be executed, we implemented a new feature to cancel these useless builds and only execute the latest one. This considerably improves the user experience and also reduces resource costs and energy waste.

Read more ...


Announcing user-defined build jobs

We are happy to announce a new feature to specify user-defined build jobs on Read the Docs. If your project requires custom commands to be run in the middle of the build process, they can now be executed with the new config key build.jobs. This opens up a complete world full of new and exciting possibilities to our users.

If your project has ever required a custom command to run during the build process, you probably wished you could easily specify this. You might have used a hacky solution inside your Sphinx’s conf.py file, but this was not a great solution to this problem.

Read more ...