From 34bedf93d5ea9a96363a2be1d8f527ede7e8ff69 Mon Sep 17 00:00:00 2001 From: Takeshi KOMIYA Date: Tue, 18 Jan 2022 02:11:19 +0900 Subject: [PATCH] Fix #10110: sphinx-build: Emit builder-finished before shutdown The error on the builder-finished event has been ignored for the calculation of the exit code. This emits the event earilier step to be calculated correctly. --- CHANGES | 3 +++ sphinx/application.py | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/CHANGES b/CHANGES index 2ce9ac36649..646687cdb65 100644 --- a/CHANGES +++ b/CHANGES @@ -16,6 +16,9 @@ Features added Bugs fixed ---------- +* #10110: sphinx-build: exit code is not changed when error is raised on + builder-finished event + Testing -------- diff --git a/sphinx/application.py b/sphinx/application.py index fd8b65b6ef6..ff9509a3369 100644 --- a/sphinx/application.py +++ b/sphinx/application.py @@ -336,6 +336,8 @@ def build(self, force_all: bool = False, filenames: List[str] = None) -> None: self.builder.compile_update_catalogs() self.builder.build_update() + self.events.emit('build-finished', None) + if self._warncount and self.keep_going: self.statuscode = 1 @@ -370,8 +372,6 @@ def build(self, force_all: bool = False, filenames: List[str] = None) -> None: os.unlink(envfile) self.events.emit('build-finished', err) raise - else: - self.events.emit('build-finished', None) self.builder.cleanup() # ---- general extensibility interface -------------------------------------