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
Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
13 KiB
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 reposgovernance.yml: lightweight YAML schema replacing HCL definition files for repo governance configauto-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: removedDISPLAY_VERSION— derives filename directly from manifest version (#191)pre-release.yml: removedSUFFIXvariable — version string already includes suffixpush_files.php: detects platform from manifest.xml via API instead of local sync definition filesauto_detect_platform.php: gracefully handles missing schema directoryDefinitionParser.php: deleted — no longer neededmanifest-schema.xsd: moved fromdefinitions/totemplates/schemas/
Removed
definitions/default/— 10 HCL definition files (generic, joomla, dolibarr, platform, standards, etc.)definitions/sync/— 48 auto-generated sync tracking fileslib/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 forpackage.json(Node.js) andpyproject.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:--versionflag for version-aware deletion of stale releasesrelease_validate.php: auto-detect platform from manifest.xml,--github-outputflag, source dir checkupdates_xml_build.php: supports non-Joomla platforms via manifest.xml detectionrelease_package.php: reads entry-point from manifest.xml for source dir resolutionauto-release.yml:workflow_dispatchwithpromote-rcaction as fallback for MokoGitea#220update-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 callspre-release.yml: 389 → 314 lines — replaced inline logic withmanifest_read.php,manifest_element.php,updates_xml_build.php- Removed
pathsfilter from workflow triggers (enables Go, Node.js, generic repo compatibility) RepositorySynchronizer.php: fixed template repo names,.mokogitea/workflowspath, universal workflow sync- Template-Generic is now the single source of truth for universal workflows
Fixed
release_cascade.phpinauto-release.yml: was using--org/--repoflags instead of--api-basepre-release.yml: updates.xml sync was checking out entire branch tree instead of justupdates.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 themupdates_xml_build.php: separate Joomla stability tags (dev,rc) from Gitea release tags (development,release-candidate) — download URLs now point to correct release assetsupdates_xml_build.php: only emit<client>site</client>for templates and modules, not packages or componentsupdates_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 toolslib/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/mokoCOMMAND_MAP: all paths pointed to non-existentapi/directory (closes #100)release_cascade.php: acceptrelease-candidateas 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: matchVERSION: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 closedtopushon 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 CItomoko-platform CI - Runner-03: fix Docker image label (
moko/runner-images→ self-hostedgit.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_hiddencolumn — use explicitfilterFieldsByNameregex instead of brokenexcludeByName - MokoWaaS dashboard: simplify probe queries (remove redundant
and on(site_name)joins)
Changed
- Rename
gitea-server-setup→.mokogitea-privatein 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.xmlschema:source-dir,remote-subdir,excludes,dev-host,demo-hostmanifest_read.phpnow 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.xmlparser for CI consumption- Supports
--field,--all,--json, and--github-outputmodes - Backward-compatible with
.moko-platform(XML) and.mokostandards(YAML) formats - Replaces inline
seddetection blocks in workflows
- Supports
Changed
- Workflows (
auto-release,pre-release,pr-check) now usemanifest_read.phpfor platform detection entry-pointfield from manifest replacesfindtree 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/workflowsdefinitions to Joomla structure defs- Joomla workflow templates from MokoOnyx
- Cleanup script to remove
.claude/and.mcp.jsonfrom repos - Auto-discover all repos with wikis across all orgs
- CLAUDE.md to repo health check, flag unwanted files
.moko-platformmanifest (replaces.mokostandards)- PR branch policy check workflow
Changed
- Major version bump:
04.05.00→05.00.00across 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.templatewith 5 stability channels - Migrate
.mokostandardsfrom.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