Repository navigation
Adopt the shared tools console for manifest validation - #15
Conversation
Port tools/validate.php into the same shape FOSSBilling/FOSSBilling now uses for its tooling: a FOSSBilling\Tools\Manifest\Validator class plus a manifest:validate command behind tools/bin/console. Repo-specific rules are preserved verbatim: package discovery over root directories (excluding tools and dotdirs), the 'type must be module in this repo' rule, and the icon_url containment check. The composer requirements move to the shared tooling baseline (PHP ~8.5, Symfony Console/Finder 8.1) that the CI workflow already runs on.
Codex Review Summary: ✅ CompletedThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
This comment was marked as low quality.
This comment was marked as low quality.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d6c196d089
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
schema-deploy.yml still invoked tools/validate.php, which this PR deletes, so schema deployment on main and workflow_dispatch would exit 1 during the Validate Manifest step and skip the R2 upload. Invoke tools/bin/console manifest:validate as validate.yml already does.
This comment was marked as low quality.
This comment was marked as low quality.
|
Codex Review: Didn't find any major issues. Nice work! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Module icons are the shipped file at <Name>/icon.<ext> (svg, png, webp or avif): the FOSSBilling runtime resolves icons from that file and ignores any manifest declaration. Remove the icon_url property from the schema, replace the containment check with the file rule (at most one icon, no symlinks, absence allowed - mirroring FOSSBilling), delete the field from the two manifests that carried it, and stop sending icon_url to the extensions directory payload. The schema is now identical to the one bundled with FOSSBilling.
This comment was marked as low quality.
This comment was marked as low quality.
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Summary
Ports
tools/validate.phpinto the same shape FOSSBilling/FOSSBilling now uses for all of its tooling: aFOSSBilling\Tools\Manifest\Validatorclass and amanifest:validatecommand behind a sharedtools/bin/console(Symfony Console) entry point. This keeps the manifest validator mirror in sync with the restructuring done in FOSSBilling/FOSSBilling, where the bundled copy of these tools moved from a standalone script to the unifiedtoolsconsole package.What changed
tools/validate.php→tools/src/Manifest/Validator.php+tools/src/Manifest/Command/ValidateCommand.php, registered in a newtools/bin/console(withtools/bootstrap.php).tools/composer.json: addssymfony/console+symfony/finder, PSR-4 autoload forFOSSBilling\Tools\, and the shared tooling baseline of PHP~8.5.0with a platform pin (the validate workflow already runs PHP 8.5).composer.lockregenerated..github/workflows/validate.ymlnow runstools/bin/console manifest:validate.Repo-specific rules preserved verbatim
The validator intentionally differs from the FOSSBilling/FOSSBilling copy where the repositories differ, and those differences are kept:
toolsand dotdirs).type must be "module" in this repo— this repo only publishes modules.Follow-ups tracked elsewhere:
icon.<ext>file instead of the payload field; until then, newly published revisions gradually lose their directory icon (stored values for existing entries remain).<Name>/icon.<ext>convention if it referencesicon_url.