Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move mod_translater_updater.py to another repo (minetest/modtools) #14495

Open
rubenwardy opened this issue Mar 26, 2024 · 4 comments
Open

Move mod_translater_updater.py to another repo (minetest/modtools) #14495

rubenwardy opened this issue Mar 26, 2024 · 4 comments
Labels
Supported by core dev Not on the roadmap, yet some core dev decided to take care of this PR

Comments

@rubenwardy
Copy link
Member

rubenwardy commented Mar 26, 2024

I don't think that mod_translater_updater should have been added to this repo. It's out of place and is causing issues here.

  • mod_translater_updater.py has had a few bugs teething issues, moving it to another repo would give space for unit tests. Distros could still install the mod tools script if they wished, in the same way they used to bundle minetest game
  • another repo would give space for adding multiple python files, which would allow code reuse with other scripts
  • another repo makes it much easier to get this script without having to download all of minetest
  • Issues would be filed on the script's repo, not the engine repo
  • Reviews could be done separately to the engine. There's no reason why we couldn't give a few interested modders write access here

This repo could be minetest/translation_tools or it could be a more general minetest/modtools, containing a single entry point that allowed running different scripts:

  • extracting translations
  • converting between po and tr
  • validating translation files
  • updating mod.conf files (from depends.txt for example)
  • finding deprecated methods etc using semgrep
@rubenwardy rubenwardy added @ Startup / Config / Util Maintenance Tasks to keep the codebase and related parts in order, including architectural improvements @ Meta Not strictly related to MT development labels Mar 26, 2024
@appgurueu appgurueu added Supported by core dev Not on the roadmap, yet some core dev decided to take care of this PR and removed @ Startup / Config / Util Maintenance Tasks to keep the codebase and related parts in order, including architectural improvements @ Meta Not strictly related to MT development labels Mar 26, 2024
@rubenwardy
Copy link
Member Author

cc/ @Wuzzy2

@rubenwardy
Copy link
Member Author

rubenwardy commented Mar 26, 2024

Another benefit is that ContentDB could depend on this modtools repo and use the .tr and .po parsers. I could even move the minetestcheck library from ContentDB to this repo. MinetestCheck creates a tree structure representing installed content and can check for obvious issues. ContentDB currently has its own .tr and .conf parsers

@Wuzzy2
Copy link
Contributor

Wuzzy2 commented Mar 26, 2024

As long this script remains under the minetest organization, I still take this as an absolute win.
It was unsustainable for me to keep maintaining the script alone in my private repo which is why I filed the initial PR in the first place.

But it IS important to me this script remains under the Minetest umbrella. Moving it to a random private repo again would mean its certain death. Because this script literally is only useful in combination with Minetest.

I'm still not too happy this script is being moved; I think this is an absolutely essential dev tool for Minetest if you care at all about translations. Without it, maintaining translations is just a nightmare.

On the other hand, having a separate repo also means a separate bugtracker, so the work can be more focused. Maybe the script can be moved back if all the bugs are fixed?

A compromise idea is to go forward with the new repo, but make it a Git submodule for convenience.

Also, I think a new repo should have more than just this script. Maybe make a repo for "essential game/mod developer tools that actually are really important but we don't want to deal with them in the main Minetest repo". ;-)

By the way, the REAL 1000 IQ long-term solution is to just switch to Gettext PO format because it just has the best toolchain ever. Period. Not using the PO format is the main reason why we have to deal with this mess in the first place. The TR format annoys me so much, I've even wrote a TR-to-PO (and back) converter just so I could upload Repixture/Glitch translations to Weblate: https://codeberg.org/Wuzzy/Minetest_Translation_Tools/src/branch/master/README_mtt_convert.md

(The Minetest Translation Tools repo above also has a TR syntax checker script but I was too afraid/lazy to propose it to Minetest at this stage. XD)

@appgurueu
Copy link
Contributor

appgurueu commented Mar 27, 2024

But it IS important to me this script remains under the Minetest umbrella.

I agree.

I'm still not too happy this script is being moved; I think this is an absolutely essential dev tool for Minetest if you care at all about translations. Without it, maintaining translations is just a nightmare.

Yes, but not every Minetest user is a modder, and not every modder cares about translations (and those that do may also have their own scripts or tools; Nodecore for example collects translatable strings at load time IIRC).

On the other hand, having a separate repo also means a separate bugtracker, so the work can be more focused.

Yes, that's definitely a plus. Said repo could also have additional maintainers - maintaining these utils requires effectively no C++ experience. Anyone with some Python knowledge can do it. Most modders could probably do it.

Maybe the script can be moved back if all the bugs are fixed?

There will always be new bugs or feature requests. I don't see a big benefit in moving a script back-and-forth.

A separate repo would probably also let us make the tool more accessible, for example by easily publishing it to pip. Users could also just clone / download the repo, allowing us to break up the single file into multiple smaller files.

Also, I think a new repo should have more than just this script. Maybe make a repo for "essential game/mod developer tools that actually are really important but we don't want to deal with them in the main Minetest repo". ;-)

As I understand it, that's what ruben is proposing?

By the way, the REAL 1000 IQ long-term solution is to just switch to Gettext PO format because it just has the best toolchain ever.

Good to know

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Supported by core dev Not on the roadmap, yet some core dev decided to take care of this PR
Projects
None yet
Development

No branches or pull requests

3 participants