Skip to content

Tag stable releases so PIE can install pinned versions (25.x for PHP 8.4, 26.x for PHP 8.5) #397

Description

@KazeNoYumeX

Hi team, and thanks a lot for OpenSwoole — and for adding PIE support recently! 🙏

I ran into a small snag trying to install it through PIE and wanted to share what I found, in case it's an easy win.

What I'm seeing

pie install openswoole/ext-openswoole:^25.2 (and :^26.2) can't resolve a pinned version — on Packagist only dev-master shows up, so there's no stable version to pin to. The actual output:

$ pie install openswoole/ext-openswoole:^26.2
Could not install package: openswoole/ext-openswoole
Unable to find an installable package openswoole/ext-openswoole for version ^26.2, with minimum stability stable.

(same for ^25.2.)

What I think is happening

The composer.json with "type": "php-ext" looks great and was added to master in 45573e1b7 ("feat: pie", 2026-03-02), then improved in a7a74d31c. The thing is, the current release tags were cut just before that:

  • v26.2.0 — 2026-02-28 (PHP 8.5)
  • v25.2.0 — earlier (PHP 8.4)

Since Packagist reads composer.json per tag and those tags don't include it yet, only dev-master gets published — so PIE has no pinnable php-ext release to resolve.

Would it be possible to…

Cut a fresh tag from the current master (which already carries the right composer.json) whenever it's convenient? A 26.x tag (e.g. v26.2.1) would already cover PHP 8.3–8.5. And if it's easy, a 25.x tag too (e.g. v25.2.1, with the composer.json present on the 25.x line) would let anyone who wants to stay on the 25 line for PHP 8.4 pin it without jumping a major version.

If you get a chance, a quick check that the Packagist webhook/App is active would also help the new tags publish automatically. No urgency at all — happy to help test, or open a PR for anything that'd make this easier on your side.

What I verified

Using PIE with dev-master (currently the 26.2.0 line) on plain php:8.x-cli-alpine images:

  • dev-master builds and installs cleanly (✅ Extension is enabled and loaded), reporting openswoole 26.2.0 on both PHP 8.5.8 and PHP 8.4.22.
  • So the composer.json itself looks spot on — it's just missing from the stable tags, which is why pinned installs can't resolve.

Thanks again for all the work on this! 🙌

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions