diff --git a/CHANGELOG.md b/CHANGELOG.md index 04efaf0a..cb7b58c3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Changed +- Migrated all workflow and template paths from `.github/` to `.mokogitea/` +- Template source paths updated: `templates/gitea/` to `templates/mokogitea/` +- HCL definition files removed -- Template repos are now the canonical source + +### Added +- `branch-cleanup.yml`: auto-delete merged feature branches after PR merge + ### Planned - License/subscription check - System email template branding (DB approach) @@ -39,6 +47,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Trusted IP session bypass: moved from `onAfterInitialise` to `boot()` so Joomla's session lifetime is extended before the session handler validates it (was too late, Joomla expired the session first) +- updates.xml: removed stale pre-release entries pointing to non-existent dev artifacts, legacy plugin update entry that caused stable sites to attempt dev downloads +- Removed duplicate `` from inner plugin manifest — only the package-level manifest should register the update server +- Auto-cleanup of stale plugin-level update site entries on install/update (cleans `#__update_sites` and `#__update_sites_extensions`) ## [02.06.00] - 2026-05-25 diff --git a/README.md b/README.md index 0c75e9a0..bb2e6841 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ DEFGROUP: Joomla.Plugin INGROUP: MokoWaaS REPO: https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS - VERSION: 02.11.02 + VERSION: 02.11.04 PATH: /README.md BRIEF: MokoWaaS platform plugin for Joomla --> diff --git a/src/packages/com_mokowaas/mokowaas.xml b/src/packages/com_mokowaas/mokowaas.xml index 2e65791b..9c795d34 100644 --- a/src/packages/com_mokowaas/mokowaas.xml +++ b/src/packages/com_mokowaas/mokowaas.xml @@ -7,7 +7,7 @@ GPL-3.0-or-later hello@mokoconsulting.tech https://mokoconsulting.tech - 02.11.02 + 02.11.04 Minimal API-only component for MokoWaaS. Provides REST endpoints for site health, cache, updates, and backups. Moko\Component\MokoWaaS\Api diff --git a/src/packages/plg_system_mokowaas/mokowaas.xml b/src/packages/plg_system_mokowaas/mokowaas.xml index 12cad11e..9c32a44d 100644 --- a/src/packages/plg_system_mokowaas/mokowaas.xml +++ b/src/packages/plg_system_mokowaas/mokowaas.xml @@ -30,16 +30,11 @@ GNU General Public License version 3 or later; see LICENSE.md hello@mokoconsulting.tech https://mokoconsulting.tech - 02.11.02 + 02.11.04 This plugin rebrands the Joomla system interface with MokoWaaS identity. It applies language overrides and ensures consistent branding across the platform. Moko\Plugin\System\MokoWaaS script.php - - - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/raw/branch/main/updates.xml - - script.php Extension diff --git a/src/packages/plg_system_mokowaas/script.php b/src/packages/plg_system_mokowaas/script.php index 8713f018..65ec942b 100644 --- a/src/packages/plg_system_mokowaas/script.php +++ b/src/packages/plg_system_mokowaas/script.php @@ -123,6 +123,7 @@ class plgSystemMokoWaaSInstallerScript implements InstallerScriptInterface if ($type === 'install' || $type === 'update') { $this->enableAndLockPlugin(); + $this->cleanupPluginUpdateSite(); $this->ensureMokoCassiopeia(); $this->installLanguageOverrides(); $this->updateLoginSupportUrls(); @@ -210,6 +211,77 @@ class plgSystemMokoWaaSInstallerScript implements InstallerScriptInterface $db->execute(); } + /** + * Remove the plugin-level update site so only the package-level one remains. + * + * Earlier versions registered an update server in the plugin manifest + * (plg_system_mokowaas) in addition to the package manifest (pkg_mokowaas). + * This caused Joomla to check for plugin-level updates that don't exist, + * leading to failed downloads. Only the package update site should exist. + * + * @return void + * + * @since 02.11.02 + */ + private function cleanupPluginUpdateSite() + { + $db = Factory::getDbo(); + + // Find the extension_id for the plugin + $query = $db->getQuery(true) + ->select($db->quoteName('extension_id')) + ->from($db->quoteName('#__extensions')) + ->where($db->quoteName('element') . ' = ' . $db->quote('mokowaas')) + ->where($db->quoteName('type') . ' = ' . $db->quote('plugin')) + ->where($db->quoteName('folder') . ' = ' . $db->quote('system')); + $db->setQuery($query); + $pluginId = (int) $db->loadResult(); + + if (!$pluginId) + { + return; + } + + // Find update_site_ids linked to the plugin (not the package) + $query = $db->getQuery(true) + ->select($db->quoteName('update_site_id')) + ->from($db->quoteName('#__update_sites_extensions')) + ->where($db->quoteName('extension_id') . ' = ' . $pluginId); + $db->setQuery($query); + $siteIds = $db->loadColumn(); + + if (empty($siteIds)) + { + return; + } + + // Delete the link rows + $db->setQuery( + $db->getQuery(true) + ->delete($db->quoteName('#__update_sites_extensions')) + ->where($db->quoteName('extension_id') . ' = ' . $pluginId) + )->execute(); + + // Delete orphaned update_sites rows (only if no other extension uses them) + foreach ($siteIds as $siteId) + { + $query = $db->getQuery(true) + ->select('COUNT(*)') + ->from($db->quoteName('#__update_sites_extensions')) + ->where($db->quoteName('update_site_id') . ' = ' . (int) $siteId); + $db->setQuery($query); + + if ((int) $db->loadResult() === 0) + { + $db->setQuery( + $db->getQuery(true) + ->delete($db->quoteName('#__update_sites')) + ->where($db->quoteName('update_site_id') . ' = ' . (int) $siteId) + )->execute(); + } + } + } + /** * Ensure MokoOnyx is installed, locked, and set as default. * diff --git a/src/packages/plg_webservices_mokowaas/mokowaas.xml b/src/packages/plg_webservices_mokowaas/mokowaas.xml index ec53c7b7..4966ed7c 100644 --- a/src/packages/plg_webservices_mokowaas/mokowaas.xml +++ b/src/packages/plg_webservices_mokowaas/mokowaas.xml @@ -7,7 +7,7 @@ GPL-3.0-or-later hello@mokoconsulting.tech https://mokoconsulting.tech - 02.11.02 + 02.11.04 Joomla Web Services API routes for MokoWaaS site management — health checks, cache, updates, backups, and site info. Moko\Plugin\WebServices\MokoWaaS diff --git a/src/pkg_mokowaas.xml b/src/pkg_mokowaas.xml index e4ec44b5..8386ddbd 100644 --- a/src/pkg_mokowaas.xml +++ b/src/pkg_mokowaas.xml @@ -2,7 +2,7 @@ MokoWaaS mokowaas - 02.11.02 + 02.11.04 2026-05-23 Moko Consulting hello@mokoconsulting.tech diff --git a/updates.xml b/updates.xml index 8ad5a602..f24b524e 100644 --- a/updates.xml +++ b/updates.xml @@ -7,116 +7,16 @@ MokoWaaS - MokoWaaS update + MokoWaaS stable build. pkg_mokowaas package - 02.09.00 site + 02.09.00 + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/stable + + https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/stable/pkg_mokowaas-02.09.00.zip + stable - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/stable - - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/stable/pkg_mokowaas-02.09.00.zip - - - Moko Consulting - https://mokoconsulting.tech - - - MokoWaaS - MokoWaaS update - pkg_mokowaas - package - 02.09.00 - site - rc - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/development - - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.09.00-dev.zip - - - Moko Consulting - https://mokoconsulting.tech - - - MokoWaaS - MokoWaaS update - pkg_mokowaas - package - 02.09.00 - site - beta - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/development - - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.09.00-dev.zip - - - Moko Consulting - https://mokoconsulting.tech - - - MokoWaaS - MokoWaaS update - pkg_mokowaas - package - 02.09.00 - site - alpha - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/development - - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.09.00-dev.zip - - - Moko Consulting - https://mokoconsulting.tech - - - MokoWaaS - MokoWaaS update - pkg_mokowaas - package - 02.09.00 - site - dev - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/development - - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.09.00-dev.zip - - - Moko Consulting - https://mokoconsulting.tech - - - System - MokoWaaS - MokoWaaS update (legacy plugin) - mokowaas - plugin - system - site - 02.09.00 - stable - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/development - - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.09.00-dev.zip - - - Moko Consulting - https://mokoconsulting.tech - - - - MokoWaaS - MokoWaaS development build. - pkg_mokowaas - package - site - 02.11.01 - 2026-05-26 - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/tag/development - - https://git.mokoconsulting.tech/MokoConsulting/MokoWaaS/releases/download/development/pkg_mokowaas-02.11.01-dev.zip - - d517b072a0962c156f0e01a0cd3fea232d5c99240cd452632d37c84b157889e2 - development Moko Consulting https://mokoconsulting.tech