Thanks for a great extension.
In many cases, I combine include and replacement as follow
upgrade.4.0-to-4.1.rst
.. |SRC_VERSION| replace:: 4.0
.. |NEW_VERSION| replace:: 4.1
.. include:: /upgrade/_common/upgrade-guide-v2-rpm.rst
upgrade.4.1-to-4.2.rst
.. |SRC_VERSION| replace:: 4.1
.. |NEW_VERSION| replace:: 4.2
.. include:: /upgrade/_common/upgrade-guide-v2-rpm.rst
sphinx-substitution-extensions is great because it allows me to replace in code blocks, but having all the replacement rules in conf.py does not allow it to ve use in the above example.