diff --git a/.github/workflows/auto-assign.yml b/.github/workflows/auto-assign.yml index 3752b662..8341f246 100644 --- a/.github/workflows/auto-assign.yml +++ b/.github/workflows/auto-assign.yml @@ -6,7 +6,7 @@ # INGROUP: MokoStandards.Workflows.Shared # REPO: https://github.com/mokoconsulting-tech/MokoStandards # PATH: /.github/workflows/auto-assign.yml -# VERSION: 04.05.11 +# VERSION: 02.01.08 # BRIEF: Auto-assign jmiller-moko to unassigned issues and PRs every 15 minutes name: Auto-Assign Issues & PRs diff --git a/.github/workflows/auto-dev-issue.yml b/.github/workflows/auto-dev-issue.yml index 37c66f21..e8516eb5 100644 --- a/.github/workflows/auto-dev-issue.yml +++ b/.github/workflows/auto-dev-issue.yml @@ -9,7 +9,7 @@ # INGROUP: MokoStandards.Automation # REPO: https://github.com/mokoconsulting-tech/MokoStandards # PATH: /templates/workflows/shared/auto-dev-issue.yml.template -# VERSION: 04.05.13 +# VERSION: 02.01.08 # BRIEF: Auto-create tracking issue with sub-issues for dev/rc branch workflow # NOTE: Synced via bulk-repo-sync to .github/workflows/auto-dev-issue.yml in all governed repos. diff --git a/.github/workflows/auto-release.yml b/.github/workflows/auto-release.yml index e545ce67..a2f92099 100644 --- a/.github/workflows/auto-release.yml +++ b/.github/workflows/auto-release.yml @@ -8,28 +8,27 @@ # REPO: https://github.com/mokoconsulting-tech/MokoStandards # PATH: /templates/workflows/shared/auto-release.yml.template # VERSION: 04.05.13 -# BRIEF: Unified build & release pipeline — version branch, platform version, badges, tag, release +# BRIEF: Generic build & release pipeline — version branch, platform version, badges, tag, release # -# ╔════════════════════════════════════════════════════════════════════════╗ -# ║ BUILD & RELEASE PIPELINE ║ -# ╠════════════════════════════════════════════════════════════════════════╣ -# ║ ║ -# ║ Triggers on push to main (skips bot commits + [skip ci]): ║ -# ║ ║ -# ║ Every push: ║ -# ║ 1. Read version from README.md ║ -# ║ 3. Set platform version (Dolibarr $this->version, Joomla )║ -# ║ 4. Update [VERSION: XX.YY.ZZ] badges in markdown files ║ -# ║ 5. Write update.txt / update.xml ║ -# ║ 6. Create git tag vXX.YY.ZZ ║ -# ║ 7a. Patch: update existing GitHub Release for this minor ║ -# ║ ║ -# ║ Every version change: archives main → version/XX.YY branch ║ -# ║ Patch 00 = development (no release). First release = patch 01. ║ -# ║ First release only (patch == 01): ║ -# ║ 7b. Create new GitHub Release ║ -# ║ ║ -# ╚════════════════════════════════════════════════════════════════════════╝ +# +========================================================================+ +# | BUILD & RELEASE PIPELINE | +# +========================================================================+ +# | | +# | Triggers on push to main (skips bot commits + [skip ci]): | +# | | +# | Every push: | +# | 1. Read version from README.md | +# | 3. Set platform version | +# | 4. Update [VERSION: XX.YY.ZZ] badges in markdown files | +# | 6. Create git tag vXX.YY.ZZ | +# | 7a. Patch: update existing GitHub Release for this minor | +# | | +# | Every version change: archives main -> version/XX.YY branch | +# | Patch 00 = development (no release). First release = patch 01. | +# | First release only (patch == 01): | +# | 7b. Create new GitHub Release | +# | | +# +========================================================================+ name: Build & Release @@ -71,13 +70,13 @@ jobs: cd /tmp/mokostandards composer install --no-dev --no-interaction --quiet - # ── STEP 1: Read version ─────────────────────────────────────────── + # -- STEP 1: Read version ----------------------------------------------- - name: "Step 1: Read version from README.md" id: version run: | VERSION=$(php /tmp/mokostandards/api/cli/version_read.php --path . 2>/dev/null) if [ -z "$VERSION" ]; then - echo "⏭️ No VERSION in README.md — skipping release" + echo "No VERSION in README.md — skipping release" echo "skip=true" >> "$GITHUB_OUTPUT" exit 0 fi @@ -92,15 +91,15 @@ jobs: if [ "$PATCH" = "00" ]; then echo "skip=true" >> "$GITHUB_OUTPUT" echo "is_minor=false" >> "$GITHUB_OUTPUT" - echo "⏭️ Version: $VERSION (patch 00 = development — skipping release)" + echo "Version: $VERSION (patch 00 = development — skipping release)" else echo "skip=false" >> "$GITHUB_OUTPUT" if [ "$PATCH" = "01" ]; then echo "is_minor=true" >> "$GITHUB_OUTPUT" - echo "✅ Version: $VERSION (first release — full pipeline)" + echo "Version: $VERSION (first release — full pipeline)" else echo "is_minor=false" >> "$GITHUB_OUTPUT" - echo "✅ Version: $VERSION (patch — platform version + badges only)" + echo "Version: $VERSION (patch — platform version + badges only)" fi fi @@ -126,85 +125,65 @@ jobs: echo "already_released=false" >> "$GITHUB_OUTPUT" fi - # ── SANITY CHECKS ──────────────────────────────────────────────────── - - name: "Sanity: Platform-specific validation" + # -- SANITY CHECKS ------------------------------------------------------- + - name: "Sanity: Pre-release validation" if: >- steps.version.outputs.skip != 'true' && steps.check.outputs.already_released != 'true' run: | VERSION="${{ steps.version.outputs.version }}" - PLATFORM=$(php /tmp/mokostandards/api/cli/platform_detect.php --path . 2>/dev/null) ERRORS=0 - echo "## 🔍 Pre-Release Sanity Checks" >> $GITHUB_STEP_SUMMARY - echo "" >> $GITHUB_STEP_SUMMARY - echo "Platform: \`${PLATFORM}\`" >> $GITHUB_STEP_SUMMARY + echo "## Pre-Release Sanity Checks" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY + # -- Version drift check (must pass before release) -------- + README_VER=$(grep -oP 'VERSION:\s*\K[\d.]+' README.md 2>/dev/null | head -1) + if [ "$README_VER" != "$VERSION" ]; then + echo "- Version drift: README says \`${README_VER}\` but releasing \`${VERSION}\`" >> $GITHUB_STEP_SUMMARY + ERRORS=$((ERRORS+1)) + else + echo "- Version consistent: \`${VERSION}\`" >> $GITHUB_STEP_SUMMARY + fi + + # Check CHANGELOG version matches + CL_VER=$(grep -oP 'VERSION:\s*\K[\d.]+' CHANGELOG.md 2>/dev/null | head -1) + if [ -n "$CL_VER" ] && [ "$CL_VER" != "$VERSION" ]; then + echo "- CHANGELOG drift: \`${CL_VER}\` != \`${VERSION}\`" >> $GITHUB_STEP_SUMMARY + ERRORS=$((ERRORS+1)) + fi + + # Check composer.json version if present + if [ -f "composer.json" ]; then + COMP_VER=$(grep -oP '"version"\s*:\s*"\K[^"]+' composer.json 2>/dev/null | head -1) + if [ -n "$COMP_VER" ] && [ "$COMP_VER" != "$VERSION" ]; then + echo "- composer.json drift: \`${COMP_VER}\` != \`${VERSION}\`" >> $GITHUB_STEP_SUMMARY + ERRORS=$((ERRORS+1)) + fi + fi + # Common checks if [ ! -f "LICENSE" ]; then - echo "❌ Missing LICENSE file" >> $GITHUB_STEP_SUMMARY + echo "- Missing LICENSE file" >> $GITHUB_STEP_SUMMARY ERRORS=$((ERRORS+1)) else - echo "✅ LICENSE" >> $GITHUB_STEP_SUMMARY + echo "- LICENSE present" >> $GITHUB_STEP_SUMMARY fi - if [ ! -d "src" ]; then - echo "⚠️ No src/ directory" >> $GITHUB_STEP_SUMMARY + if [ ! -d "src" ] && [ ! -d "htdocs" ]; then + echo "- Warning: No src/ or htdocs/ directory" >> $GITHUB_STEP_SUMMARY else - echo "✅ src/ directory" >> $GITHUB_STEP_SUMMARY - fi - - # Dolibarr-specific checks - if [ "$PLATFORM" = "crm-module" ]; then - MOD_FILE=$(find src htdocs -path "*/core/modules/mod*.class.php" -print -quit 2>/dev/null) - if [ -z "$MOD_FILE" ]; then - echo "❌ No module descriptor (src/core/modules/mod*.class.php)" >> $GITHUB_STEP_SUMMARY - ERRORS=$((ERRORS+1)) - else - echo "✅ Module descriptor: \`${MOD_FILE}\`" >> $GITHUB_STEP_SUMMARY - - # Check module number - NUMERO=$(grep -oP '\$this->numero\s*=\s*\K\d+' "$MOD_FILE" 2>/dev/null || echo "0") - if [ "$NUMERO" = "0" ] || [ -z "$NUMERO" ]; then - echo "❌ Module number (\$this->numero) is 0 or not set" >> $GITHUB_STEP_SUMMARY - ERRORS=$((ERRORS+1)) - else - echo "✅ Module number: ${NUMERO}" >> $GITHUB_STEP_SUMMARY - fi - - # Check url_last_version exists - if grep -q 'url_last_version' "$MOD_FILE" 2>/dev/null; then - echo "✅ url_last_version is set" >> $GITHUB_STEP_SUMMARY - else - echo "⚠️ url_last_version not set — update checks won't work" >> $GITHUB_STEP_SUMMARY - fi - fi - fi - - # Joomla-specific checks - if [ "$PLATFORM" = "waas-component" ]; then - MANIFEST=$(find . -maxdepth 2 -name "*.xml" -exec grep -l '/dev/null | head -1) - if [ -z "$MANIFEST" ]; then - echo "❌ No Joomla XML manifest found" >> $GITHUB_STEP_SUMMARY - ERRORS=$((ERRORS+1)) - else - echo "✅ Manifest: \`${MANIFEST}\`" >> $GITHUB_STEP_SUMMARY - - # Check extension type - TYPE=$(grep -oP ']+type="\K[^"]+' "$MANIFEST" 2>/dev/null) - echo "✅ Extension type: ${TYPE:-unknown}" >> $GITHUB_STEP_SUMMARY - fi + echo "- Source directory present" >> $GITHUB_STEP_SUMMARY fi echo "" >> $GITHUB_STEP_SUMMARY if [ "$ERRORS" -gt 0 ]; then - echo "**❌ ${ERRORS} error(s) — release may be incomplete**" >> $GITHUB_STEP_SUMMARY + echo "**${ERRORS} error(s) — release may be incomplete**" >> $GITHUB_STEP_SUMMARY else - echo "**✅ All sanity checks passed**" >> $GITHUB_STEP_SUMMARY + echo "**All sanity checks passed**" >> $GITHUB_STEP_SUMMARY fi - # ── STEP 2: Create or update version/XX.YY archive branch ──────────── + # -- STEP 2: Create or update version/XX.YY archive branch --------------- # Always runs — every version change on main archives to version/XX.YY - name: "Step 2: Version archive branch" if: steps.check.outputs.already_released != 'true' @@ -217,14 +196,14 @@ jobs: # Check if branch exists if git ls-remote --heads origin "$BRANCH" | grep -q "$BRANCH"; then git push origin HEAD:"$BRANCH" --force - echo "📝 Updated archive branch: ${BRANCH} (patch ${PATCH_NUM})" >> $GITHUB_STEP_SUMMARY + echo "Updated archive branch: ${BRANCH} (patch ${PATCH_NUM})" >> $GITHUB_STEP_SUMMARY else git checkout -b "$BRANCH" 2>/dev/null || git checkout "$BRANCH" git push origin "$BRANCH" --force - echo "🌿 Created archive branch: ${BRANCH}" >> $GITHUB_STEP_SUMMARY + echo "Created archive branch: ${BRANCH}" >> $GITHUB_STEP_SUMMARY fi - # ── STEP 3: Set platform version ─────────────────────────────────── + # -- STEP 3: Set platform version ---------------------------------------- - name: "Step 3: Set platform version" if: >- steps.version.outputs.skip != 'true' && @@ -234,7 +213,7 @@ jobs: php /tmp/mokostandards/api/cli/version_set_platform.php \ --path . --version "$VERSION" --branch main - # ── STEP 4: Update version badges ────────────────────────────────── + # -- STEP 4: Update version badges ---------------------------------------- - name: "Step 4: Update version badges" if: >- steps.version.outputs.skip != 'true' && @@ -247,107 +226,14 @@ jobs: fi done - # ── STEP 5: Write update files (Dolibarr: update.txt / Joomla: update.xml) - - name: "Step 5: Write update files" - if: >- - steps.version.outputs.skip != 'true' && - steps.check.outputs.already_released != 'true' - run: | - PLATFORM=$(php /tmp/mokostandards/api/cli/platform_detect.php --path . 2>/dev/null) - VERSION="${{ steps.version.outputs.version }}" - REPO="${{ github.repository }}" - - if [ "$PLATFORM" = "crm-module" ]; then - printf '%s' "$VERSION" > update.txt - echo "📦 update.txt: ${VERSION}" >> $GITHUB_STEP_SUMMARY - fi - - if [ "$PLATFORM" = "waas-component" ]; then - # ── Parse extension metadata from XML manifest ────────────── - MANIFEST=$(find . -maxdepth 2 -name "*.xml" -exec grep -l '/dev/null | head -1) - if [ -z "$MANIFEST" ]; then - echo "⚠️ No Joomla XML manifest found — skipping update.xml" >> $GITHUB_STEP_SUMMARY - else - EXT_NAME=$(grep -oP '\K[^<]+' "$MANIFEST" 2>/dev/null | head -1 || echo "${{ github.event.repository.name }}") - EXT_TYPE=$(grep -oP ']+type="\K[^"]+' "$MANIFEST" 2>/dev/null || echo "component") - EXT_ELEMENT=$(grep -oP '\K[^<]+' "$MANIFEST" 2>/dev/null | head -1 || echo "") - EXT_CLIENT=$(grep -oP ']+client="\K[^"]+' "$MANIFEST" 2>/dev/null || echo "") - EXT_FOLDER=$(grep -oP ']+group="\K[^"]+' "$MANIFEST" 2>/dev/null || echo "") - TARGET_PLATFORM=$(grep -oP '' "$MANIFEST" 2>/dev/null | head -1 || echo "") - PHP_MINIMUM=$(grep -oP '\K[^<]+' "$MANIFEST" 2>/dev/null | head -1 || echo "") - - # Derive element from manifest filename if not in XML - if [ -z "$EXT_ELEMENT" ]; then - EXT_ELEMENT=$(basename "$MANIFEST" .xml) - fi - - # Build client tag: plugins and frontend modules need site - CLIENT_TAG="" - if [ -n "$EXT_CLIENT" ]; then - CLIENT_TAG="${EXT_CLIENT}" - elif [ "$EXT_TYPE" = "module" ] || [ "$EXT_TYPE" = "plugin" ]; then - CLIENT_TAG="site" - fi - - # Build folder tag for plugins (required for Joomla to match the update) - FOLDER_TAG="" - if [ -n "$EXT_FOLDER" ] && [ "$EXT_TYPE" = "plugin" ]; then - FOLDER_TAG="${EXT_FOLDER}" - fi - - # Build targetplatform (fallback to Joomla 5+6 if not in manifest) - if [ -z "$TARGET_PLATFORM" ]; then - TARGET_PLATFORM=$(printf '' "/") - fi - - # Build php_minimum tag - PHP_TAG="" - if [ -n "$PHP_MINIMUM" ]; then - PHP_TAG="${PHP_MINIMUM}" - fi - - DOWNLOAD_URL="https://github.com/${REPO}/releases/download/v${VERSION}/${EXT_ELEMENT}-${VERSION}.zip" - INFO_URL="https://github.com/${REPO}/releases/tag/v${VERSION}" - - # ── Write update.xml (stable release) ─────────────────────── - { - printf '%s\n' '' - printf '%s\n' '' - printf '%s\n' ' ' - printf '%s\n' " ${EXT_NAME}" - printf '%s\n' " ${EXT_NAME} update" - printf '%s\n' " ${EXT_ELEMENT}" - printf '%s\n' " ${EXT_TYPE}" - printf '%s\n' " ${VERSION}" - [ -n "$CLIENT_TAG" ] && printf '%s\n' " ${CLIENT_TAG}" - [ -n "$FOLDER_TAG" ] && printf '%s\n' " ${FOLDER_TAG}" - printf '%s\n' ' ' - printf '%s\n' ' stable' - printf '%s\n' ' ' - printf '%s\n' " ${INFO_URL}" - printf '%s\n' ' ' - printf '%s\n' " ${DOWNLOAD_URL}" - printf '%s\n' ' ' - printf '%s\n' " ${TARGET_PLATFORM}" - [ -n "$PHP_TAG" ] && printf '%s\n' " ${PHP_TAG}" - printf '%s\n' ' Moko Consulting' - printf '%s\n' ' https://mokoconsulting.tech' - printf '%s\n' ' ' - printf '%s\n' '' - } > update.xml - - echo "📦 update.xml: ${VERSION} (stable) — ${EXT_TYPE}/${EXT_ELEMENT}" >> $GITHUB_STEP_SUMMARY - fi - fi - - # ── Commit all changes ───────────────────────────────────────────── + # -- Commit all changes --------------------------------------------------- - name: Commit release changes if: >- steps.version.outputs.skip != 'true' && steps.check.outputs.already_released != 'true' run: | if git diff --quiet && git diff --cached --quiet; then - echo "ℹ️ No changes to commit" + echo "No changes to commit" exit 0 fi VERSION="${{ steps.version.outputs.version }}" @@ -358,18 +244,19 @@ jobs: --author="github-actions[bot] " git push - # ── STEP 6: Create tag ───────────────────────────────────────────── + # -- STEP 6: Create tag --------------------------------------------------- - name: "Step 6: Create git tag" if: >- steps.version.outputs.skip != 'true' && - steps.check.outputs.tag_exists != 'true' + steps.check.outputs.tag_exists != 'true' && + steps.version.outputs.is_minor == 'true' run: | TAG="${{ steps.version.outputs.tag }}" git tag "$TAG" git push origin "$TAG" - echo "🏷️ Tag: ${TAG}" >> $GITHUB_STEP_SUMMARY + echo "Tag: ${TAG}" >> $GITHUB_STEP_SUMMARY - # ── STEP 7: Create or update GitHub Release ────────────────────────── + # -- STEP 7: Create or update GitHub Release ------------------------------ - name: "Step 7: GitHub Release" if: >- steps.version.outputs.skip != 'true' && @@ -396,7 +283,7 @@ jobs: --title "${VERSION}" \ --notes-file /tmp/release_notes.md \ --target "$BRANCH" - echo "🚀 Release created: ${VERSION}" >> $GITHUB_STEP_SUMMARY + echo "Release created: ${VERSION}" >> $GITHUB_STEP_SUMMARY else # Patch release: update the existing minor release with new tag # Find the latest release for this minor version @@ -416,29 +303,29 @@ jobs: gh release edit "$MINOR_TAG" \ --title "${MINOR_BASE} (latest: ${VERSION})" \ --notes-file /tmp/updated_notes.md - echo "📝 Release updated: ${MINOR_BASE} → patch ${VERSION}" >> $GITHUB_STEP_SUMMARY + echo "Release updated: ${MINOR_BASE} -> patch ${VERSION}" >> $GITHUB_STEP_SUMMARY else # No existing minor release found — create one for this patch gh release create "$TAG" \ --title "${VERSION}" \ --notes-file /tmp/release_notes.md - echo "🚀 Release created: ${VERSION} (no minor release found)" >> $GITHUB_STEP_SUMMARY + echo "Release created: ${VERSION} (no minor release found)" >> $GITHUB_STEP_SUMMARY fi fi - # ── Summary ──────────────────────────────────────────────────────── + # -- Summary -------------------------------------------------------------- - name: Pipeline Summary if: always() run: | VERSION="${{ steps.version.outputs.version }}" if [ "${{ steps.version.outputs.skip }}" = "true" ]; then - echo "## ⏭️ Release Skipped" >> $GITHUB_STEP_SUMMARY + echo "## Release Skipped" >> $GITHUB_STEP_SUMMARY echo "No VERSION in README.md" >> $GITHUB_STEP_SUMMARY elif [ "${{ steps.check.outputs.already_released }}" = "true" ]; then - echo "## ℹ️ Already Released — ${VERSION}" >> $GITHUB_STEP_SUMMARY + echo "## Already Released — ${VERSION}" >> $GITHUB_STEP_SUMMARY else echo "" >> $GITHUB_STEP_SUMMARY - echo "## ✅ Build & Release Complete" >> $GITHUB_STEP_SUMMARY + echo "## Build & Release Complete" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY echo "| Step | Result |" >> $GITHUB_STEP_SUMMARY echo "|------|--------|" >> $GITHUB_STEP_SUMMARY diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 019ea6d3..fff93257 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -9,7 +9,7 @@ # INGROUP: MokoStandards.Security # REPO: https://github.com/mokoconsulting-tech/MokoStandards # PATH: /templates/workflows/generic/codeql-analysis.yml.template -# VERSION: 02.00.01 +# VERSION: 02.01.08 # BRIEF: CodeQL security scanning workflow (generic — all repo types) # NOTE: Deployed to .github/workflows/codeql-analysis.yml in governed repos. # CodeQL does not support PHP directly; JavaScript scans JSON/YAML/shell. diff --git a/.github/workflows/deploy-demo.yml b/.github/workflows/deploy-demo.yml index 45c0a5f4..7437ccaf 100644 --- a/.github/workflows/deploy-demo.yml +++ b/.github/workflows/deploy-demo.yml @@ -22,7 +22,7 @@ # INGROUP: MokoStandards.Deploy # REPO: https://github.com/mokoconsulting-tech/MokoStandards # PATH: /templates/workflows/shared/deploy-demo.yml.template -# VERSION: 04.05.13 +# VERSION: 02.01.08 # BRIEF: SFTP deployment workflow for demo server — synced to all governed repos # NOTE: Synced via bulk-repo-sync to .github/workflows/deploy-demo.yml in all governed repos. # Port is resolved in order: DEMO_FTP_PORT variable → :port suffix in DEMO_FTP_HOST → 22. diff --git a/.github/workflows/deploy-dev.yml b/.github/workflows/deploy-dev.yml index af275da1..312ea214 100644 --- a/.github/workflows/deploy-dev.yml +++ b/.github/workflows/deploy-dev.yml @@ -22,7 +22,7 @@ # INGROUP: MokoStandards.Deploy # REPO: https://github.com/mokoconsulting-tech/MokoStandards # PATH: /templates/workflows/shared/deploy-dev.yml.template -# VERSION: 04.05.13 +# VERSION: 02.01.08 # BRIEF: SFTP deployment workflow for development server — synced to all governed repos # NOTE: Synced via bulk-repo-sync to .github/workflows/deploy-dev.yml in all governed repos. # Port is resolved in order: DEV_FTP_PORT variable → :port suffix in DEV_FTP_HOST → 22. diff --git a/.github/workflows/deploy-rs.yml b/.github/workflows/deploy-rs.yml index 5f9f8da4..430da8bb 100644 --- a/.github/workflows/deploy-rs.yml +++ b/.github/workflows/deploy-rs.yml @@ -22,7 +22,7 @@ # INGROUP: MokoStandards.Deploy # REPO: https://github.com/mokoconsulting-tech/MokoStandards # PATH: /templates/workflows/shared/deploy-rs.yml.template -# VERSION: 04.05.13 +# VERSION: 02.01.08 # BRIEF: SFTP deployment workflow for release staging server — synced to all governed repos # NOTE: Synced via bulk-repo-sync to .github/workflows/deploy-rs.yml in all governed repos. # Port is resolved in order: RS_FTP_PORT variable → :port suffix in RS_FTP_HOST → 22. diff --git a/.github/workflows/enterprise-firewall-setup.yml b/.github/workflows/enterprise-firewall-setup.yml index b6cf7abe..ccea718f 100644 --- a/.github/workflows/enterprise-firewall-setup.yml +++ b/.github/workflows/enterprise-firewall-setup.yml @@ -22,7 +22,7 @@ # INGROUP: MokoStandards.Firewall # REPO: https://github.com/mokoconsulting-tech/MokoStandards # PATH: /templates/workflows/shared/enterprise-firewall-setup.yml.template -# VERSION: 04.05.13 +# VERSION: 02.01.08 # BRIEF: Enterprise firewall configuration — generates outbound allow-rules including SFTP deployment server # NOTE: Reads DEV_FTP_HOST / DEV_FTP_PORT variables to include SFTP egress rules alongside HTTPS rules. diff --git a/.github/workflows/repo_health.yml b/.github/workflows/repo_health.yml index 0129292b..928c5466 100644 --- a/.github/workflows/repo_health.yml +++ b/.github/workflows/repo_health.yml @@ -10,7 +10,7 @@ # INGROUP: MokoStandards.Validation # REPO: https://github.com/mokoconsulting-tech/MokoStandards # PATH: /.github/workflows/repo_health.yml -# VERSION: 04.05.00 +# VERSION: 02.01.08 # BRIEF: Enforces repository guardrails by validating release configuration, scripts governance, tooling availability, and core repository health artifacts. # NOTE: Field is user-managed. # ============================================================================ diff --git a/.github/workflows/repository-cleanup.yml b/.github/workflows/repository-cleanup.yml index b0780619..ed81e6e4 100644 --- a/.github/workflows/repository-cleanup.yml +++ b/.github/workflows/repository-cleanup.yml @@ -9,7 +9,7 @@ # INGROUP: MokoStandards.Maintenance # REPO: https://github.com/mokoconsulting-tech/MokoStandards # PATH: /templates/workflows/shared/repository-cleanup.yml.template -# VERSION: 04.05.13 +# VERSION: 02.01.08 # BRIEF: Recurring repository maintenance — labels, branches, workflows, logs, doc indexes # NOTE: Synced via bulk-repo-sync to .github/workflows/repository-cleanup.yml in all governed repos. # Runs on the 1st and 15th of each month at 6:00 AM UTC, and on manual dispatch. diff --git a/.github/workflows/standards-compliance.yml b/.github/workflows/standards-compliance.yml index df8413c5..a46e3903 100644 --- a/.github/workflows/standards-compliance.yml +++ b/.github/workflows/standards-compliance.yml @@ -5,7 +5,7 @@ # INGROUP: MokoStandards.Compliance # REPO: https://github.com/mokoconsulting-tech/MokoStandards # PATH: /.github/workflows/standards-compliance.yml -# VERSION: 04.05.00 +# VERSION: 02.01.08 # BRIEF: MokoStandards compliance validation workflow # NOTE: Validates repository structure, documentation, and coding standards diff --git a/.github/workflows/sync-version-on-merge.yml b/.github/workflows/sync-version-on-merge.yml index 7b2ef6c2..356f8493 100644 --- a/.github/workflows/sync-version-on-merge.yml +++ b/.github/workflows/sync-version-on-merge.yml @@ -9,7 +9,7 @@ # INGROUP: MokoStandards.Automation # REPO: https://github.com/mokoconsulting-tech/MokoStandards # PATH: /templates/workflows/shared/sync-version-on-merge.yml.template -# VERSION: 04.05.13 +# VERSION: 02.01.08 # BRIEF: Auto-bump patch version on every push to main and propagate to all file headers # NOTE: Synced via bulk-repo-sync to .github/workflows/sync-version-on-merge.yml in all governed repos. # README.md is the single source of truth for the repository version. diff --git a/composer.json b/composer.json index 53a5ce61..1b0d9d79 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "mokoconsulting-tech/mokowaas", "description": "MokoWaaS Joomla component by Moko Consulting", "type": "joomla-component", - "version": "02.01.09", + "version": "02.01.08", "license": "GPL-3.0-or-later", "authors": [ { diff --git a/src/mokowaas.xml b/src/mokowaas.xml index 3274d2f4..7363879c 100644 --- a/src/mokowaas.xml +++ b/src/mokowaas.xml @@ -16,7 +16,7 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.01.09 + VERSION: 02.01.10 PATH: /src/mokowaas.xml BRIEF: Plugin manifest for MokoWaaS system plugin NOTE: Defines installation metadata, files, and configuration for Joomla @@ -29,7 +29,7 @@ GNU General Public License version 3 or later; see LICENSE.md hello@mokoconsulting.tech https://mokoconsulting.tech - 02.01.09 + 02.01.10 This plugin rebrands the Joomla system interface with MokoWaaS identity. It applies language overrides and ensures consistent branding across the platform. Moko\Plugin\System\MokoWaaS script.php diff --git a/updates.xml b/updates.xml index b19ab731..8733c1ec 100644 --- a/updates.xml +++ b/updates.xml @@ -16,7 +16,7 @@ DEFGROUP: Joomla.UpdateServer INGROUP: MokoWaaS REPO: https://github.com/mokoconsulting-tech/mokowaas - VERSION: 02.01.09 + VERSION: 02.01.10 PATH: /updates.xml BRIEF: Joomla update server XML feed for automatic plugin updates NOTE: This file is automatically updated by GitHub Actions on each release @@ -29,12 +29,12 @@ plugin system site - 02.01.09 + 02.01.10 https://github.com/mokoconsulting-tech/mokowaas - https://github.com/mokoconsulting-tech/MokoWaaS/releases/download/02.01/MokoWaaS-02.01.09.zip + https://github.com/mokoconsulting-tech/MokoWaaS/releases/download/02.01/MokoWaaS-02.01.10.zip - 205d954a9b1b4ef8cc392549229144ed8ff737550b9e92dff7cfe11bb277581e + c5abccaeecba85ac2f477cddb0212a72d204efaf2065db9d575d535c8cfd1fa9 Moko Consulting https://mokoconsulting.tech