Cease and desist versioning of compiled *.mo files

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?

2 Likes

I completely agree with you: #23321 (Remove .mo files from the Django Git repository) – Django

Please comment on the ticket to voice your support!

2 Likes