Files
Jonathan Miller a93794f1ba
Generic: Repo Health / Release configuration (push) Blocked by required conditions
Generic: Repo Health / Scripts governance (push) Blocked by required conditions
Generic: Repo Health / Repository health (push) Blocked by required conditions
Generic: Repo Health / Site Health (push) Has been skipped
Generic: Repo Health / Access control (push) Successful in 1s
Universal: Cascade Main → Dev / Cascade main → branches (push) Successful in 3s
docs: update CHANGELOG with v09.02 session changes
Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-26 23:50:16 -05:00

13 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog. Version format: XX.YY.ZZ (zero-padded semver).

[Unreleased]

Added

  • branch-cleanup.yml: auto-delete merged feature branches after PR merge — synced to all 47 repos
  • governance.yml: lightweight YAML schema replacing HCL definition files for repo governance config
  • auto-bump.yml: auto patch-bump version on every push to dev

Changed

  • Definitions removed: deleted definitions/ directory (63,602 lines of HCL) — Template repos are now the canonical source for platform-specific files
  • Template path migration: templates/gitea/templates/mokogitea/, all .github/ references → .mokogitea/ across definitions and sync tools
  • version_bump.php: preserves version suffix (e.g. -dev) through bumps — moko manifest is now the single source of truth for the full version string (#191)
  • version_read.php: accepts suffix from moko manifest (was stripping it)
  • update-server.yml: removed DISPLAY_VERSION — derives filename directly from manifest version (#191)
  • pre-release.yml: removed SUFFIX variable — version string already includes suffix
  • push_files.php: detects platform from manifest.xml via API instead of local sync definition files
  • auto_detect_platform.php: gracefully handles missing schema directory
  • DefinitionParser.php: deleted — no longer needed
  • manifest-schema.xsd: moved from definitions/ to templates/schemas/

Removed

  • definitions/default/ — 10 HCL definition files (generic, joomla, dolibarr, platform, standards, etc.)
  • definitions/sync/ — 48 auto-generated sync tracking files
  • lib/Enterprise/DefinitionParser.php — HCL parser (replaced by Template repo sourcing)
  • Redundant bump from pre-release.yml (handled by auto-bump)
  • 47 merged feature branches cleaned up from remote

[09.02.00] - 2026-05-26

Added

  • Release promotion pipeline: draft PR → RC promotion, merged PR → RC-to-stable (skip rebuild)
  • 7 new CLI tools: manifest_element.php, release_create.php, release_package.php, release_promote.php, release_mirror.php, version_reset_dev.php, ManifestReader.php
  • version_bump.php / version_read.php: support for package.json (Node.js) and pyproject.toml (Python)
  • version_bump.php: now writes bumped version to all sources (README, manifests, Dolibarr mod, composer.json, package.json, pyproject.toml)
  • release_cascade.php: --version flag for version-aware deletion of stale releases
  • release_validate.php: auto-detect platform from manifest.xml, --github-output flag, source dir check
  • updates_xml_build.php: supports non-Joomla platforms via manifest.xml detection
  • release_package.php: reads entry-point from manifest.xml for source dir resolution
  • auto-release.yml: workflow_dispatch with promote-rc action as fallback for MokoGitea#220
  • update-server.yml: now universal — pushed to all 69+ repos (Joomla, Dolibarr, generic, MCP)
  • ManifestReader.php: shared typed accessor for .mokogitea/manifest.xml
  • Universal workflow cascade: Template-Generic → other templates → all repos via bulk_sync.php
  • Wiki: UPDATE_SERVER standard page on moko-platform and all template repos
  • PHPDoc added to 4 classes missing class-level docs

Changed

  • auto-release.yml: 761 → 490 lines — replaced all inline bash with CLI tool calls
  • pre-release.yml: 389 → 314 lines — replaced inline logic with manifest_read.php, manifest_element.php, updates_xml_build.php
  • Removed paths filter from workflow triggers (enables Go, Node.js, generic repo compatibility)
  • RepositorySynchronizer.php: fixed template repo names, .mokogitea/workflows path, universal workflow sync
  • Template-Generic is now the single source of truth for universal workflows

Fixed

  • release_cascade.php in auto-release.yml: was using --org/--repo flags instead of --api-base
  • pre-release.yml: updates.xml sync was checking out entire branch tree instead of just updates.xml
  • MokoWaaS#48: Joomla 6 typed event API fix for plg_webservices_mokowaas

[09.00.00] - 2026-05-26

Added

  • PHPDoc on Priority 1 Enterprise classes (CliFramework, adapters, ApiClient)
  • Wiki: Coding-Standards page with PHPDoc standard, PHPCS exclusions, file patterns
  • CI: PHPStan enforced at level 6 (was advisory), PHPUnit blocks on failure

Fixed

  • updates_xml_build.php: cascade entries down to lower channels — stable now writes all 5 entries instead of wiping them
  • updates_xml_build.php: separate Joomla stability tags (dev, rc) from Gitea release tags (development, release-candidate) — download URLs now point to correct release assets
  • updates_xml_build.php: only emit <client>site</client> for templates and modules, not packages or components
  • updates_xml_build.php: preservation logic matches Joomla tag names when deciding which existing entries to keep

[08.00.00] - 2026-05-26

Changed

  • PHPStan: level 5 → 6 (401 baselined, 0 new errors)
  • Branch protection: 5 required checks enabled on main
  • Workflows synced to all governed repos (72+ repos across 3 orgs)
  • Flushed 44 stale runners from Gitea admin (3 active remain)

Fixed

  • PHPStan level 3→4: removed 13 dead properties, 41 defensive patterns baselined
  • PHPStan level 4→5: fixed metrics increment() bug (labels passed as value param)
  • PHPStan level 5→6: 360 missing array generic types baselined

[07.00.00] - 2026-05-25

Added

  • cli/client_provision.php — end-to-end client onboarding from JSON config (closes #4)
  • cli/client_dashboard.php — unified HTML dashboard: health, SSL, uptime, releases (closes #3)
  • cli/client_health_check.php, cli/joomla_compat_check.php, cli/theme_lint.php — new CLI tools
  • lib/Enterprise/ConfigValidator.php — JSON schema validator for plugin configs (closes #105)
  • PHPUnit test infrastructure: phpunit.xml + 19 tests (closes #102)
  • bin/moko list — auto-grouped command list with 45 commands, plugin command dispatcher (closes #104)
  • templates/client-provision-example.json — example config for client provisioning

Fixed

  • bin/moko COMMAND_MAP: all paths pointed to non-existent api/ directory (closes #100)
  • release_cascade.php: accept release-candidate as stability value (was silently skipping)
  • package_build.php: fix 0-byte ZIP for Joomla packages — correct structure, no double prefix (closes #92)
  • PHPStan: level 0 to 2, 67 type errors fixed, 0 exclusions
  • ApiClient::delete(): accept optional body parameter for Gitea Contents API

Changed

  • Migrated all 7 CLIApp scripts to CliFramework (closes #101)
  • Updated CLAUDE.md with current architecture, CLI patterns, code quality (closes #103)
  • Wiki CLI_AUTOMATION page updated with all tools

[06.00.00] - 2026-05-25

Added

  • cli/bulk_workflow_push.php — push a workflow file to all governed repos via Gitea Contents API (closes #52)
  • cli/grafana_dashboard.php — manage Grafana dashboards: push, delete, list, export (closes #53)
  • Wiki CLI_AUTOMATION page — comprehensive reference for all 30 CLI tools (closes #66)

Fixed

  • version_read.php / version_bump.php: handle suffixed versions in XML manifests (e.g. 01.00.00-dev)
  • version_read.php / version_bump.php: match VERSION: inside HTML comments (<!-- VERSION: ... -->)
  • Pre-release RC builds now work after a development pre-release has been built
  • auto-release workflow: switch trigger from pull_request closed to push on main (closes #54)
  • CI Gate 1: add ondrej/php PPA + composer package for PHP 8.2 on runners
  • CI repo-health: use .mokogitea/workflows/ instead of .gitea/workflows/
  • PHPCS: fix all 7,539 PSR-12 violations across 74 files (0 errors remaining)
  • PHPStan: fix deprecated config options, mark as advisory until errors addressed
  • Branch protection: update check names from MokoStandards CI to moko-platform CI
  • Runner-03: fix Docker image label (moko/runner-images → self-hosted git.mokoconsulting.tech/mokoconsulting/runner-image)
  • Runbook 08: update with 3-runner fleet overview, per-runner configs, troubleshooting

Changed

  • Rename MokoStandards references to moko-platform in config files

[05.00.00] - 2026-05-16

Added

  • server-autoheal.sh — boot-check, split system/content backups, self-installing with cron + systemd hook
  • Grafana library panels: legend (list, right) and multi-tooltip options on all 14 panels
  • Prometheus targets volume mount in monitoring Docker Compose

Fixed

  • MokoWaaS dashboard: remove v_hidden column — use explicit filterFieldsByName regex instead of broken excludeByName
  • MokoWaaS dashboard: simplify probe queries (remove redundant and on(site_name) joins)

Changed

  • Rename gitea-server-setup.mokogitea-private in workflow EXCLUDE lists
  • Dolibarr Module ID Registry moved to MokoDolibarr wiki (moko-platform page is now a redirect)

[04.09.00] - 2026-05-12

Added

  • <deploy> section support in .manifest.xml schema: source-dir, remote-subdir, excludes, dev-host, demo-host
  • manifest_read.php now parses all deploy fields for CI consumption

Changed

  • Deploy workflows can now read deploy paths from manifest instead of guessing from directory structure

[04.08.00] - 2026-05-12

Added

  • cli/manifest_read.php -- full .manifest.xml parser for CI consumption
    • Supports --field, --all, --json, and --github-output modes
    • Backward-compatible with .moko-platform (XML) and .mokostandards (YAML) formats
    • Replaces inline sed detection blocks in workflows

Changed

  • Workflows (auto-release, pre-release, pr-check) now use manifest_read.php for platform detection
  • entry-point field from manifest replaces find tree scan for mod file discovery
  • Platform detection outputs all manifest fields to GITHUB_OUTPUT (name, org, language, package-type, etc.)

[05.00.00] - 2026-05-11

Added

  • Centralized MokoWaaS Grafana dashboard for all Joomla sites (2-column layout)
  • MokoStandards MCP server with 24 governance tools
  • Wiki health check and GitHub wiki mirror sync
  • Daily wiki sync workflow — mirrors all Gitea wikis to GitHub
  • CHANGELOG [Unreleased] section check in repo health (5 pts)
  • Client platform type with detection and structure definition
  • PHPStan, Gitleaks, and Renovate — templates, workflows, and docs
  • Cascade and branch protection workflow documentation
  • Branch protection setup workflow
  • Client-site definition
  • Pre-release workflow for manual dev/alpha/beta/rc builds
  • PR-check, security-audit, notify, cleanup workflow definitions
  • Expanded workflow suite (10 workflows from MokoOnyx)
  • .gitea/workflows definitions to Joomla structure defs
  • Joomla workflow templates from MokoOnyx
  • Cleanup script to remove .claude/ and .mcp.json from repos
  • Auto-discover all repos with wikis across all orgs
  • CLAUDE.md to repo health check, flag unwanted files
  • .moko-platform manifest (replaces .mokostandards)
  • PR branch policy check workflow

Changed

  • Major version bump: 04.05.0005.00.00 across all definitions, templates, and wiki
  • Grafana endpoint dashboards: 2 columns per row (reduced congestion)
  • Sync engine clones template repos at runtime for workflows
  • Simplified platform types across definitions and sync engine
  • Removed templates/github — all CI/templates now in .gitea/
  • Removed templates/workflows — canonical source is now template repos
  • Updated mokostandards xmlns to point to MokoStandards-API repo
  • Comprehensive repo health check updates

Fixed

  • Remove gitea-actions[bot] from push whitelist (not a real user)
  • Delete-then-create branch protection rules to avoid 422
  • Patch version bump in pre-release workflow
  • Always emit <client> tag in UpdateXmlGenerator
  • Rewrite updates.xml.template with 5 stability channels
  • Migrate .mokostandards from .github/ to .gitea/ on Gitea

[04.05.00] - 2026-03-15

Added

  • Dual-platform support (Gitea + GitHub) and Joomla template tooling
  • Templates, CLI dirs, docs, and Gitea-first platform config
  • Sync to all branches, listBranches, ext-zip
  • All templates from MokoStandards

Changed

  • Migrated to Gitea-only workflows and API
  • Converted all gh CLI calls to Gitea API curl across workflow templates
  • Gitea-primary tokens: GA_TOKEN for Gitea API, GH_TOKEN for GitHub mirror
  • Updated all references to MokoConsulting org and Gitea URLs

Fixed

  • Guzzle base_uri resolution for Gitea API paths
  • Replace all hardcoded GitHub API URLs with platform adapter pattern
  • Split repoRoot into apiRoot + standardsRoot
  • Auto-release template: use Gitea API for main sync, auth push URL
  • Bulk_sync: resolve label names to IDs, fix username
  • Remove sha256: prefix from update XML templates

[04.00.00] - 2026-01-01

  • Initial release: MokoStandards Enterprise API extracted from MokoStandards