fix: honest installer success #46

Merged
jmiller merged 2 commits from fix/honest-install-success into dev 2026-07-06 16:23:12 +00:00
Owner

Honest installer success

The package postflight showed the "License Key Required" / next-steps message even when a bundled child extension failed to sub-install. Joomla's package installer only logs a failed child sub-install, so the postflight still runs and falsely reports success.

Change

  • Add a private, fail-open missingChildExtensions($adapter) verifier that reads $adapter->getParent()->getManifest(), iterates <file> entries, derives the #__extensions element (plugins strip a leading plg_<group>_), and confirms each declared child landed (plugins also match folder = group).
  • In postflight, if any child is missing, enqueue an htmlspecialchars-escaped ERROR listing the missing extensions and return before the license / next-steps path.
  • FAILS OPEN — any error/unreadable manifest returns [], so a transient glitch never fakes a failure.

Mirrors MokoSuiteHQ PR #72 and MokoSuiteClient PR #300 (package with plg_<group>_ prefix-strip). php -l passes.

https://claude.ai/code/session_01B9aZHSWbiiZykJD88pYx8R

## Honest installer success The package `postflight` showed the "License Key Required" / next-steps message even when a bundled child extension failed to sub-install. Joomla's package installer only *logs* a failed child sub-install, so the postflight still runs and falsely reports success. ### Change - Add a private, fail-open `missingChildExtensions($adapter)` verifier that reads `$adapter->getParent()->getManifest()`, iterates `<file>` entries, derives the `#__extensions` element (plugins strip a leading `plg_<group>_`), and confirms each declared child landed (plugins also match `folder = group`). - In `postflight`, if any child is missing, enqueue an htmlspecialchars-escaped ERROR listing the missing extensions and `return` **before** the license / next-steps path. - FAILS OPEN — any error/unreadable manifest returns `[]`, so a transient glitch never fakes a failure. Mirrors MokoSuiteHQ PR #72 and MokoSuiteClient PR #300 (package with `plg_<group>_` prefix-strip). `php -l` passes. https://claude.ai/code/session_01B9aZHSWbiiZykJD88pYx8R
jmiller added 1 commit 2026-07-06 16:20:40 +00:00
fix: honest installer success (gate license/next-steps on child install)
Universal: PR Check / Branch Policy (pull_request) Successful in 1s
Universal: PR Check / Validate PR (pull_request) Failing after 5s
Universal: PR Check / Secret Scan (pull_request) Successful in 5s
Universal: Pre-Release / Build Pre-Release (${{ inputs.stability || github.ref_name }}) (push) Successful in 12s
Joomla: Metadata Validation / Validate Joomla Metadata (pull_request) Successful in 31s
Universal: PR Check / Build RC Package (pull_request) Has been cancelled
Universal: PR Check / Report Issues (pull_request) Has been cancelled
0e3c922b7a
The package postflight showed the "License Key Required" / next-steps
message even when a bundled child extension failed to sub-install
(Joomla only logs those failures). Add a fail-open manifest verifier
(missingChildExtensions) that confirms every declared child landed in
#__extensions and enqueues an error + returns before the license path
when any are missing. Fails open so a transient glitch never fakes a
failure.

Claude-Session: https://claude.ai/code/session_01B9aZHSWbiiZykJD88pYx8R
jmiller added 1 commit 2026-07-06 16:20:50 +00:00
chore(version): pre-release bump to 06.00.21-dev [skip ci]
RC Revert / Rename rc/ back to dev/ (pull_request) Has been skipped
Branch Cleanup / Delete merged branch (pull_request) Successful in 2s
4212ce1ded
jmiller merged commit b3bb63c8dc into dev 2026-07-06 16:23:12 +00:00
jmiller deleted branch fix/honest-install-success 2026-07-06 16:23:13 +00:00
Sign in to join this conversation.
No Reviewers
Priority -
Type -
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MokoConsulting/MokoSuiteField#46