CharaChorder / nexus

CharaChorder's logging and analysis desktop app, supporting Linux, Windows, and macOS.
GNU Affero General Public License v3.0
20 stars 7 forks source link

Running lupdate in dist.py is an anti-pattern #119

Open GetPsyched opened 11 months ago

GetPsyched commented 11 months ago

https://github.com/CharaChorder/nexus/blob/3e6d11fa2721219835556ec1eb2e5e7f1898e100/dist.py#L69-L72 This code essentially updates the i18n_en.ts file.

Since dist.py is meant to "setup" the project locally or to build it, it makes sense for it to generate files that may not exist in the repository (such as nexus/ui/BanlistDialog.py, etc.). However, it doesn't make sense to "update" existing files to match the code. This is because the code itself is expected to be up-to-date.

So, running pyside6-lupdate in dist.py either does nothing (if the files are up-to-date) or they update them to be accurate (this is bad since it means the file in repo is outdated)

Solution

I can think of 2 solutions:

  1. Don't track the translation files in Git and let them be generated by lupdate
  2. Don't update in dist.py, instead maybe do it exclusively in the pre-commit hook

Option 1 is less than ideal, since I suppose there are some manually defined things within those files.