Skip to content

Releases: shazzad/github-plugin-updater

0.0.5

Choose a tag to compare

@shazzad shazzad released this 04 Aug 23:48
6c7d0fa

What's New

Two fixes to the update flow. Both were silent — nothing logged, nothing visibly broken, just updates that never appeared or nags that never cleared.

Releases without full metadata were discarded

Release::available() required more than 5 of 8 data fields to be non-empty, which made the optional tested, requires and requires_php fields mandatory. A release carrying only version, date, download_url, download_count and body scored exactly 5, so no update was ever offered.

  • available() now checks only version + download_url.
  • Release::missing_meta() reports which optional fields went unresolved.
  • sanitize_meta_name() strips - and + list markers, not just *, so a README Requirements section using - bullets resolves correctly.
  • The Requirements heading match tolerates CRLF and trailing whitespace.
  • Diagnostics are written to the debug log (under WP_DEBUG) when a release is fetched but unusable, or when metadata cannot be resolved.

The update nag survived the update

WordPress kept showing "You have version X installed. Update to X." until the next full update check.

  • transient_update_plugins() only added entries, never removed them, so a response entry written before the update outlived it. Each branch now clears the entry from the opposite collection.
  • A new upgrader_process_complete handler drops the memoised plugin header and the cached release payload when this plugin is the one that was updated — an admin-initiated update replaces the files and rebuilds the transient in a single request, so both caches were otherwise stale.

Upgrading: no API changes. Consumers on dev-main already have this; consumers pinned to ^0.0.4 should move to ^0.0.5.

0.0.4

Choose a tag to compare

@shazzad shazzad released this 17 Jul 04:58
6537564

What's New

  • Guard Updater::transient_update_plugins() against non-object filter input — fixes a PHP 8 fatal (TypeError in property_exists()) when the pre_set_site_transient_update_plugins filter receives false/null, e.g. from the common set_site_transient( 'update_plugins', null ) force-refresh idiom or another plugin re-setting a cold transient. Mirrors WordPress core's normalization in wp_update_plugins(); behavior for object input is unchanged.

Consumer plugins (e.g. shazzad-wp-logs) should re-run composer update shazzad/github-plugin-updater to bundle this fix.

v0.0.3

Choose a tag to compare

@shazzad shazzad released this 18 Oct 16:17
7af856d

What's Changed

Full Changelog: 0.0.2...0.0.3

v0.0.2

Choose a tag to compare

@shazzad shazzad released this 18 Oct 16:14
62e0f22

What's Changed

Full Changelog: 0.0.1...0.0.2

v0.0.1

Choose a tag to compare

@shazzad shazzad released this 18 Oct 16:03

What's Changed

New Contributors

Full Changelog: https://github.com/shazzad/github-plugin-updater/commits/0.0.1