As *.mo
files are binaries compiled from *.po
files, general CVS ettiquette is NOT to keep them but ignore them. Instead, most of the django ecosystem and django itself deliberately version these artifacts.
I can’t find former discussions about this workflow and I don’t understand the rationale for it. It causes recurring issues where *.mo
and *.po
files fall out of sync; git or any other CVS are unable to merge *.mo
files; and they are essentially superfluous to the CVS history of a django project.
I understand the value of packaging *.mo
files in both the source and wheel distributions, so that people making a django installation are not required to install the gettext
development toolchain. But each package should achieve that by issuing a compilemessages
command while building the distributed artifacts. Why is this not the most common approach in the django ecosystem?