igbinary PIE

This commit is contained in:
henderkes
2026-07-23 09:16:04 +07:00
parent 347a3c3c11
commit 3b425b6b24
3 changed files with 11 additions and 8 deletions

View File

@@ -2,9 +2,9 @@ ext-igbinary:
type: php-extension type: php-extension
artifact: artifact:
source: source:
type: ghtagtar type: pie
repo: igbinary/igbinary repo: igbinary/igbinary
match: tags/\d+(\.\d+)+$ prefer-stable: false
extract: php-src/ext/igbinary extract: php-src/ext/igbinary
metadata: metadata:
license-files: [COPYING] license-files: [COPYING]

View File

@@ -65,12 +65,15 @@ class PIE implements DownloadTypeInterface, CheckUpdateInterface
$current = array_filter($current, static fn ($v) => $v !== '__unset'); $current = array_filter($current, static fn ($v) => $v !== '__unset');
$releases[] = $current; $releases[] = $current;
} }
// packagist lists newest first including RC/beta/alpha — pick the newest stable release // packagist lists newest first including RC/beta/alpha — pick the newest stable release,
// unless prefer-stable is false, then take the newest tagged release even if it's a prerelease
$first = null; $first = null;
foreach ($releases as $release) { if ($config['prefer-stable'] ?? true) {
if (!preg_match('/[._-]?(?:alpha|a|beta|b|rc)[._-]?\d*$/i', $release['version'] ?? '')) { foreach ($releases as $release) {
$first = $release; if (!preg_match('/[._-]?(?:alpha|a|beta|b|rc)[._-]?\d*$/i', $release['version'] ?? '')) {
break; $first = $release;
break;
}
} }
} }
$first ??= $releases[0] ?? []; $first ??= $releases[0] ?? [];

View File

@@ -101,7 +101,7 @@ class ConfigValidator
'url' => [['url'], ['filename', 'extract', 'version']], 'url' => [['url'], ['filename', 'extract', 'version']],
'bitbuckettag' => [['repo'], ['extract']], 'bitbuckettag' => [['repo'], ['extract']],
'local' => [['dirname'], ['extract']], 'local' => [['dirname'], ['extract']],
'pie' => [['repo'], ['extract']], 'pie' => [['repo'], ['extract', 'prefer-stable']],
'pecl' => [['name'], ['extract', 'prefer-stable']], 'pecl' => [['name'], ['extract', 'prefer-stable']],
'php-release' => [['domain'], ['extract']], 'php-release' => [['domain'], ['extract']],
'custom' => [[], ['func']], 'custom' => [[], ['func']],