Skip to content

Some plugin versions unavailable when not tagged in SVN #15

@retlehs

Description

@retlehs

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

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 trunk to dev-trunk and 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 version field 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    known issueKnown limitations or upstream issues

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions