Keep preprocessors/backends execution order deterministic#2801
Conversation
|
Just for clarification, this doesn't appear to preserve the order in I'm wondering, if a renderer requires a certain order if it would make sense to instead have an explicit order like preprocessors do? |
Ah...😅 To be honest, I didn't really check the source code in the past until today I found
It can be good to have an explicit order like preprocessors do in the long run, but it's not necessary for |
There's a regression caused by recent refactor work, as it used to execute preprocessors/backends in a deterministic way, but now this is not the case, which causes trouble when some backends implicitly depend on the result from another backend and happen to work (e.g. mdbook-pdf). The root cause is that a HashMap has no order, so this PR switches this into `BTreeMap` instead. Signed-off-by: Hollow Man <hollowman@opensuse.org>
There's a regression caused by recent refactor work, as it used to execute preprocessors/backends in a deterministic way, but now this is not the case, which causes trouble when some backends implicitly depend on the result from another backend and happen to work (e.g. mdbook-pdf). The root cause is that a HashMap has no order, so this PR switches this into
BTreeMapinstead.