v1.3.0 — manifest_cache staleness check + build.dist.properties sync
Added
cwm-verifydetects and rebuilds stalemanifest_cache. Each row in
#__extensionscarries amanifest_cacheJSON column that Joomla
populates on install and update. When an extension's install
scriptfileupdate()doesn't run cleanly, that column drifts away
from the source manifest XML — visible to users as
mb_strtolower(null)deprecation warnings in Joomla 6's manage view.ExtensionVerifier::parseManifestXml()reproduces Joomla's
Installer::parseXMLInstallFile()shape so cwm-verify can build
the canonical cache JSON.ExtensionVerifier::compareManifestCache()checks the four fields
the manage view actually reads (name,version,description,
author) — other fields are informational and not worth surfacing
as drift.cwm-verify --target testnow reportsSTALE: <name> manifest_cache — version: 'old' → 'new'per drifted extension.cwm-verify --target test --fixUPDATEs the row with rebuilt JSON
directly — no extension reinstall required.- Applies to self extensions AND CWM dep extensions installed via
path repositories (expectedFromPackages()resolves the source
manifest from each dep's joomlaLinks tuple).
cwm-sync-configsdistributesbuild.dist.propertiesto consumers.
Each consuming project gets an auto-managed copy of cwm-build-tools'
templates/build.properties.tmpl, headed by a marker comment telling
developers to edit the upstream template rather than the local file.
Schema changes tobuild.properties(therolefield added in
v1.1.0, the[paths]block added in v1.2.0) now propagate to every
consumer on the nextcomposer cwm-sync-configsrun rather than
silently drifting.
Migration
Per-repo:
composer require --dev cwm/build-tools:^1.3composer cwm-sync-configs— refreshesbuild.dist.properties
from the upstream template (committed change, review the diff).- Optionally
composer cwm-verify --target test --fixagainst a
live install with stale extension caches.