From 6756eaf40b1ae06a1094d8f8352347e29b76e952 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 5 Jan 2026 08:39:08 +0000 Subject: [PATCH 1/8] Initial plan -- 2.49.1 From 6f9db80fb3ee6322fc80e87ea315f95b3d687102 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 5 Jan 2026 08:42:39 +0000 Subject: [PATCH 2/8] Fix malformed revision history table in README.md Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com> --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 295cee5..8e1a593 100644 --- a/README.md +++ b/README.md @@ -207,6 +207,6 @@ See the [CHANGELOG.md](./CHANGELOG.md) for detailed version history. ## Revision History -| Version | Date | Author | Description | -| ------- | ---------- | -----------------------------_-- | ------------------------------------- | -| 3.0 | 2025-12-09 | Jonathan Miller (@jmiller-moko) | Added Metadata and Revision History | +| Version | Date | Author | Description | +| ------- | ---------- | -------------------------------- | ------------------------------------- | +| 3.0 | 2025-12-09 | Jonathan Miller (@jmiller-moko) | Added Metadata and Revision History | -- 2.49.1 From bf73dbda79439500d47adbb1328cf129de4eaf66 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 5 Jan 2026 08:48:47 +0000 Subject: [PATCH 3/8] Update README revision history with proper information and consistent format Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com> --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 8e1a593..f0bfef3 100644 --- a/README.md +++ b/README.md @@ -207,6 +207,7 @@ See the [CHANGELOG.md](./CHANGELOG.md) for detailed version history. ## Revision History -| Version | Date | Author | Description | -| ------- | ---------- | -------------------------------- | ------------------------------------- | -| 3.0 | 2025-12-09 | Jonathan Miller (@jmiller-moko) | Added Metadata and Revision History | +| Date | Change Summary | Author | +| ---------- | ------------------------------------------------------------------- | ------------------------------- | +| 2026-01-05 | Fixed malformed markdown table formatting in revision history. | Jonathan Miller (@jmiller-moko) | +| 2026-01-05 | Initial publication of template documentation and feature overview. | Moko Consulting | -- 2.49.1 From c050bf68056c4b5c0f8564acf50f8fe92cbe479a Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 5 Jan 2026 08:50:10 +0000 Subject: [PATCH 4/8] Reorder revision history entries in logical chronological sequence Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com> --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f0bfef3..0285f78 100644 --- a/README.md +++ b/README.md @@ -209,5 +209,5 @@ See the [CHANGELOG.md](./CHANGELOG.md) for detailed version history. | Date | Change Summary | Author | | ---------- | ------------------------------------------------------------------- | ------------------------------- | -| 2026-01-05 | Fixed malformed markdown table formatting in revision history. | Jonathan Miller (@jmiller-moko) | | 2026-01-05 | Initial publication of template documentation and feature overview. | Moko Consulting | +| 2026-01-05 | Fixed malformed markdown table formatting in revision history. | Jonathan Miller (@jmiller-moko) | -- 2.49.1 From 10265288cc7965e832e406f6c4dd3f3ba3eb0458 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 5 Jan 2026 11:51:16 +0000 Subject: [PATCH 5/8] Fix Node.js cache configuration in joomla_testing workflow Remove npm cache configuration since repository has no package-lock.json file. This resolves the "Some specified paths were not resolved, unable to cache dependencies" error in GitHub Actions. Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com> --- .github/workflows/joomla_testing.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/joomla_testing.yml b/.github/workflows/joomla_testing.yml index 800f4b0..1724132 100644 --- a/.github/workflows/joomla_testing.yml +++ b/.github/workflows/joomla_testing.yml @@ -56,8 +56,6 @@ jobs: uses: actions/setup-node@v4 with: node-version: '18' - cache: 'npm' - cache-dependency-path: '**/package-lock.json' - name: Cache Joomla Downloads uses: actions/cache@v4 -- 2.49.1 From 15fa87e49db00161c4de033aecb91c3188a48a42 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 5 Jan 2026 12:03:04 +0000 Subject: [PATCH 6/8] Add GitHub token authentication for Composer in CI workflows Configure COMPOSER_AUTH with GitHub token for all composer global require commands to prevent authentication errors when accessing GitHub API. This resolves "Could not authenticate against github.com" errors in CI. Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com> --- .github/workflows/joomla_testing.yml | 2 ++ .github/workflows/php_quality.yml | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/.github/workflows/joomla_testing.yml b/.github/workflows/joomla_testing.yml index 1724132..2019990 100644 --- a/.github/workflows/joomla_testing.yml +++ b/.github/workflows/joomla_testing.yml @@ -243,6 +243,8 @@ jobs: ${{ runner.os }}-composer- - name: Install Codeception + env: + COMPOSER_AUTH: '{"github-oauth": {"github.com": "${{ secrets.GITHUB_TOKEN }}"}}' run: | composer global require codeception/codeception composer global require codeception/module-db diff --git a/.github/workflows/php_quality.yml b/.github/workflows/php_quality.yml index 6fcd817..0f8763b 100644 --- a/.github/workflows/php_quality.yml +++ b/.github/workflows/php_quality.yml @@ -49,6 +49,8 @@ jobs: ${{ runner.os }}-composer- - name: Install PHP_CodeSniffer + env: + COMPOSER_AUTH: '{"github-oauth": {"github.com": "${{ secrets.GITHUB_TOKEN }}"}}' run: | composer global require "squizlabs/php_codesniffer:^3.0" --with-all-dependencies composer global require "phpcompatibility/php-compatibility:^9.0" --with-all-dependencies @@ -103,6 +105,8 @@ jobs: ${{ runner.os }}-composer- - name: Install PHPStan + env: + COMPOSER_AUTH: '{"github-oauth": {"github.com": "${{ secrets.GITHUB_TOKEN }}"}}' run: | composer global require phpstan/phpstan "^1.0" --with-all-dependencies composer global require phpstan/extension-installer "^1.0" --with-all-dependencies @@ -150,6 +154,8 @@ jobs: ${{ runner.os }}-composer- - name: Install dependencies + env: + COMPOSER_AUTH: '{"github-oauth": {"github.com": "${{ secrets.GITHUB_TOKEN }}"}}' run: | composer global require "squizlabs/php_codesniffer:^3.0" --with-all-dependencies composer global require "phpcompatibility/php-compatibility:^9.0" --with-all-dependencies -- 2.49.1 From f67946f0c05ff91e5acc56d4ae5a11a643991671 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 5 Jan 2026 12:08:46 +0000 Subject: [PATCH 7/8] Allow PHPStan extension-installer plugin in Composer config Add composer global config to explicitly allow phpstan/extension-installer plugin before installation. This resolves "blocked by your allow-plugins config" error in Composer 2.2+. Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com> --- .github/workflows/php_quality.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/php_quality.yml b/.github/workflows/php_quality.yml index 0f8763b..d1ba02e 100644 --- a/.github/workflows/php_quality.yml +++ b/.github/workflows/php_quality.yml @@ -108,6 +108,7 @@ jobs: env: COMPOSER_AUTH: '{"github-oauth": {"github.com": "${{ secrets.GITHUB_TOKEN }}"}}' run: | + composer global config --no-plugins allow-plugins.phpstan/extension-installer true composer global require phpstan/phpstan "^1.0" --with-all-dependencies composer global require phpstan/extension-installer "^1.0" --with-all-dependencies -- 2.49.1 From e1dcc80e601ecb96b49018cb9551003bf0093c21 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 5 Jan 2026 18:10:39 +0000 Subject: [PATCH 8/8] Isolate Composer caches per job to prevent dependency conflicts Remove overly broad cache restore-keys that allowed cross-job cache pollution. Each job now maintains its own isolated cache based on job type and PHP version. This prevents Codeception's PHP 8.1+ requirements from affecting PHPStan jobs running on PHP 8.0. Co-authored-by: jmiller-moko <230051081+jmiller-moko@users.noreply.github.com> --- .github/workflows/joomla_testing.yml | 2 -- .github/workflows/php_quality.yml | 6 ------ 2 files changed, 8 deletions(-) diff --git a/.github/workflows/joomla_testing.yml b/.github/workflows/joomla_testing.yml index 2019990..1e7763a 100644 --- a/.github/workflows/joomla_testing.yml +++ b/.github/workflows/joomla_testing.yml @@ -239,8 +239,6 @@ jobs: key: ${{ runner.os }}-composer-codeception-8.1-${{ hashFiles('**/composer.lock') }} restore-keys: | ${{ runner.os }}-composer-codeception-8.1- - ${{ runner.os }}-composer-codeception- - ${{ runner.os }}-composer- - name: Install Codeception env: diff --git a/.github/workflows/php_quality.yml b/.github/workflows/php_quality.yml index d1ba02e..05e347c 100644 --- a/.github/workflows/php_quality.yml +++ b/.github/workflows/php_quality.yml @@ -45,8 +45,6 @@ jobs: key: ${{ runner.os }}-composer-phpcs-${{ matrix.php-version }}-${{ hashFiles('**/composer.lock') }} restore-keys: | ${{ runner.os }}-composer-phpcs-${{ matrix.php-version }}- - ${{ runner.os }}-composer-phpcs- - ${{ runner.os }}-composer- - name: Install PHP_CodeSniffer env: @@ -101,8 +99,6 @@ jobs: key: ${{ runner.os }}-composer-phpstan-${{ matrix.php-version }}-${{ hashFiles('**/composer.lock') }} restore-keys: | ${{ runner.os }}-composer-phpstan-${{ matrix.php-version }}- - ${{ runner.os }}-composer-phpstan- - ${{ runner.os }}-composer- - name: Install PHPStan env: @@ -151,8 +147,6 @@ jobs: key: ${{ runner.os }}-composer-phpcompat-8.3-${{ hashFiles('**/composer.lock') }} restore-keys: | ${{ runner.os }}-composer-phpcompat-8.3- - ${{ runner.os }}-composer-phpcompat- - ${{ runner.os }}-composer- - name: Install dependencies env: -- 2.49.1