Skip to content

Improved version of workflow automation#39

Draft
IvanSavenko wants to merge 14 commits into
masterfrom
workflow-improvement
Draft

Improved version of workflow automation#39
IvanSavenko wants to merge 14 commits into
masterfrom
workflow-improvement

Conversation

@IvanSavenko

Copy link
Copy Markdown
Contributor

Changes:

  • mod names and descriptions can now be translated via Weblate. Workflow will now iterate all submods and embed their name/description into english.json of root mod. For mods using description.md, descriptions are now moved to separate, per-language file that can be translated via Weblate. On weblate push, workflow will propagate descriptions back to corresponding mod.json.
  • Workflow should now automatically detect new translations, meaning it is now possible for translators to add translations via Weblate web UI without figuring out how to add files and make a PR in Github
  • mod.json that is part of release now receives all fields from mod repository - screenshots, download size, download url, stars count. Meaning we can migrate this functionality from mod repository and keep it in place
  • (VCMI 1.8) support for tracking mod update date. Now generated mod.json contains date of last mod update, which launcher can use
  • Workflow should now support chain-loading mod dependencies - if mod depends on mod A, but mod A also depends on B, then workflow will automatically install both mod A and B
  • Directory tree traversal when locating submods is now unified, and should properly handle mixed case
  • Blocked concurrent CI runs so workflow runs from 2 consequent PR merges won't conflict with each other

TODO:

  • review migration of descriptions - make sure that existing descriptions won't be overwritten, and that propagation of description translated via weblate works as expected
  • consider migrating html-based descriptions to markdown

…ead code

Route all mod.json/english.json discovery through find_files_ci and translation
iteration through iter_language_files; add a single write_json; remove unused
imports (os, re, pprint) and a duplicated dict/list branch.
Fold export_mod_metadata, wire_translations, inject_mod_metadata and
inject_release_metadata (four confusably-named files) into one mod_metadata.py
exposing export / wire / inject-names / inject-release / selfcheck subcommands.
Removes 4x CLI boilerplate; the CI steps and add_translations call the module.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant