Commit Graph

251 Commits

Author SHA1 Message Date
Jonathan Miller 264ff9d3da fix: remove duplicate .min asset entries from joomla.asset.json
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 2s
Repo Health / Scripts governance (push) Successful in 2s
Repo Health / Repository health (push) Failing after 3s
Update Joomla Update Server XML Feed / Update updates.xml (push) Successful in 9s
Joomla's Web Asset Manager auto-serves .min.css/.min.js when debug mode
is off — no need for separate registered assets. Duplicate entries were
preventing the auto-switching behavior.

Now: register source files only. Joomla finds .min versions automatically
when $debug = false in configuration.php.

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-09 16:44:21 -05:00
Jonathan Miller 95c42c91a5 feat: wire minification into CI/release pipeline
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 2s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 2s
- Makefile: new `minify` target using moko-platform/build/minify.js
- auto-release.yml: Step 7.5 minifies before ZIP packaging
- .gitignore: exclude *.min.css and *.min.js from git
- Minified files ship in release ZIPs but not in the repo

Authored-by: Moko Consulting
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-09 16:32:28 -05:00
Jonathan Miller bd77de4676 feat: add CSS sync workflow — syncs to template, checks client variable coverage
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 2s
Repo Health / Scripts governance (push) Successful in 2s
Repo Health / Repository health (push) Failing after 3s
On push to main with CSS changes:
1. Syncs base CSS to Template-Client-WaaS
2. Checks each client repo's custom files for missing variables
3. Creates issue if any base variables are absent from client overrides

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-07 20:35:41 -05:00
Jonathan Miller 1dfde94611 ci: add PHPStan static analysis to CI pipeline [skip ci] 2026-05-07 20:35:41 -05:00
Moko Standards Bot f51472e571 ci: add Gitleaks secret scanning + Renovate dependency config [skip ci] 2026-05-07 20:35:41 -05:00
jmiller 62435b0bdc Merge pull request 'chore: cascade main → dev (42859ac) [skip ci]' (#14) from main into dev 2026-05-07 19:38:13 +00:00
Jonathan Miller 42859ac451 ci: cascade v2 — forward-merge main to all open branches [skip ci] 2026-05-07 14:35:39 -05:00
jmiller c32561379a Merge pull request 'chore: cascade main → dev (7a0e04a) [skip ci]' (#13) from main into dev 2026-05-05 20:51:59 +00:00
jmiller 7a0e04adc3 Merge pull request 'test: verify cascade workflow' (#12) from test/cascade-verify into main
Repo Health / Access control (push) Successful in 1s
Cascade Main → Dev / Merge main → dev (push) Successful in 3s
Repo Health / Release configuration (push) Failing after 3s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 3s
2026-05-05 20:51:51 +00:00
Jonathan Miller fcb73f920f docs: add cascade workflow to changelog
Repo Health / Access control (push) Successful in 1s
Joomla Extension CI / Lint & Validate (pull_request) Failing after 2s
Joomla Extension CI / Release Readiness Check (pull_request) Successful in 2s
Joomla Extension CI / Tests (PHP 8.2) (pull_request) Has been skipped
Joomla Extension CI / Tests (PHP 8.3) (pull_request) Has been skipped
Repo Health / Access control (pull_request) Successful in 1s
Repo Health / Release configuration (push) Failing after 3s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 3s
Repo Health / Release configuration (pull_request) Failing after 3s
Repo Health / Scripts governance (pull_request) Successful in 3s
Repo Health / Repository health (pull_request) Failing after 3s
PR Check / Validate PR (pull_request) Successful in 19s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-05 15:51:33 -05:00
Jonathan Miller b6be878cf7 chore: resolve cascade conflicts (main → dev) [skip ci]
Take main's versions for README.md (02.01.00) and updates.xml
(stable release entries). Dev's old 01.00.27-dev entry dropped —
will regenerate on next dev push via update-server workflow.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-05 15:48:52 -05:00
jmiller 35e13f6258 Merge pull request 'fix: cascade workflow — use PR-based merge for Gitea' (#10) from fix/cascade-dev-gitea-api into main
Cascade Main → Dev / Merge main → dev (push) Successful in 3s
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 3s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 3s
2026-05-05 20:43:57 +00:00
Jonathan Miller 5d0040b886 fix: use PR create+merge for cascade (Gitea has no direct merge API)
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 2s
Repo Health / Scripts governance (push) Successful in 2s
Repo Health / Repository health (push) Failing after 3s
Joomla Extension CI / Release Readiness Check (pull_request) Successful in 3s
Repo Health / Access control (pull_request) Successful in 1s
Repo Health / Release configuration (pull_request) Failing after 3s
Repo Health / Scripts governance (pull_request) Successful in 3s
Repo Health / Repository health (pull_request) Failing after 3s
PR Check / Validate PR (pull_request) Successful in 20s
Joomla Extension CI / Lint & Validate (pull_request) Failing after 44s
Joomla Extension CI / Tests (PHP 8.2) (pull_request) Has been skipped
Joomla Extension CI / Tests (PHP 8.3) (pull_request) Has been skipped
Gitea doesn't support POST /repos/{owner}/{repo}/merges. Rewrites the
cascade workflow to: compare branches, create a PR (main → dev), then
auto-merge if clean. On conflict the PR stays open for manual resolution.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-05 15:43:36 -05:00
jmiller 0fc21c58f3 Merge pull request 'feat: auto-cascade main → dev workflow' (#9) from feat/cascade-dev-workflow into main
Cascade Main → Dev / Merge main → dev (push) Failing after 1s
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 3s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 3s
2026-05-05 20:38:58 +00:00
Jonathan Miller 515290798f feat: auto-cascade main → dev workflow
Repo Health / Access control (push) Successful in 0s
Joomla Extension CI / Release Readiness Check (pull_request) Successful in 2s
PR Check / Validate PR (pull_request) Successful in 4s
Repo Health / Access control (pull_request) Successful in 0s
Repo Health / Release configuration (push) Failing after 2s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 3s
Repo Health / Release configuration (pull_request) Failing after 2s
Repo Health / Scripts governance (pull_request) Successful in 3s
Repo Health / Repository health (pull_request) Failing after 3s
Joomla Extension CI / Lint & Validate (pull_request) Failing after 43s
Joomla Extension CI / Tests (PHP 8.2) (pull_request) Has been skipped
Joomla Extension CI / Tests (PHP 8.3) (pull_request) Has been skipped
Adds cascade-dev.yml that forward-merges main into dev after every push.
Uses Gitea API merge endpoint — no repo checkout needed. On conflict,
auto-creates a PR for manual resolution with duplicate prevention.
Adds cascade workflow to ntfy notifications.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-05 15:38:23 -05:00
jmiller cdb2cb6d49 chore: sync updates.xml 02.01.00 [skip ci] 2026-05-05 20:28:42 +00:00
gitea-actions[bot] 79beaef20a chore(version): bump 02.00.05 → 02.01.00 (minor) [skip ci] 2026-05-05 20:28:37 +00:00
jmiller bf00286f52 Merge pull request 'feat: smart visitor detection for GA/GTM' (#8) from feat/smart-visitor-detection into main
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 3s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 3s
2026-05-05 20:27:30 +00:00
Jonathan Miller f49f592cba feat: smart visitor detection for Google Analytics / GTM
Build & Release / Build & Release Pipeline (pull_request) Successful in 15s
Repo Health / Access control (push) Successful in 1s
Joomla Extension CI / Lint & Validate (pull_request) Failing after 3s
Joomla Extension CI / Tests (PHP 8.2) (pull_request) Has been skipped
Repo Health / Access control (pull_request) Successful in 1s
Joomla Extension CI / Tests (PHP 8.3) (pull_request) Has been skipped
Joomla Extension CI / Release Readiness Check (pull_request) Successful in 2s
Repo Health / Release configuration (push) Failing after 3s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 3s
PR Check / Validate PR (pull_request) Successful in 21s
Repo Health / Release configuration (pull_request) Failing after 3s
Repo Health / Scripts governance (pull_request) Successful in 3s
Repo Health / Repository health (pull_request) Failing after 4s
Push anonymised visitor properties (login status, user group, page type)
to the dataLayer before GTM/GA4 loads. Sets GA4 user_properties for
persistent session-scoped dimensions. No PII is sent. Default enabled
when GTM or GA4 is active.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-05 15:26:30 -05:00
Jonathan Miller bbdeed3c8e chore: set platform to joomla
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Has been cancelled
Repo Health / Scripts governance (push) Has been cancelled
Repo Health / Repository health (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-05 15:22:26 -05:00
Jonathan Miller b0e2804267 fix: WORKFLOWS_DIR should be .gitea/workflows not .github/workflows
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 2s
Repo Health / Scripts governance (push) Successful in 2s
Repo Health / Repository health (push) Failing after 3s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-05 14:59:34 -05:00
Jonathan Miller a534696821 fix: stable release = minor version bump (XX.YY+1.00)
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 2s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 2s
Changed from major bump to minor bump on PR merge to main.
Pre-releases still patch bump with rollover.

Versioning policy:
  stable (merge to main): 03.00.01 → 03.01.00 (minor+1, reset patch)
  pre-release (manual):   03.00.01 → 03.00.02 (patch+1, rollover at 99)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-05 14:38:09 -05:00
Jonathan Miller e691db7986 fix: include element name in stable release title and overwrite releases
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 2s
Repo Health / Scripts governance (push) Successful in 2s
Repo Health / Repository health (push) Failing after 2s
Release title now: "mokodpcalendarapi 02.00.00 (stable)" instead of
"v01 (latest: 02.00.00)". Deletes previous stable release before
creating new one (no accumulation).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-04 13:52:17 -05:00
Jonathan Miller 06066d5d22 feat: cascade delete lesser pre-releases on promotion
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 3s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 3s
stable → deletes rc, beta, alpha, dev
rc → deletes beta, alpha, dev
beta → deletes alpha, dev
alpha → deletes dev
dev → nothing

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-04 13:36:15 -05:00
Jonathan Miller 7d822b0e1b feat: delete pre-release channels on stable release
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 3s
Repo Health / Scripts governance (push) Successful in 2s
Repo Health / Repository health (push) Failing after 2s
When a stable release is created, automatically deletes development,
alpha, beta, and release-candidate releases and tags.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-04 13:33:51 -05:00
Jonathan Miller 768a128086 fix: stable release = major version bump (XX+1.00.00)
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 2s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 3s
Repository Cleanup / Clean Merged Branches (push) Successful in 9s
Security Audit / Dependency Audit (push) Successful in 3s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 18:44:25 -05:00
Jonathan Miller fe272fa680 fix: correct version bump logic for stable/pre-release
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 3s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 2s
- Stable (PR merge to main): minor bump, reset patch (01.00.XX → 01.01.00)
- Pre-release (manual): patch bump (01.00.07 → 01.00.08)
- Rollover: patch 99 → minor+1, minor 99 → major+1

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 18:30:22 -05:00
Jonathan Miller abe7b8ccd2 chore: remove .github/ — using .gitea/ for all CI/templates
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 3s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 3s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 18:19:21 -05:00
gitea-actions[bot] de82d669ef chore: enrich .mokostandards with build/deploy/scripts
Repo Health / Access control (push) Has been cancelled
Repo Health / Release configuration (push) Has been cancelled
Repo Health / Scripts governance (push) Has been cancelled
Repo Health / Repository health (push) Has been cancelled
2026-05-02 18:13:14 -05:00
gitea-actions[bot] b3d0e78337 chore: add XML .mokostandards manifest
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Has been cancelled
Repo Health / Scripts governance (push) Has been cancelled
Repo Health / Repository health (push) Has been cancelled
2026-05-02 18:06:07 -05:00
Jonathan Miller ee53b97258 fix: add patch version bump to pre-release workflow
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 2s
Repo Health / Scripts governance (push) Successful in 2s
Repo Health / Repository health (push) Failing after 2s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 17:01:17 -05:00
Jonathan Miller 74f6d2a8be chore: remove auto-deploy workflow (deploy is manual only)
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 3s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 3s
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 16:41:55 -05:00
Jonathan Miller 3e818e730a feat: add pre-release workflow for manual dev/alpha/beta/rc builds
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 2s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 2s
Triggered via workflow_dispatch with stability channel selection.
Builds zip, creates Gitea pre-release, updates updates.xml.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 16:39:22 -05:00
Jonathan Miller 2e8489b8aa feat: add notify, pr-check, security-audit, cleanup workflows
Repo Health / Access control (push) Successful in 1s
Repo Health / Release configuration (push) Failing after 2s
Repo Health / Scripts governance (push) Successful in 3s
Repo Health / Repository health (push) Failing after 2s
- notify.yml: ntfy push on release success or workflow failure
- pr-check.yml: gate PRs with lint, manifest validation, build test
- security-audit.yml: weekly + PR dependency vulnerability scanning
- cleanup.yml: weekly merged branch + old run cleanup

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-02 16:29:41 -05:00
Jonathan Miller 7c98d5f7eb fix: overwrite release instead of prepending version history [skip ci] 2026-05-02 15:57:29 -05:00
jmiller 922d88ee31 chore: sync updates.xml stable 02.00.05 [skip ci] 2026-05-01 17:07:50 +00:00
gitea-actions[bot] 8c7a27fdf4 chore: update stable SHA-256 for 02.00.05 [skip ci] 2026-05-01 17:07:50 +00:00
gitea-actions[bot] 9d16296692 chore(version): bump 02.00.04 → 02.00.05 [skip ci] 2026-05-01 17:07:46 +00:00
Jonathan Miller 07759c4b8e chore: clean trigger [skip ci] 2026-05-01 12:07:36 -05:00
Jonathan Miller 77dc21e82d chore: trigger stable release 02.00.04
Create Release / Build Release Package (push) Successful in 8s
2026-05-01 12:07:33 -05:00
Jonathan Miller e674c6f675 fix: restore v02.00.04 versions + fixed workflows [skip ci] 2026-05-01 12:04:23 -05:00
jmiller be9e12c09b chore: sync updates.xml stable 01.00.27 [skip ci] 2026-05-01 16:36:06 +00:00
gitea-actions[bot] 0ac7009cbd chore: update stable SHA-256 for 01.00.27 [skip ci] 2026-05-01 16:36:05 +00:00
gitea-actions[bot] 5e6f68c534 chore(version): bump 01.00.26 → 01.00.27 [skip ci] 2026-05-01 16:36:01 +00:00
Jonathan Miller d2769c5b5a Merge branch 'dev'
Create Release / Build Release Package (push) Successful in 8s
# Conflicts:
#	.gitea/workflows/release.yml
#	.gitea/workflows/update-server.yml
#	.gitignore
#	CHANGELOG.md
#	README.md
#	docs/JOOMLA_DEVELOPMENT.md
#	docs/QUICK_START.md
#	docs/README.md
#	docs/RELEASE_PROCESS.md
#	docs/ROADMAP.md
#	docs/WORKFLOW_GUIDE.md
#	src/html/mod_menu/horizontal.php
#	src/index.php
#	src/language/en-GB/tpl_mokoonyx.ini
#	src/language/en-US/tpl_mokoonyx.ini
#	src/media/css/template.css
#	src/media/css/theme/dark.standard.css
#	src/media/css/theme/light.standard.css
#	src/media/js/template.js
#	src/media/vendor/bootstrap-toc/bootstrap-toc.css
#	src/script.php
#	src/templateDetails.xml
#	src/templates/dark.custom.css
#	src/templates/light.custom.css
#	updates.xml
2026-05-01 11:34:37 -05:00
jmiller 6bdf470659 chore: sync updates.xml development 02.00.04 [skip ci] 2026-05-01 16:27:57 +00:00
gitea-actions[bot] 52e271b3f6 chore: update development SHA-256 for 02.00.04 [skip ci] 2026-05-01 16:27:56 +00:00
gitea-actions[bot] 1af855e6a3 chore(version): bump 02.00.03 → 02.00.04 [skip ci] 2026-05-01 16:27:52 +00:00
gitea-actions[bot] 8d0d0f29db chore: update updates.xml (development: 01.00.27-dev) [skip ci] 2026-05-01 16:27:43 +00:00
jmiller 5cb12b5ed4 chore: sync updates.xml from [skip ci] 2026-05-01 16:27:43 +00:00