Skip to content

Release 1.1.1: WP.org QA gate (WPCS, PHPStan, Plugin Check) + fixes - #12

Merged
HA-HUB-I merged 3 commits into
mainfrom
release/1.1.1
Oct 28, 2026
Merged

HA-HUB-I merged 3 commits into
mainfrom
release/1.1.1

Conversation

@HA-HUB-I

@HA-HUB-I HA-HUB-I commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Prepares 1.1.1 for WordPress.org and puts every future release behind an automated QA gate.

Plugin fixes (1.1.1)

  • Settings: saving with the password field empty no longer wipes the stored API password.
  • Security: credentials, Site ID and currency are XML-escaped in SOAP requests (a password with & or < used to break them); API error text is escaped before it is shown; API descriptions go through wp_kses_post.
  • Products are requested in the store currency (get_woocommerce_currency()).
  • Category images are reused instead of being downloaded again on every import; temp files are cleaned up on failure.
  • manage_stock gets a real boolean; import queues are no longer autoloaded; uninstall removes all counters.
  • readme: Tested up to: 7.1 (the only Plugin Check error on 1.1.0), Requires at least: 6.5 (needed for Requires Plugins), clearer External Services section, changelog.

QA tooling

  • composer qa = version check + PHPCS (WPCS 3.4 + PHPCompatibilityWP) + PHPStan L5 (WP/WC stubs) + Plugin Check. composer.lock is now tracked.
  • bin/build-zip.php builds the ZIP from .distignore; bin/check-versions.php keeps header/readme/constant/changelog/tag in sync.
  • .gitattributes forces LF so local (Windows) and CI results match.

CI

  • ci.yml (QA): version consistency, php -l on PHP 7.4–8.5, PHPCS with PR annotations, PHPStan, Plugin Check on the built ZIP.
  • release.yml: tag v* → QA → build → GitHub Release → WordPress.org. Builds from the tagged commit (it used to build main), deploys exactly the checked ZIP, manual runs don't deploy to WP.org unless asked.
  • Removed 5 duplicate/broken deploy workflows (two of them both released on every tag).

Test plan

  • Local: PHPCS 0, PHPStan 0, Plugin Check "No errors found" (WP 7.1.3, WC 11.2.1, PHP 8.5)
  • Smoke test on LocalWP: all 3 admin pages render, empty debug.log; SOAP envelope valid with &<>" in credentials; empty password keeps stored one; queue option autoload off
  • QA workflow green on this PR
  • After merge: git tag v1.1.1 && git push origin v1.1.1

Known open item

gencloud.bg has no privacy policy / terms page, so the External Services section has no such links. WP.org reviewers may ask for them.

- composer: PHPCS 3.13 + WPCS 3.4 + PHPCompatibilityWP, PHPStan 2 with
  WordPress/WooCommerce stubs; lock file is now tracked so CI and local
  runs use identical tool versions
- phpcs.xml.dist: WordPress-Extra/Docs, prefix check, PHP 7.4+, WP 6.5+
- bin/build-zip.php builds the distributable ZIP from the root .distignore
- bin/check-versions.php enforces header/readme/constant/changelog/tag agree
- bin/setup-local-site.sh prepares a LocalWP QA site with Plugin Check
- .gitattributes forces LF so PHPCS results match between Windows and CI
…port fixes

- Settings: saving with an empty password field no longer wipes the stored
  API password
- API: credentials, Site ID and currency are XML-escaped (esc_xml); shared
  SOAP envelope builder; API error text is escaped before it reaches the UI
- Products are requested in the store currency; descriptions from the API
  go through wp_kses_post; manage_stock gets a real boolean
- Category images are reused instead of re-downloaded on every import;
  temp files are removed when a sideload fails; dead code removed
- Import queues are stored with autoload off
- Uninstall also removes the created/updated counters
- ABSPATH guards and file docblocks on all PHP files, underscore-prefixed
  methods renamed, SOAP schema property names documented for PHPCS
- readme: Tested up to 7.1, Requires at least 6.5, clearer External
  Services section, 1.1.1 changelog; header WC tested up to 11.2
- ci.yml (QA): version consistency, php -l on PHP 7.4–8.5, PHPCS (WPCS)
  with PR annotations, PHPStan, and Plugin Check on the built ZIP
- release.yml: tag v* -> QA -> build ZIP -> GitHub Release -> WordPress.org.
  Builds from the tagged commit (was always main), deploys exactly the
  checked ZIP contents, manual runs no longer deploy to WP.org by default
- Removed deploy.yml, deploy-assets.yml, deploy-wporg.yml, deploy_wporg.yml
  and plugin-check.yml (duplicated or broken; superseded by the above)
@HA-HUB-I
HA-HUB-I merged commit 675b671 into main Oct 28, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant