mirror of
https://github.com/wp-graphql/wp-graphql-woocommerce.git
synced 2026-08-14 12:53:44 +02:00
* fix: address WordPress.org plugin review feedback - Prefix the session transaction queue transient with the plugin's graphql_woocommerce_ namespace instead of the generic "woo_" word, to avoid collisions (Plugin Directory: prefix data storage). - Declare the WooCommerce dependency via the "Requires Plugins: woocommerce" plugin header. - Bump README.txt "Tested up to" to 7.0. - Ship composer.json in the distributed plugin (drop it, and composer.lock, from composer archive excludes) so the build is reproducible/reviewable. * chore: rename plugin to "GraphQL for eCommerce" for trademark compliance The WordPress.org plugin review flagged the display name/slug for beginning with the "WPGraphQL" trademark (and the "WooGraphQL" portmanteau of the WooCommerce mark), which can imply official affiliation. - Display name (plugin header + readme title) -> "GraphQL for eCommerce". - Slug/text domain -> "graphql-for-ecommerce" (header, all i18n string literals, and the PHPCS WordPress.WP.I18n text_domain config). - Update user-facing notices/errors that named the old plugin. "WooGraphQL" remains the project's informal nickname (repo, docs, community), just not in the WordPress.org directory's official name/slug. Internal file names and GitHub URLs are unchanged. * fix: keep test-only dev deps out of the committed composer.json The committed manifest mirrors develop (lint/stan dev deps only); CI adds the test suite deps at runtime via `composer installTestEnv`. A previous commit captured the installTestEnv-modified composer.json, desyncing it from composer.lock and breaking `composer install` in CI. * chore: regenerate composer.lock (refresh dev dependencies) Regenerate the lock from the manifest so it is in sync (fixes the CI `composer install` failure) and refresh dependencies in the process — firebase/php-jwt v7.0.4 -> v7.1.0 plus 11 others, with vendor-prefixed re-strauss'd to match. Full wpunit suite passes against the updated deps (305 tests, 835 assertions). * chore: rename text domain in createdVia/attribution strings from #1018 #1018 (createdVia + order attribution) merged into develop after the rename commit was authored, so its new i18n strings still used the old 'wp-graphql-woocommerce' text domain. Update them to 'graphql-for-ecommerce' to match the rename.
145 lines
6.2 KiB
XML
145 lines
6.2 KiB
XML
<?xml version="1.0"?>
|
|
<ruleset name="WordPress Coding Standards for WPGraphQL Plugins" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/squizlabs/PHP_CodeSniffer/master/phpcs.xsd">
|
|
<description>Sniffs for the WPGraphQL ecosystem - WooGraphQL</description>
|
|
|
|
<!-- What to scan: include any root-level PHP files, and the /src folder -->
|
|
<file>./wp-graphql-woocommerce.php</file>
|
|
<file>./access-functions.php</file>
|
|
<file>./includes/</file>
|
|
<exclude-pattern>/vendor/</exclude-pattern>
|
|
<exclude-pattern>/vendor-prefixed/</exclude-pattern>
|
|
<exclude-pattern>/node_modules/</exclude-pattern>
|
|
<exclude-pattern>/phpstan/</exclude-pattern>
|
|
<exclude-pattern>local/*</exclude-pattern>
|
|
<exclude-pattern>**/tests/**</exclude-pattern>
|
|
<exclude-pattern>/tests/_support/Helper/crud-helpers</exclude-pattern>
|
|
|
|
<!-- How to scan: include CLI args so you don't need to pass them manually -->
|
|
<!-- Usage instructions: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Usage -->
|
|
<!-- Annotated ruleset: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml -->
|
|
|
|
<!-- Show sniff and progress -->
|
|
<arg value="sp"/>
|
|
<!-- Strip the file paths down to the relevant bit -->
|
|
<arg name="basepath" value="./"/>
|
|
<!-- Enable colors in report -->
|
|
<arg name="colors"/>
|
|
<!-- Only lint php files by default -->
|
|
<arg name="extensions" value="php"/>
|
|
<!-- Whenever possible, cache the scan results and re-use those for unchanged files on the next scan. -->
|
|
<arg name="cache" value="tests/_output/cache.json" />
|
|
<!-- Enables parallel processing when available for faster results. -->
|
|
<arg name="parallel" value="20"/>
|
|
<!-- Set severity to 1 to see everything that isn't effectively turned off. -->
|
|
<arg name="severity" value="1" />
|
|
|
|
<!-- Ruleset Config: set these to match your project constraints-->
|
|
|
|
<!--
|
|
Tests for PHP version compatibility.
|
|
https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards#Recomended-additional-rulesets
|
|
-->
|
|
<config name="testVersion" value="7.3-"/>
|
|
|
|
<!--
|
|
Tests for WordPress version compatibility.
|
|
https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/wiki/Customizable-sniff-properties
|
|
-->
|
|
<config name="minimum_wp_version" value="6.1"/>
|
|
|
|
<!-- Rules: WPGraphQL Coding Standards -->
|
|
<!-- https://github.com/AxeWP/WPGraphQL-Coding-Standards/WPGraphQL/ruleset.xml -->
|
|
<rule ref="WPGraphQL">
|
|
<!-- This is needed since we're not using an autoloader -->
|
|
<exclude name="WordPressVIPMinimum.Files.IncludingFile.UsingCustomFunction" />
|
|
<exclude name="WordPressVIPMinimum.Files.IncludingFile.UsingVariable" />
|
|
|
|
<!-- @todo add and remediate -->
|
|
<exclude name="Generic.CodeAnalysis.UnusedFunctionParameter.FoundAfterLastUsed" />
|
|
<exclude name="SlevomatCodingStandard.Variables.UnusedVariable.UnusedVariable" />
|
|
<exclude name="WordPress.Security.EscapeOutput.ExceptionNotEscaped" />
|
|
<!-- @todo review and allowlist -->
|
|
<exclude name="WordPress.WP.Capabilities.Undetermined" />
|
|
<exclude name="WordPressVIPMinimum.Functions.RestrictedFunctions.get_page_by_path_get_page_by_path" />
|
|
<exclude name="WordPressVIPMinimum.Performance.WPQueryParams" />
|
|
<exclude name="WordPressVIPMinimum.Variables.RestrictedVariables.user_meta__wpdb__users" />
|
|
<!-- @todo maybe add later-->
|
|
<exclude name="SlevomatCodingStandard.Functions.DisallowEmptyFunction.EmptyFunction" />
|
|
<exclude name="SlevomatCodingStandard.TypeHints" />
|
|
</rule>
|
|
|
|
<!-- Individual rule configuration -->
|
|
<rule ref="WordPress.NamingConventions.PrefixAllGlobals">
|
|
<exclude-pattern>/tests/</exclude-pattern>
|
|
<properties>
|
|
<!-- Value: replace the function, class, and variable prefixes used. Separate multiple prefixes with a comma. -->
|
|
<property name="prefixes" type="array" value="WPGraphQL\WooCommerce,woographql,WPGRAPHQL_WOOCOMMERCE,WP_GraphQL_WooCommerce,graphql_,wc_graphql_"/>
|
|
</properties>
|
|
</rule>
|
|
<rule ref="WordPress.WP.I18n">
|
|
<properties>
|
|
<!-- Value: replace the text domain used. -->
|
|
<property name="text_domain" type="array" value="graphql-for-ecommerce"/>
|
|
</properties>
|
|
</rule>
|
|
<rule ref="WordPress.WP.Capabilities">
|
|
<properties>
|
|
<!-- Add 3rd-party and custom capabilities -->
|
|
<property name="custom_capabilities" type="array" value="manage_woocommerce,edit_shop_orders" />
|
|
</properties>
|
|
</rule>
|
|
|
|
<!-- Rules to exclude for test files -->
|
|
<rule ref="PSR2.Methods.MethodDeclaration.Underscore">
|
|
<exclude-pattern>/tests/</exclude-pattern>
|
|
</rule>
|
|
<rule ref="SlevomatCodingStandard.Variables.DuplicateAssignmentToVariable">
|
|
<exclude-pattern>/tests/</exclude-pattern>
|
|
</rule>
|
|
<rule ref="Squiz.Commenting.ClassComment.Missing">
|
|
<exclude-pattern>/tests/</exclude-pattern>
|
|
</rule>
|
|
<rule ref="Squiz.Commenting.FileComment.Missing">
|
|
<exclude-pattern>/tests/</exclude-pattern>
|
|
</rule>
|
|
<rule ref="Squiz.Commenting.FileComment.MissingPackageTag">
|
|
<exclude-pattern>/tests/</exclude-pattern>
|
|
</rule>
|
|
<rule ref="Squiz.Commenting.FunctionComment.Missing">
|
|
<exclude-pattern>/tests/</exclude-pattern>
|
|
</rule>
|
|
<rule ref="Squiz.Commenting.FunctionComment.MissingParamTag">
|
|
<exclude-pattern>/tests/</exclude-pattern>
|
|
</rule>
|
|
<rule ref="Squiz.Commenting.FunctionComment.WrongStyle">
|
|
<exclude-pattern>/tests/</exclude-pattern>
|
|
</rule>
|
|
<rule ref="Squiz.Commenting.InlineComment.InvalidEndChar">
|
|
<exclude-pattern>/tests/</exclude-pattern>
|
|
</rule>
|
|
<rule ref="Squiz.Commenting.VariableComment.Missing">
|
|
<exclude-pattern>/tests/</exclude-pattern>
|
|
</rule>
|
|
<rule ref="Squiz.PHP.CommentedOutCode.Found">
|
|
<exclude-pattern>/tests/</exclude-pattern>
|
|
</rule>
|
|
<rule ref="Squiz.PHP.DisallowMultipleAssignments">
|
|
<exclude-pattern>/tests/</exclude-pattern>
|
|
</rule>
|
|
<rule ref="Universal.NamingConventions.NoReservedKeywordParameterNames">
|
|
<exclude-pattern>/tests/</exclude-pattern>
|
|
</rule>
|
|
<rule ref="WordPress.Files.FileName">
|
|
<exclude-pattern>/tests/</exclude-pattern>
|
|
</rule>
|
|
<rule ref="WordPress.NamingConventions.ValidFunctionName.MethodNameInvalid">
|
|
<exclude-pattern>/tests/</exclude-pattern>
|
|
</rule>
|
|
<rule ref="WordPress.WP.AlternativeFunctions">
|
|
<exclude-pattern>/tests/</exclude-pattern>
|
|
</rule>
|
|
<rule ref="WordPressVIPMinimum.Variables.RestrictedVariables.cache_constraints___SERVER__REMOTE_ADDR__">
|
|
<exclude-pattern>/tests/</exclude-pattern>
|
|
</rule>
|
|
</ruleset>
|