From 8df1fc24524db0a24aab35d3b03aa418f6c4b8fc Mon Sep 17 00:00:00 2001 From: Danh Le Date: Wed, 10 Jun 2026 14:44:32 -0700 Subject: [PATCH 1/2] release: 1.0.9 + fix workflow_dispatch deploy (#26) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.0.9 is a docs-only release that ships the listing-copy accuracy pass from #25 plus a CI fix: - Deploy workflow now reads 'Stable tag:' from readme.txt and passes it to the 10up action as VERSION. The action's default derivation uses GITHUB_REF, which under workflow_dispatch resolves to refs/heads/main and made the action try to write to tags/refs/heads/... — that's why the previous manual sync failed before committing to trunk. Reading from readme.txt works for both tag pushes and manual dispatches. Plugin code is unchanged from 1.0.8. --- .github/workflows/deploy-to-wp-org.yml | 27 ++++++++++++++++++++++++-- CHANGELOG.md | 9 +++++++++ odr-image-optimizer.php | 4 ++-- readme.txt | 9 ++++++++- 4 files changed, 44 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deploy-to-wp-org.yml b/.github/workflows/deploy-to-wp-org.yml index 3b7d8ee..c5fa806 100644 --- a/.github/workflows/deploy-to-wp-org.yml +++ b/.github/workflows/deploy-to-wp-org.yml @@ -7,8 +7,18 @@ name: Deploy to WordPress.org # WPORG_SVN_USERNAME — WordPress.org username (case-sensitive: odanree) # WPORG_SVN_PASSWORD — SVN password from wordpress.org "Account & Security" # -# Tag must match the version in readme.txt's "Stable tag:" — the action reads -# that value to know which SVN tag to create. +# Triggers: +# - push to a v* tag → ships a new release; the tag must match +# "Stable tag:" in readme.txt (the `v` prefix is git-only). +# - workflow_dispatch → re-syncs main → SVN trunk/ without cutting a +# new release. Useful for readme polish on top of an existing tag. +# +# Version resolution: +# The 10up action's default version derivation breaks under +# workflow_dispatch (GITHUB_REF=refs/heads/main, which it tries to +# write to tags/refs/heads/...). We always read "Stable tag:" from +# readme.txt and pass it explicitly so both triggers land on the +# correct SVN tag. on: push: @@ -24,9 +34,22 @@ jobs: - name: Checkout uses: actions/checkout@v4 + - name: Read Stable tag from readme.txt + id: stable + shell: bash + run: | + version="$(grep -E '^Stable tag:' readme.txt | head -1 | sed -E 's/^Stable tag: *//' | tr -d '\r ')" + if [ -z "$version" ]; then + echo "Could not parse 'Stable tag:' from readme.txt" >&2 + exit 1 + fi + echo "version=$version" >> "$GITHUB_OUTPUT" + echo "Resolved Stable tag: $version" + - name: WordPress Plugin Deploy uses: 10up/action-wordpress-plugin-deploy@stable env: SVN_USERNAME: ${{ secrets.WPORG_SVN_USERNAME }} SVN_PASSWORD: ${{ secrets.WPORG_SVN_PASSWORD }} SLUG: odr-image-optimizer + VERSION: ${{ steps.stable.outputs.version }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 8caf63d..23492b7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.0.9] - 2026-06-10 + +### Fixed + +- **Docs:** Listing copy on WordPress.org corrected. Admin menu location (top-level, not under Settings), FAQ toggle list aligned with `register_setting` in `class-settings.php`, missing 1.0.1 changelog entry restored, 1.0.8 upgrade notice added. +- **Docs:** Performance results table now hedged as "reference test site" rather than read as a universal guarantee. +- **Docs:** Removed personal email from the Credits block to reduce scraping. Removed `== Screenshots ==` section until banner/icon/screenshots are produced in `.wordpress-org/`. +- **CI:** `deploy-to-wp-org.yml` now resolves the SVN tag from `Stable tag:` in `readme.txt` instead of inferring from `GITHUB_REF`. Previous behaviour created paths like `tags/refs/heads/main` on `workflow_dispatch` runs and aborted before committing to trunk. + ## [1.0.8] - 2026-06-10 ### Fixed diff --git a/odr-image-optimizer.php b/odr-image-optimizer.php index ebcc106..cdc5009 100644 --- a/odr-image-optimizer.php +++ b/odr-image-optimizer.php @@ -13,7 +13,7 @@ * Plugin Name: ODR Image Optimizer * Plugin URI: https://github.com/odanree/odr-image-optimizer * Description: Professional high-performance image suite. Features SOLID-compliant WebP conversion, intelligent LCP preloading, and automated critical path cleanup for a 100/100 Lighthouse score. - * Version: 1.0.8 + * Version: 1.0.9 * Author: Danh Le * Author URI: https://danhle.net * License: GPL v2 or later @@ -23,7 +23,7 @@ * Requires at least: 6.0 * Requires PHP: 8.1 * Tested up to: 7.0 - * Stable tag: 1.0.8 + * Stable tag: 1.0.9 * Tags: images, performance, webp, lcp, speed, optimizer */ diff --git a/readme.txt b/readme.txt index d4bf7c4..1a03827 100644 --- a/readme.txt +++ b/readme.txt @@ -4,7 +4,7 @@ Tags: images, performance, webp, speed, optimizer Requires at least: 6.0 Tested up to: 7.0 Requires PHP: 8.1 -Stable tag: 1.0.8 +Stable tag: 1.0.9 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html @@ -65,6 +65,10 @@ No. ODR works on all images, new and existing. Simply activate and the plugin ha == Changelog == += 1.0.9 = +* Docs: Listing copy accuracy pass — admin menu location, FAQ toggle list, missing 1.0.1 entry, 1.0.8 upgrade notice, hedged performance numbers, removed personal email from credits, removed Screenshots section pending real screenshots. +* CI: Deploy workflow resolves the SVN tag from `Stable tag:` in `readme.txt`, so `workflow_dispatch` runs no longer try to create `tags/refs/heads/...` from the branch ref. + = 1.0.8 = * Fix: Move image backups out of the plugin folder. Backups now live under `wp-content/uploads/odr-image-optimizer/backups//` instead of a `.backups` directory next to each media file, per WordPress.org plugin guidelines. Reverts of images optimized on older versions still read from the legacy location as a one-time fallback. * Chore: Remove non-permitted distribution files (development sed script, build-artifact zips) from the plugin root. @@ -119,6 +123,9 @@ No. ODR works on all images, new and existing. Simply activate and the plugin ha == Upgrade Notice == += 1.0.9 = +Documentation-only release. The listing copy on WordPress.org now matches the actual settings UI; no plugin code changes. + = 1.0.8 = Image backups have moved out of the plugin folder. Existing backups continue to work; new optimizations write to wp-content/uploads/odr-image-optimizer/backups/ for WordPress.org guideline compliance. From f0b08ed83d7ebdc381a082c73652e3cd056dce1c Mon Sep 17 00:00:00 2001 From: Danh Le Date: Wed, 10 Jun 2026 15:15:27 -0700 Subject: [PATCH 2/2] release: 1.0.10 (re-ship of botched 1.0.9) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.0.9 was tagged but never properly shipped: PR #26 (version bump + workflow fix) was stacked on PR #25's branch and merged into that branch instead of main. When #25's branch was auto-deleted after merge, #26's merge commit was orphaned and never reached main. The v1.0.9 tag was then cut against #25's merge commit, so trunk and tags/1.0.9 both shipped with 'Stable tag: 1.0.8' inside — which is why the listing page never updated. This release cherry-picks the orphaned #26 commit onto main and bumps to 1.0.10 so the readme polish + workflow fix actually go out. The 1.0.9 SVN tag stays in the directory as inert cruft; tag deletion is non-trivial and pointless once Stable tag points away from it. No code changes vs 1.0.8 — this is docs + CI only. --- CHANGELOG.md | 6 +++++- odr-image-optimizer.php | 4 ++-- readme.txt | 9 +++++---- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 23492b7..0f5f176 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [1.0.9] - 2026-06-10 +## [1.0.10] - 2026-06-10 ### Fixed @@ -14,6 +14,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **Docs:** Removed personal email from the Credits block to reduce scraping. Removed `== Screenshots ==` section until banner/icon/screenshots are produced in `.wordpress-org/`. - **CI:** `deploy-to-wp-org.yml` now resolves the SVN tag from `Stable tag:` in `readme.txt` instead of inferring from `GITHUB_REF`. Previous behaviour created paths like `tags/refs/heads/main` on `workflow_dispatch` runs and aborted before committing to trunk. +### Notes + +- 1.0.9 was created as an SVN tag (`tags/1.0.9/`) but its contents were wrong: the stacked PR that bumped the version was merged into its base branch (`docs/readme-accuracy-pass`) instead of `main`, so the merge commit was orphaned when the base branch got deleted. The `v1.0.9` git tag pointed at the previous commit and shipped trunk with `Stable tag: 1.0.8`. 1.0.10 cherry-picks the orphan changes and ships them properly. Don't reuse the 1.0.9 SVN tag — it stays as inert cruft in the directory. + ## [1.0.8] - 2026-06-10 ### Fixed diff --git a/odr-image-optimizer.php b/odr-image-optimizer.php index cdc5009..703128b 100644 --- a/odr-image-optimizer.php +++ b/odr-image-optimizer.php @@ -13,7 +13,7 @@ * Plugin Name: ODR Image Optimizer * Plugin URI: https://github.com/odanree/odr-image-optimizer * Description: Professional high-performance image suite. Features SOLID-compliant WebP conversion, intelligent LCP preloading, and automated critical path cleanup for a 100/100 Lighthouse score. - * Version: 1.0.9 + * Version: 1.0.10 * Author: Danh Le * Author URI: https://danhle.net * License: GPL v2 or later @@ -23,7 +23,7 @@ * Requires at least: 6.0 * Requires PHP: 8.1 * Tested up to: 7.0 - * Stable tag: 1.0.9 + * Stable tag: 1.0.10 * Tags: images, performance, webp, lcp, speed, optimizer */ diff --git a/readme.txt b/readme.txt index 1a03827..66f8396 100644 --- a/readme.txt +++ b/readme.txt @@ -4,7 +4,7 @@ Tags: images, performance, webp, speed, optimizer Requires at least: 6.0 Tested up to: 7.0 Requires PHP: 8.1 -Stable tag: 1.0.9 +Stable tag: 1.0.10 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html @@ -65,9 +65,10 @@ No. ODR works on all images, new and existing. Simply activate and the plugin ha == Changelog == -= 1.0.9 = += 1.0.10 = * Docs: Listing copy accuracy pass — admin menu location, FAQ toggle list, missing 1.0.1 entry, 1.0.8 upgrade notice, hedged performance numbers, removed personal email from credits, removed Screenshots section pending real screenshots. * CI: Deploy workflow resolves the SVN tag from `Stable tag:` in `readme.txt`, so `workflow_dispatch` runs no longer try to create `tags/refs/heads/...` from the branch ref. +* Note: 1.0.9 was created as an SVN tag but never actually shipped — the stacked PR carrying the version bump merged into its base branch instead of `main`, so its `Stable tag` value came out wrong. 1.0.10 is the real ship vehicle. = 1.0.8 = * Fix: Move image backups out of the plugin folder. Backups now live under `wp-content/uploads/odr-image-optimizer/backups//` instead of a `.backups` directory next to each media file, per WordPress.org plugin guidelines. Reverts of images optimized on older versions still read from the legacy location as a one-time fallback. @@ -123,8 +124,8 @@ No. ODR works on all images, new and existing. Simply activate and the plugin ha == Upgrade Notice == -= 1.0.9 = -Documentation-only release. The listing copy on WordPress.org now matches the actual settings UI; no plugin code changes. += 1.0.10 = +Documentation-only release. The listing copy on WordPress.org now matches the actual settings UI; no plugin code changes. (Skipped 1.0.9 — the tag exists in SVN but was built from an orphan merge commit.) = 1.0.8 = Image backups have moved out of the plugin folder. Existing backups continue to work; new optimizations write to wp-content/uploads/odr-image-optimizer/backups/ for WordPress.org guideline compliance.