From 28a9e05cb76b7144eabcbb3a258fcf48765cbcb0 Mon Sep 17 00:00:00 2001 From: Jonathan Miller Date: Thu, 28 May 2026 15:31:50 -0500 Subject: [PATCH] fix: auto-add folder=\"packages\" to package manifest during build When building Joomla packages, sub-package ZIPs are placed in a packages/ subdirectory. The manifest element must have folder="packages" for Joomla to find them. This fix ensures the attribute is always present, even if version bump tools overwrote it. Authored-by: Moko Consulting Co-Authored-By: Claude Opus 4.6 (1M context) --- cli/release_package.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/cli/release_package.php b/cli/release_package.php index 8ff92e8..134c572 100644 --- a/cli/release_package.php +++ b/cli/release_package.php @@ -402,6 +402,18 @@ if ($isJoomlaPackage) { echo " Sub-package: {$subName}.zip\n"; } + // Ensure package manifest has folder="packages" on element + // since sub-packages are stored in a packages/ subdirectory + $pkgManifests = glob("{$sourceDir}/pkg_*.xml") ?: []; + foreach ($pkgManifests as $pkgXml) { + $pkgContent = file_get_contents($pkgXml); + if (strpos($pkgContent, '') !== false && strpos($pkgContent, 'folder="packages"') === false) { + $pkgContent = str_replace('', '', $pkgContent); + file_put_contents($pkgXml, $pkgContent); + echo " Fixed: added folder=\"packages\" to " . basename($pkgXml) . "\n"; + } + } + // Copy top-level XML and PHP files into the package root $topLevelFiles = array_merge( glob("{$sourceDir}/*.xml") ?: [],