Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 49a00185c9 | |||
| e5e32c4cb7 |
+23
-2
@@ -12,8 +12,6 @@ BRIEF: Release changelog
|
|||||||
# Changelog
|
# Changelog
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
## [09.04.00] --- 2026-05-28
|
|
||||||
|
|
||||||
|
|
||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
|
|
||||||
@@ -101,3 +99,26 @@ Version format: `XX.YY.ZZ` (zero-padded semver).
|
|||||||
- PHPStan level 3→4: removed 13 dead properties, 41 defensive patterns baselined
|
- 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 4→5: fixed metrics `increment()` bug (labels passed as value param)
|
||||||
- PHPStan level 5→6: 360 missing array generic types baselined
|
- 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
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ DEFGROUP: MokoStandards.Root
|
|||||||
INGROUP: MokoStandards
|
INGROUP: MokoStandards
|
||||||
REPO: https://git.mokoconsulting.tech/MokoConsulting/moko-platform
|
REPO: https://git.mokoconsulting.tech/MokoConsulting/moko-platform
|
||||||
PATH: /README.md
|
PATH: /README.md
|
||||||
VERSION: 09.04.00
|
VERSION: 09.03.03
|
||||||
BRIEF: Project overview and documentation
|
BRIEF: Project overview and documentation
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ use MokoEnterprise\{ApiClient, AuditLogger, CliFramework, Config, PlatformAdapte
|
|||||||
class JoomlaRelease extends CliFramework
|
class JoomlaRelease extends CliFramework
|
||||||
{
|
{
|
||||||
private const VERSION = '04.06.00';
|
private const VERSION = '04.06.00';
|
||||||
private const ORG = 'mokoconsulting-tech';
|
private const ORG = 'MokoConsulting';
|
||||||
|
|
||||||
private const STABILITY_TAGS = [
|
private const STABILITY_TAGS = [
|
||||||
'development' => 'development',
|
'development' => 'development',
|
||||||
@@ -75,7 +75,7 @@ class JoomlaRelease extends CliFramework
|
|||||||
$stability = (string) $this->getArgument('--stability');
|
$stability = (string) $this->getArgument('--stability');
|
||||||
$dryRun = (bool) $this->getArgument('--dry-run');
|
$dryRun = (bool) $this->getArgument('--dry-run');
|
||||||
|
|
||||||
if (!isset(self::STABILITY_TAGS[$stability])) {
|
if (!array_key_exists($stability, self::STABILITY_TAGS)) {
|
||||||
$this->log('ERROR', "Invalid stability: {$stability}. Use: " . implode(', ', array_keys(self::STABILITY_TAGS)));
|
$this->log('ERROR', "Invalid stability: {$stability}. Use: " . implode(', ', array_keys(self::STABILITY_TAGS)));
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -213,7 +213,9 @@ class JoomlaRelease extends CliFramework
|
|||||||
|
|
||||||
// Templates don't have <element> — derive from <name>
|
// Templates don't have <element> — derive from <name>
|
||||||
if ($element === '') {
|
if ($element === '') {
|
||||||
$element = strtolower(str_replace(' ', '', $name));
|
// Strip type prefix (e.g. "Template - ") before deriving element
|
||||||
|
$baseName = preg_replace('/^(Package|Plugin|Module|Component|Template|Library|File)\s*-\s*/i', '', $name);
|
||||||
|
$element = strtolower(str_replace([' ', '-'], '', $baseName));
|
||||||
}
|
}
|
||||||
|
|
||||||
$tp = '';
|
$tp = '';
|
||||||
@@ -435,7 +437,7 @@ class JoomlaRelease extends CliFramework
|
|||||||
$lines[] = ' <tags>';
|
$lines[] = ' <tags>';
|
||||||
$lines[] = " <tag>{$stability}</tag>";
|
$lines[] = " <tag>{$stability}</tag>";
|
||||||
$lines[] = ' </tags>';
|
$lines[] = ' </tags>';
|
||||||
$lines[] = " <infourl title=\"{$meta['name']}\">https://github.com/" . self::ORG . "</infourl>";
|
$lines[] = " <infourl title=\"{$meta['name']}\">https://git.mokoconsulting.tech/" . self::ORG . "</infourl>";
|
||||||
$lines[] = ' <downloads>';
|
$lines[] = ' <downloads>';
|
||||||
$lines[] = " <downloadurl type=\"full\" format=\"zip\">{$zipUrl}</downloadurl>";
|
$lines[] = " <downloadurl type=\"full\" format=\"zip\">{$zipUrl}</downloadurl>";
|
||||||
$lines[] = " <downloadurl type=\"full\" format=\"tar.gz\">{$tarUrl}</downloadurl>";
|
$lines[] = " <downloadurl type=\"full\" format=\"tar.gz\">{$tarUrl}</downloadurl>";
|
||||||
|
|||||||
Reference in New Issue
Block a user