From 19db4cb637e59d14e2c6f84efd26ed8c8f1ea423 Mon Sep 17 00:00:00 2001 From: Jonathan Miller <1+jmiller@noreply.git.mokoconsulting.tech> Date: Thu, 4 Jun 2026 15:03:47 +0000 Subject: [PATCH 1/3] chore: sync updates.xml 01.10.00 from main [skip ci] --- updates.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/updates.xml b/updates.xml index 80cd2ac..cba4424 100644 --- a/updates.xml +++ b/updates.xml @@ -1,7 +1,7 @@ @@ -104,13 +104,13 @@ pkg_mokojoomhero package site - 01.09.00 + 01.10.00 2026-06-04 https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/tag/stable - https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/download/stable/pkg_mokojoomhero-01.09.00.zip + https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/download/stable/pkg_mokojoomhero-01.10.00.zip - fd8235cee1a6f08a7821ccae95776f2f57e32ccaad5efe64ef8b377dd7ec47df + 740e19ad06e5cef442880aa621d58f4310859d1109142da65895bd9dec324834 stable https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/raw/branch/main/CHANGELOG.md Moko Consulting -- 2.52.0 From 10412c1120b9def56a5f2a3fc59a538f08e39f92 Mon Sep 17 00:00:00 2001 From: Jonathan Miller <1+jmiller@noreply.git.mokoconsulting.tech> Date: Thu, 4 Jun 2026 15:13:06 +0000 Subject: [PATCH 2/3] chore: sync .mokogitea/workflows/pr-check.yml from moko-platform [skip ci] --- .mokogitea/workflows/pr-check.yml | 95 +++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/.mokogitea/workflows/pr-check.yml b/.mokogitea/workflows/pr-check.yml index 0ac0ef1..9d0cb35 100644 --- a/.mokogitea/workflows/pr-check.yml +++ b/.mokogitea/workflows/pr-check.yml @@ -196,6 +196,101 @@ jobs: ;; esac + - name: Validate Joomla language files + if: steps.platform.outputs.platform == 'joomla' + run: | + ERRORS=0 + WARNINGS=0 + + # Find all .ini language files + INI_FILES=$(find . -path "*/language/*/*.ini" -not -path "./.git/*" 2>/dev/null) + if [ -z "$INI_FILES" ]; then + echo "No .ini language files found — skipping" + exit 0 + fi + + echo "Found $(echo "$INI_FILES" | wc -l) language file(s)" + + for FILE in $INI_FILES; do + FNAME=$(basename "$FILE") + LINENUM=0 + SEEN_KEYS="" + + while IFS= read -r line || [ -n "$line" ]; do + LINENUM=$((LINENUM + 1)) + + # Skip empty lines and comments + [ -z "$line" ] && continue + echo "$line" | grep -qE '^\s*;' && continue + echo "$line" | grep -qE '^\s*$' && continue + + # Must match KEY="VALUE" format + if ! echo "$line" | grep -qE '^[A-Z_][A-Z0-9_]*=".*"$'; then + echo "::error file=${FILE},line=${LINENUM}::Malformed line: ${line}" + ERRORS=$((ERRORS + 1)) + continue + fi + + # Extract key and check for duplicates + KEY=$(echo "$line" | sed 's/=.*//') + if echo "$SEEN_KEYS" | grep -qx "$KEY"; then + echo "::error file=${FILE},line=${LINENUM}::Duplicate key: ${KEY}" + ERRORS=$((ERRORS + 1)) + fi + SEEN_KEYS="${SEEN_KEYS} + ${KEY}" + done < "$FILE" + + echo " ${FILE}: checked ${LINENUM} lines" + done + + # Cross-check en-GB vs en-US key consistency + GB_DIR=$(find . -path "*/language/en-GB" -type d -not -path "./.git/*" 2>/dev/null | head -1) + US_DIR=$(find . -path "*/language/en-US" -type d -not -path "./.git/*" 2>/dev/null | head -1) + + if [ -n "$GB_DIR" ] && [ -n "$US_DIR" ]; then + for GB_FILE in "$GB_DIR"/*.ini; do + [ ! -f "$GB_FILE" ] && continue + FNAME=$(basename "$GB_FILE") + US_FILE="$US_DIR/$FNAME" + [ ! -f "$US_FILE" ] && continue + + GB_KEYS=$(grep -oP '^[A-Z_][A-Z0-9_]*(?==)' "$GB_FILE" 2>/dev/null | sort) + US_KEYS=$(grep -oP '^[A-Z_][A-Z0-9_]*(?==)' "$US_FILE" 2>/dev/null | sort) + + # Keys in en-GB but not en-US + MISSING_US=$(comm -23 <(echo "$GB_KEYS") <(echo "$US_KEYS")) + if [ -n "$MISSING_US" ]; then + echo "::warning::Keys in en-GB/$FNAME but missing from en-US/$FNAME:" + echo "$MISSING_US" | while read -r k; do echo " - $k"; done + WARNINGS=$((WARNINGS + 1)) + fi + + # Keys in en-US but not en-GB + MISSING_GB=$(comm -13 <(echo "$GB_KEYS") <(echo "$US_KEYS")) + if [ -n "$MISSING_GB" ]; then + echo "::warning::Keys in en-US/$FNAME but missing from en-GB/$FNAME:" + echo "$MISSING_GB" | while read -r k; do echo " - $k"; done + WARNINGS=$((WARNINGS + 1)) + fi + done + fi + + { + echo "### Language File Validation" + echo "| Metric | Count |" + echo "|---|---|" + echo "| Files checked | $(echo "$INI_FILES" | wc -l) |" + echo "| Errors | ${ERRORS} |" + echo "| Warnings | ${WARNINGS} |" + } >> $GITHUB_STEP_SUMMARY + + if [ "$ERRORS" -gt 0 ]; then + echo "::error::Language validation failed with ${ERRORS} error(s)" + exit 1 + fi + echo "Language files: OK (${WARNINGS} warning(s))" + - name: Check changelog has unreleased entry run: | if [ ! -f "CHANGELOG.md" ]; then -- 2.52.0 From 95319c0513ad9365a5709aad515a9d54e86af55d Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Thu, 4 Jun 2026 10:13:05 -0500 Subject: [PATCH 3/3] =?UTF-8?q?chore:=20clean=20up=20updates.xml=20?= =?UTF-8?q?=E2=80=94=20remove=20stale=20entries,=20keep=20stable=20+=20leg?= =?UTF-8?q?acy=20migration?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove old dev/alpha/beta/rc entries. Keep current stable 01.10.00 package entry and legacy mod_mokojoomhero entry pointing to the package for migration from old standalone module installs. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) --- updates.xml | 124 +++++++++++----------------------------------------- 1 file changed, 26 insertions(+), 98 deletions(-) diff --git a/updates.xml b/updates.xml index cba4424..d7f3abe 100644 --- a/updates.xml +++ b/updates.xml @@ -1,120 +1,48 @@ - + - - Package - MokoJoomHero - Package - MokoJoomHero development build. - pkg_mokojoomhero - package - 01.07.00-dev - 2026-06-02 - https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/tag/development - - https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/download/development/pkg_mokojoomhero-01.07.00-dev.zip - - - dev - Moko Consulting - https://mokoconsulting.tech - - - - Module - MokoJoomHero - Module - MokoJoomHero dev build. - mod_mokojoomhero - module - site - 01.07.00-dev - 2026-05-30 - https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/tag/development - - https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/download/development/mod_mokojoomhero-01.07.00-dev.zip - - 56ae99ad18e12ee52c60298adef5983aef788fe867d3e3a36957b314ad7eb386 - dev - https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/raw/branch/main/CHANGELOG.md - Moko Consulting - https://mokoconsulting.tech - - - - Module - MokoJoomHero - Module - MokoJoomHero alpha build. - mod_mokojoomhero - module - site - 01.07.00-alpha - 2026-05-30 - https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/tag/alpha - - https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/download/alpha/mod_mokojoomhero-01.07.00-alpha.zip - - 56ae99ad18e12ee52c60298adef5983aef788fe867d3e3a36957b314ad7eb386 - alpha - https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/raw/branch/main/CHANGELOG.md - Moko Consulting - https://mokoconsulting.tech - - - - Module - MokoJoomHero - Module - MokoJoomHero beta build. - mod_mokojoomhero - module - site - 01.07.00-beta - 2026-05-30 - https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/tag/beta - - https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/download/beta/mod_mokojoomhero-01.07.00-beta.zip - - 56ae99ad18e12ee52c60298adef5983aef788fe867d3e3a36957b314ad7eb386 - beta - https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/raw/branch/main/CHANGELOG.md - Moko Consulting - https://mokoconsulting.tech - - - - Package - MokoJoomHero - Package - MokoJoomHero rc build. - pkg_mokojoomhero - package - site - 01.08.00-rc - 2026-06-04 - https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/tag/release-candidate - - https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/download/release-candidate/pkg_mokojoomhero-01.08.00-rc.zip - - 2667e2c0c9b610288232dbb2d9d9ce7aba0c58174b32eb023a4349905cee635a - rc - https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/raw/branch/main/CHANGELOG.md - Moko Consulting - https://mokoconsulting.tech - - + Package - MokoJoomHero Package - MokoJoomHero stable build. pkg_mokojoomhero package - site 01.10.00 2026-06-04 - https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/tag/stable + https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/tag/stable - https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/download/stable/pkg_mokojoomhero-01.10.00.zip + https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/download/stable/pkg_mokojoomhero-01.10.00.zip 740e19ad06e5cef442880aa621d58f4310859d1109142da65895bd9dec324834 stable https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/raw/branch/main/CHANGELOG.md Moko Consulting https://mokoconsulting.tech - + + + + + + Module - MokoJoomHero + MokoJoomHero has been restructured as a package. Install pkg_mokojoomhero for the latest version. + mod_mokojoomhero + module + site + 01.10.00 + 2026-06-04 + https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/tag/stable + + https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/releases/download/stable/pkg_mokojoomhero-01.10.00.zip + + 740e19ad06e5cef442880aa621d58f4310859d1109142da65895bd9dec324834 + stable + https://git.mokoconsulting.tech/MokoConsulting/MokoJoomHero/raw/branch/main/CHANGELOG.md + Moko Consulting + https://mokoconsulting.tech + -- 2.52.0