-
Notifications
You must be signed in to change notification settings - Fork 4
Description
Problem
Some WordPress plugin/theme authors release new versions to SVN trunk without creating a corresponding SVN tag. WordPress.org serves these as the latest downloadable version, but our composer repository only builds from tagged releases.
Example: optima-express
- wp.org serves v8.4.0 to users (from trunk)
- Our latest available version is 8.3.1 (last tagged release)
- SVN: https://plugins.svn.wordpress.org/optima-express/
- Our repo: https://repo.wp-composer.com/p2/wp-plugin/optima-express.json
This means users requiring these packages via composer may not get the version that wp.org would give them via direct download.
Considerations
- We currently normalize
trunktodev-trunkand exclude it from stable version listings - wp.org provides a downloadable zip for trunk — we could support trunk as an installable version
- Need to determine how many packages are affected (plugins where wp.org
versionfield doesn't match any tagged version)
How wpackagist handles this
When wp.org's reported version doesn't exist in the tagged versions, wpackagist adds it as a pseudo-version pointing to the trunk download URL. The download uses the unversioned zip (/plugin/{slug}.zip) with a ?timestamp= param based on last commit time to avoid Composer caching stale trunk builds.
Ref: wpackagist Update.php, Plugin.php
Relevant discussion from wpackagist: wpengine/wpackagist#475
Key points:
- Ipstenu (WP plugins team) confirmed WP officially recommends tagging every release and is working on disabling trunk as a release mechanism
- Her recommendation: "If the version is trunk, or it's not found, congrats, you're non-compliant with this service, have a nice day."
- wpackagist's current behavior of mapping untagged versions to trunk downloads is acknowledged as a footgun by their own maintainer
- The WP ecosystem is moving away from trunk releases, not toward them