Prepare the module for Adobe Commerce Marketplace submission - #2
Open
henry-mosh wants to merge 2 commits into
Open
Prepare the module for Adobe Commerce Marketplace submission#2henry-mosh wants to merge 2 commits into
henry-mosh wants to merge 2 commits into
Conversation
Clear every gate the Marketplace Extension Quality Program runs and add the packaging/docs the submission form requires: - Magento Coding Standard: 0 errors, 0 warnings (was 0/80), verified with magento/magento-coding-standard; PHPCompatibility clean for the declared PHP 8.1-8.4 range. phpcs.xml.dist added for CI parity. - Convert CrawlerMatcher and PathMatcher from static helpers to DI-injected instance classes (interceptable, Magento-idiomatic); Config's pure host-allowlist statics stay by design behind a scoped, justified phpcs:ignore region. - Fix a pre-existing ConfigHostTest expectation: PHP's FILTER_FLAG_NO_RES_RANGE never covered TEST-NET ranges, so the 203.0.113.10 assertion failed on every PHP version. The test now asserts the real boundary (240.0.0.0/4 rejected even when allowlisted); all 18 tests green. - Packaging metadata: authors/support/homepage in composer.json, etc/di.xml marking the API key as sensitive config (excluded from app:config:dump), CHANGELOG.md as the release-notes source, Marketplace-first install instructions in the README, .gitattributes/.gitignore for clean dist archives. - docs/: merchant-facing user guide and installation guide (portal accepts PDF or URL) plus a submission checklist covering the remaining Developer Portal steps and prepared reviewer answers. The validated submission ZIP builds to dist/ (gitignored). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- DeliveryService::saveEntry now logs a warning when the cache backend reports a write failure via save() returning false (previously only thrown exceptions were logged); fail-open behavior unchanged. - README: show the PHPCompatibility phpcs invocation alongside the Magento2 one so the stated 8.1-8.4 claim matches a runnable command. - Submission doc: replace the unconditional "no customer PII" claim with an accurate disclosure that the crawler-requested URL (query string included) and crawler id are transmitted. - Submission doc: clear the ZIP staging directory before rsync so stale deleted files can't ride into rebuilt packages. - Installation guide: document that config (incl. the encrypted API key) survives uninstall in core_config_data, with cleanup and key-revocation steps. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Gets
Citecue_Deliverythrough every automated gate of the Marketplace Extension Quality Program and adds the packaging metadata and documentation the submission form requires. The validated submission ZIP builds todist/(gitignored); the remaining human-only steps are tracked indocs/marketplace-submission.md.Changes
Code quality (EQP's phpcs gate)
phpcs.xml.distadded so CI can enforce the 0/0 baseline.CrawlerMatcherandPathMatcherconverted from static helpers to DI-injected instance classes (interceptable, Magento-idiomatic). Call sites inCrawlerRegistryandDeliveryServiceupdated; behavior unchanged.Config's pure host-allowlist statics are kept deliberately (framework-free, unit-tested SSRF validators) behind a scoped, justifiedphpcs:ignoreregion; ditto oneparse_urlused for log redaction.i18n/en_US.csv).Test fix (pre-existing bug)
ConfigHostTestasserted TEST-NET-3 (203.0.113.10) is rejected as reserved, but PHP'sFILTER_FLAG_NO_RES_RANGEhas never covered TEST-NET ranges — the assertion failed on every PHP version. It now asserts the actual boundary (240.0.0.0/4rejected even when allowlisted; metadata endpoint/loopback/RFC1918/0/8remain covered by existing tests). 18/18 tests green.Packaging & docs
composer.json:authors,support,homepage(theversionfield stays — required for Marketplace ZIP submissions).etc/di.xml: markscitecue_delivery/general/api_keyas sensitive config, excluding it fromapp:config:dump.CHANGELOG.md(source for the portal's release-notes field); README now leads with the Marketplace install path.docs/: merchant-facing user guide + installation guide (portal accepts PDF or URL) and the submission checklist with prepared answers for likely reviewer questions (external API usage, the "cloaking" question)..gitattributes/.gitignorekeep dev-only files out of dist archives.Reviewer notes
phpcs --standard=Magento2exit 0, PHPCompatibility 8.1–8.4 exit 0, PHPUnit 18 tests / 44 assertions, package ZIP structurally validated (composer.json + registration.php at root, names consistent, no VCS/dev files).https://citecue.comas homepage/author URL, andgithub.com/henry-mosh/citecue-magento/issuesas the support link (taken from the README; the canonical remote is nowcitecue/magento2-module, so these may want updating).🤖 Generated with Claude Code