Subject: bug#62762: 'make' often errors with "Org version mismatch" after pulling a new version of the code

From: Eli Zaretskii <[email-masked]>
Date: Fri, 05 May 2023 09:46:50 +0300

> Date: Fri, 5 May 2023 12:27:25 +0700
> From: Max Nikulin <[email-masked]>
> Cc: Ihor Radchenko <[email-masked]>, Eli Zaretskii <[email-masked]>,
>  [email-masked], [email-masked], [email-masked],
>  Alan Mackenzie <[email-masked]>
> 
> I have realized that neither `load-prefer-newer' not checking hash of 
> the source .el file can help per se when an .elc file becomes stale due 
> to update of a macro in a require'd file.

Yes.

> The robust way is to define compilation order through dependencies, 
> preferably autogenerated ones).

This doesn't work in Emacs, in general, due to circular dependencies.

> An alternative is to hope that usually it does not hurt and you are
> ready to remove .elc files (e.g. by make bootstrap) when you faced
> an apparent error or just suspect mixed version compilation as the
> cause of noticed strange behavior (I named this broken incremental
> builds).

That's what we have been doing for ages, and it generally works well.