Rentiva v4.37.3 — CI lint hotfix'i
v4.37.2'nin merge sonrası CI'da bıraktığı tek bir WPCS sniff — "Opening PHP tag must be on a line by itself" — hero template'inde fail oldu. v4.37.3 bloğu yeniden yapılandırıyor — PHP açılış tag'i tek başına satırda. Sadece lint, davranış değişikliği yok.
Ne kırıldı
v4.37.2 avatar <img src> için dual-escape dalı tanıttı (yeni SVG data URI fallback için esc_attr(), diğer her şey için esc_url()). Dal kompakt yazılmıştı:
<?php if (!empty($data['avatar_url'])) :
// 7 satır yorum + değişken atamaları
$mhm_avatar_url = (string) $data['avatar_url'];
$mhm_is_inline_svg = strpos($mhm_avatar_url, 'data:image/svg+xml') === 0;
?>
<img src="<?php echo $mhm_is_inline_svg ? esc_attr(...) : esc_url(...); ?>" />
<?php endif; ?>
WPCS Generic.PHP.LowerCaseKeyword companion sniff'i line 19'u — <?php if (...) : ardından multi-statement body gelen — ihlal olarak değerlendiriyor. Block birden fazla statement boyunca koşuyorsa PHP açılış tag'i tek başına satırda olmalı.
Release prep'i nasıl atladı
Release prep'te ZIP paketleme öncesi çalıştırdığımız script composer phpcs:release, sadece release dosyalarına scope'lu:
phpcs:release: phpcs --standard=phpcs.xml \
mhm-rentiva.php uninstall.php src templates assets/blocks
CI ise composer phpcs koşturuyor (:release yok), bu da tests/ dahil tüm proje, daha geniş kurallarla. Hero template her iki scope'taydı, ama tetikleyen sniff sadece daha geniş CI yapılandırmasında fire ediyor.
KB'ye ders: gelecekteki release PR'ları merge'den önce broader composer phpcs koşturmalı, sadece phpcs:release değil. İkisi birbirinin yerine geçmiyor.
Düzeltme
<?php
// (8 satır yorum)
$mhm_avatar_url = (string) ( $data['avatar_url'] ?? '' );
$mhm_is_inline_svg = strpos($mhm_avatar_url, 'data:image/svg+xml') === 0;
?>
<?php if ($mhm_avatar_url !== '') : ?>
<img src="..." />
<?php endif; ?>
<?php kendi satırını açıyor. Değişken atamaları ayrı blok. Conditional tek satır. Hero partial'ın geri kalanıyla aynı şekil (Member %s bloğu, rozet dalı).
Güncellemeli misin?
v4.37.2'yi production'da koşturuyorsan: hayır, bu güncelleme gerekli değil. Runtime aynı. v4.37.3 repo'daki CI badge'in yeşil kalması ve testing.yml workflow'unun güvenilir gate olarak kalması için var.
Testler
- PHPUnit: 1007 / 3208 / 7 skipped — v4.37.2'den değişmedi
- PHPCS: 0 hata (tüm proje)
