diff --git a/CHANGELOG.md b/CHANGELOG.md index 831ac0f..739632c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,49 @@ Format: [Keep a Changelog 1.1.0](https://keepachangelog.com/en/1.1.0/) — versi --- +## [1.0.0] — 2026-06-09 — Stability milestone + +The plugin reaches version 1.0.0. **There are no functional changes from 0.7.6.** This release is a deliberate version-number signal that the public API is stable. + +### What 1.0.0 commits to + +From this release forward, the following surfaces are considered the **public API** and will not break in any 1.x release: + +- **`wp_usermeta` storage shape**: `radio_state`, `radio_history`, `radio_favourites` — the key names, the per-user model, and the JSON shape of each entry (artist / title / station / station_id / at). +- **The 4-button search URL templates** (`radio_search_urls( $artist, $title )` → spotify / youtube / apple / bandcamp). These have already been ported byte-for-byte to RangerHQ Tuner; locking them here means downstream family members can mirror them indefinitely. +- **The Stations registry shape** (`radio_get_stations_flat()` / `radio_get_stations_grouped()` / `radio_find_station( $id )` return shapes). Custom adapter authors can rely on these. +- **The dedup rule** (sig = lowered `artist|title|station_id`, dedup against the last entry only). This is what `radio_log_track()` enforces; it's stable. +- **The cap rule** (`RADIO_HISTORY_CAP = 500`, FIFO from the front). Stable. +- **The `(unknown)` artist skip** (SomaFM dead-air placeholder is silently dropped from history). Stable. + +Breaking changes to any of the above will go in 2.0.0 — not in 1.x. + +### Why ship 1.0.0 now + +Five days after going live on WordPress.org (2026-06-04) the plugin has 50+ downloads and the architecture has been re-used byte-for-byte by **RangerHQ Tuner** (Chrome Web Store, live 2026-06-09) and structurally re-used by **RangerHQ Buddy** (in wp.org review at time of writing). The pattern has crossed three surfaces (WordPress / Chrome browser / family-shared) and held; the public API is no longer changing every release. + +The 0.x version range implicitly meant *"still iterating, might break things."* That is no longer accurate for this codebase. The 1.0.0 number is honest about what the plugin already is in practice: a mature, stable product backed by a proven cross-platform pattern. + +### What 1.0.0 does NOT change + +- No code touched in any source file +- No new permissions, settings, or admin UI +- No database migration required (storage shape was already locked) +- Existing user state (station / volume / history / favourites) survives intact +- Existing custom CSS / theme integrations continue to work + +### Family context + +This release ships the same day **Tuner v0.3.0 went LIVE on the Chrome Web Store**. Three RangerHQ family members shipped to or staying-in two marketplaces on 2026-06-09: + +- **Radio** v1.0.0 (this release) — wp.org, live +- **Tuner** v0.3.0 — Chrome Web Store, live (the morning of 2026-06-09, ~15.5 hours after submission) +- **Buddy** v0.1.5 — wp.org, in round-2 review + +The family pattern is now publicly proven across two platforms. + +--- + ## [0.7.6] — 2026-06-03 — Plugin metadata cleanup (wp.org pre-review fix) The WordPress.org Plugin Review Team's automated pre-review flagged two issues on 2026-06-03, both metadata-only — none touching the plugin code itself: diff --git a/radio.php b/radio.php index fd80d8f..411d248 100644 --- a/radio.php +++ b/radio.php @@ -5,7 +5,7 @@ * Plugin Name: RangerHQ Radio * Plugin URI: https://davidtkeane.com/rangerhq-radio * Description: A small, focused internet radio player for your WordPress admin. 44 hand-curated stations from SomaFM across 10 genres — ambient, electronic, lounge, rock, metal, jazz, world, reggae, holiday, specials. Plays via HTML5 audio; per-user station + volume + history + favourites; pop-out window for continuous background play. - * Version: 0.7.6 + * Version: 1.0.0 * Requires at least: 5.3 * Requires PHP: 7.4 * Author: David Keane @@ -27,7 +27,7 @@ if ( ! defined( 'ABSPATH' ) ) { exit; } // Plugin coordinates. -if ( ! defined( 'RADIO_VERSION' ) ) { define( 'RADIO_VERSION', '0.7.6' ); } +if ( ! defined( 'RADIO_VERSION' ) ) { define( 'RADIO_VERSION', '1.0.0' ); } if ( ! defined( 'RADIO_FILE' ) ) { define( 'RADIO_FILE', __FILE__ ); } if ( ! defined( 'RADIO_PATH' ) ) { define( 'RADIO_PATH', plugin_dir_path( __FILE__ ) ); } if ( ! defined( 'RADIO_URL' ) ) { define( 'RADIO_URL', plugin_dir_url( __FILE__ ) ); } diff --git a/readme.txt b/readme.txt index 84679ac..77fbe8a 100644 --- a/readme.txt +++ b/readme.txt @@ -4,7 +4,7 @@ Donate link: https://buymeacoffee.com/davidtkeane Tags: radio, music, audio, internet radio, background music Requires at least: 5.3 Tested up to: 7.0 -Stable tag: 0.7.6 +Stable tag: 1.0.0 Requires PHP: 7.4 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html @@ -86,6 +86,9 @@ SomaFM's track-info endpoint (`somafm.com/songs/{station}.json`) is fetched best == Changelog == += 1.0.0 = +* Stability milestone. Same code as 0.7.6, no functional changes — but the version number now signals what the wp.org listing already shows in practice: the architecture (per-user `wp_usermeta` storage shape, 4-button search URL templates, station catalogue format, history dedup rule) is stable. From 1.0.0 forwards, breaking changes go in 2.0.0; everything in 1.x will preserve the public API. Released after five days live on wp.org, 50+ downloads, and the family pattern (per-user storage, four-button search) proven and ported to RangerHQ Tuner (Chrome Web Store) and RangerHQ Buddy (in wp.org review). + = 0.7.6 = * Plugin metadata cleanup following the wp.org pre-review feedback. `Plugin URI` header updated from `https://icanhelp.ie/radio` to `https://davidtkeane.com/rangerhq-radio` (the canonical project page, now live). `Author URI` header updated from `https://rangersmyth.xyz/` to `https://davidtkeane.com` (both old URLs were returning DNS errors or 404). Ownership of the davidtkeane.com domain has been verified to wp.org via DNS TXT record and a domain-matched account email. No code changes, no user-visible behaviour changes — metadata only. @@ -136,6 +139,9 @@ SomaFM's track-info endpoint (`somafm.com/songs/{station}.json`) is fetched best == Upgrade Notice == += 1.0.0 = +Stability milestone — same code as 0.7.6, version number now signals what the plugin already is in practice: mature. From 1.0.0 onwards the public API (storage shape, search URL templates, station data format) is locked; breaking changes will go in 2.0.0. No behaviour change in this update. + = 0.7.6 = Metadata-only update: Plugin URI + Author URI updated to davidtkeane.com following wp.org pre-review feedback. No code changes, no behaviour change.