diff --git a/manifest-updater.json b/manifest-updater.json new file mode 100644 index 0000000..b1eb5d8 --- /dev/null +++ b/manifest-updater.json @@ -0,0 +1,28 @@ +{ + "name": "Manifest Updater", + "slug": "manifest-updater", + "version": "1.1.0", + "download_url": "https://gitea.mulligan.casa/ee-extensions/foh-updates/raw/branch/main/manifest-updater/manifest-updater-1.1.0.zip", + "homepage": "https://gitea.mulligan.casa/mmulligan/manifest-updater", + "requires": "6.1", + "tested": "7.0", + "requires_php": "8.1", + "last_updated": "2026-06-23 18:24:11", + "icons": { + "1x": "https://gitea.mulligan.casa/ee-extensions/foh-updates/raw/branch/main/manifest-updater/icon-128x128.png", + "2x": "https://gitea.mulligan.casa/ee-extensions/foh-updates/raw/branch/main/manifest-updater/icon-256x256.png" + }, + "author": "Mike Mulligan", + "author_homepage": "https://gitea.mulligan.casa/mmulligan", + "tags": [ + "updates", + "plugin updates", + "theme updates", + "self-hosted", + "update uri" + ], + "sections": { + "description": "

A tiny, universal, self-hosted updater for plugins and themes. Network-activate
\nit once; any project that opts in via its Update URI header gets WordPress-native
\nupdate notifications, \"View details\", and one-click / auto updates — network-wide,
\nwith no per-project updater code and no tokens.

\n

It's \"Git Updater meets PUC,\" but thin: WordPress already does the hard part
\n(scanning every installed project's header, routing by host, building the update
\ntransient, rendering the row, running the install). This plugin only supplies the
\npiece core can't — reading your JSON manifest and returning the update.

\n

Opt in — the # fragment is the trigger

\n

Append a fragment to the project's Update URI header. The fragment is the only
\ntrigger
(we never sniff paths), so this can't collide with a project that updates
\nsome other way:

\n
# A plugin, JSON manifest:\nUpdate URI: https://your-host/path/to/my-plugin.json#manifest-updater.json\n\n# A theme, JSON manifest (in style.css):\nUpdate URI: https://your-host/path/to/my-theme.json#manifest-updater.json\n
\n\n

The Update URI header also earns the project automatic protection from being
\noverwritten by a same-named wordpress.org plugin/theme — for free, from core.

\n

Then network-activate Manifest Updater (it is Network: true). That's it.

\n

Why it's network-wide (and lets everything else be site-active)

\n

get_plugins() / wp_get_themes() return every installed project regardless of
\nactivation, and the update_plugins / update_themes transients are network-level
\non multisite. So updates surface and install network-wide while the projects
\nthemselves can be site-active, network-active, or inactive. A project no longer
\nhas to be network-active just to receive updates — only this one does.

\n

Manifest format

\n

The PUC (\"Plugin Update Checker\") metadata format — works for plugins and themes.
\nOnly version and download_url are required; everything else enriches the row
\nand the details modal. See example-manifest.json for every supported field:

\n

name, slug, version, download_url, homepage, requires, tested,
\nrequires_php, requires_plugins, last_updated, upgrade_notice, author,
\nauthor_homepage, sections (description/installation/changelog/faq/any
\ncustom tab), icons, banners, banners_rtl, screenshot_url (themes),
\ntranslations, and the optional wp.org-style stats rating/num_ratings/
\ndownloaded/active_installs.

\n

Notes

\n", + "changelog": "

All notable changes to Manifest Updater are documented here. The format follows
\nKeep a Changelog and the project adheres to
\nsemantic versioning.

\n

[1.1.0] - 2026-06-23

\n

Added

\n\n

[1.0.0]

\n

Added

\n" + } +} diff --git a/manifest-updater/icon-128x128.png b/manifest-updater/icon-128x128.png new file mode 100644 index 0000000..6d925cf Binary files /dev/null and b/manifest-updater/icon-128x128.png differ diff --git a/manifest-updater/icon-256x256.png b/manifest-updater/icon-256x256.png new file mode 100644 index 0000000..154be0b Binary files /dev/null and b/manifest-updater/icon-256x256.png differ diff --git a/manifest-updater/manifest-updater-1.1.0.zip b/manifest-updater/manifest-updater-1.1.0.zip new file mode 100644 index 0000000..599d47c Binary files /dev/null and b/manifest-updater/manifest-updater-1.1.0.zip differ