Yeni Teklif, Katkıda Bulunanlar için Deneysel API'leri Gutenberg'den WordPress Çekirdeğine Birleştirmeyi Durdurmaya Çağrıyor
Yayınlanan: 2022-08-11Gutenberg'den gelen deneysel API'leri WordPress çekirdeğiyle birleştirme uygulaması yakında sona eriyor olabilir. Automattic sponsorluğunda katkıda bulunan Adam Zielinski tarafından yayınlanan yeni bir teklif, katkıda bulunanların API'leri çekirdekte birleştirmeden önce stabilize etmelerini istiyor.
Yıllar boyunca, Zielinski'nin Nisan ayında bu sayı için açtığı bir bilette denetlediği Gutenberg eklentisinden yaklaşık 280 deneysel API birleştirildi. Editör(ler)de yineleme ile hızlı hareket etme dürtüsünü WordPress'in geriye dönük uyumluluk taahhüdüne karşı dengelerken, deneysel API'lerin sayısı savunulamaz hale geldi ve bunları çekirdeğe birleştirme uygulaması şimdi aktif olarak yeniden değerlendiriliyor.
Resmi olarak, deneysel API'ler, değişmesi beklendiği için üçüncü taraf kullanımını caydırmak için işaretlenmiştir. Pratikte, blok düzenleyici için inşa eden insanlar, çekirdekte oldukları ve bu API'lerin etkinleştirdiği özellikleri genişletmek istedikleri için yine de bunları kullanıyor.
Zielinski, "Eklenti ve tema yazarları, herhangi bir zamanda geriye dönük uyumsuz bir şekilde kaldırılabilecek veya değiştirilebilecek __experimental
özelliklere güvenmek zorunda kalıyor," dedi Zielinski, birçok geliştiricinin son birkaç yıldır projeyle ilgili hayal kırıklığını ve endişelerini yansıtıyor. “Ciddi bir bakım yükü. Her yeni Gutenberg/WordPress sürümü, olası değişiklikleri bozmak anlamına gelir.”
WordPress çekirdek işleyicisi Peter Wilson, deneysel API'leri son teknoloji ürünlerle sınırlamaktan yana olduğunu söyleyerek bilete yorum yaptı. Bu değişikliğe duyulan ihtiyacı dile getirerek, bu temel deneysel API'lerin ekosistem üzerinde sahip olduğu bir dizi olumsuz etkiden bahsetti:
- Güvenilirliğe güvenmedikleri için temel görevleri kolaylaştırmak için belirli kitaplık özelliklerini kullanmak istemeyen çekirdek taahhütçiler
- geliştiriciler artık WP istemci sitelerini yükseltmiyor. Yıllardır geriye dönük uyumluluğu korumaya çalışan çekirdek bir taahhütçü olarak bu beni hayal kırıklığına uğratıyor. Bir güvenlik ekibi üyesi olarak, bu büyük ölçüde endişe vericidir.
wp.*
globals'e güvenmek yerine paketlerin kopyalarını temalara ve eklentilere dahil etmeye karar veren geliştiriciler. Bu yine güvenlik açısından beni ilgilendiriyor, ancak JavaScript yükünü geriye dönük uyumluluğu sürdürmekten çok daha fazla artırıyor.- küçük sürümlerde geriye dönük uyumluluk kesintileri raporları: “5.9.1 sürümünün sitelerimizde blok düzenleyicinin dışındaki bir grup resmin yanıt verme hızını bozmasını beklemiyorsunuz”
- çok kararsız oldukları için çekirdek blokları asla kullanmamayı düşünen geliştiriciler: "Çekirdek blokları kullanmayı/uzatmayı bıraktım çünkü çok fazla değiştiler ve ACF Bloklarını kullanıyorum, böylece en azından yapmayacak bloklar yapabileceğimi biliyorum. kırmak. Kullanıcı arayüzünün çekirdek bloklar kadar iyi olmadığı kabul edildi, ancak her zaman kırılan bloklar üzerinde istikrarı alacağım.”
Gutenberg eklentisi, katkıda bulunanların özellikleri çekirdeğe birleştirmeden önce cilalarken, geriye dönük uyumlulukta kesintilerin beklendiği bir özellik eklentisi olarak işlev görmesi gerekiyordu. Bu yaklaşımın köklerine geri dönmek ve editörü daha az deneysel hale getirmek bu önerinin merkezinde yer almaktadır.
Wilson, “Sürümler arasındaki istikrarsızlık, blok editörlerin en büyük dış savunucularından bazılarını şimdiden yabancılaştırmaya başladı” dedi.
Bu istikrarsızlık düzeyini korumak, insanları WordPress üzerine inşa etmekten caydırabilir ve onları farklı bir şekilde yönetilen daha basit projelere itebilir. Deneysel API'lere güvenme ihtiyacının geliştiricileri daha fazla ürün oluşturmaktan caydırması ve blok düzenleyicinin benimsenmesini yavaşlatması mümkündür.
WP Engine sponsorluğunda katkıda bulunanlar Nick Diego, “Şu anda birçok __experimental
API kullanan bir eklenti yazarı olarak, bunların stabilize olduğunu görmek isterim” dedi. “Çoğu çok önemli işlevler sağlıyor ancak bir __experimental
API'ye dayanan bir ürün oluşturmak her zaman biraz endişe verici. Süreç son derece şeffaf olduğu, iyi tanıtıldığı ve eklenti/tema yazarlarına kararlı sürümlere nasıl geçileceği konusunda bir kılavuz sağladığımız sürece, bu girişimi beğendim.”

Biletle ilgili aylarca süren tartışmanın ardından Zielinski, katkıda bulunanların endişelerini Make WordPress Core blogunda önerilen eylem planına aktardı.
Teklif, halihazırda çekirdeğe birleştirilmiş mevcut deneysel API'lerin çoğunun sabit bir takma ad alacağını gösteriyor.
Zielinski, "Geriye dönük uyumluluğu koruyacak ve paket boyutunu fark edilir şekilde etkilememelidir" dedi. “Bazılarının farklı bir tedaviye ihtiyacı olacak; Bunu duruma göre tartışalım.” Ayrıca, katkıda bulunanlara, zaten çekirdekte bulunan mevcut bir deneysel API'nin kaldırılması gerekip gerekmediğini düşünmelerini tavsiye etti. Bunun pek çok örneğini beklemiyor, ancak bunların eklenti yazarlarıyla iletişim kurma, geçici kullanımdan kaldırmalar kullanma ve Temel gönderileri yayınlama konusunda yerleşik uygulamaları kullanmasını tavsiye ediyor.
"Ayrıca burada iki şey görüyorum: API tasarımı sırasında deneysel API'lerin kullanımı ve kötüye kullanılması (genellikle Gutenberg eklentisinde kullanılacak ve test edilecek) ve tasarım kriterlerini karşıladıklarında bunları stabilize etmek için özenli bir sürecin eksikliği." Gutenberg baş mimarı Matias Ventura orijinal bilet hakkında yorum yaptı. “ Fiili olarak kamuya açık olarak kabul edilecek olanlar, isimlendirmelerine rağmen birçok sürüm için istikrarlı bir biçimde var olanlardır.”
WordPress'in geriye dönük uyumluluk vaatlerini yerine getirme yeteneğini korumak adına teklif, deneysel API'lerin Gutenberg eklentisiyle sınırlandırılmasını ve hiçbir zaman çekirdekle birleştirilmemesini öneriyor. Kararlı bir özelliğin deneysel bir API'ye bağlı olduğu durumlarda, Zielinski basit bir yanıt belirledi:
“O zaman aslında kararlı değil. Önce bağımlılıkları stabilize edelim.”
Bu aslında WordPress'in API'lerinde ve güncellemelerinde istikrarı ve güveni artırması gereken yeni bir ilerleme yoludur, ancak birkaç dezavantajı vardır.
Kullanıcılar ve katkıda bulunanlar, büyük sürümlerde prime time dağıtımına ulaştıklarında deneysel API'lere güvenemedikleri için, Gutenberg özelliklerinin çekirdeğe daha yavaş kaynaşmasını bekleyebilirler. Zielinski ayrıca, katkıda bulunanların bu API'leri gönderip milyonlarca WordPress sitesinde kullanıma girdikten sonra yeniden düzenlemede zorluk yaşayabileceğini de kaydetti.
Şimdiye kadar teklif ezici bir çoğunlukla olumlu destek aldı, çünkü çoğu kişi bu API'lerin henüz deneysel aşamadayken ilk etapta asla çekirdeğe gelmemesi gerektiğine inanıyor.
WordPress geliştiricisi Mark Root-Wiley, "Ben bu yaklaşımı çok destekliyorum" dedi. “Özel temalar oluşturuyorum ve birkaç basit eklentim var. Her ikisi için de, kendimi sık sık deneysel API'lerle ve yalnızca deneysel bir API aracılığıyla kapatılabilen, ayarlanabilen veya genişletilebilen özellikler çekirdeğe yerleştirildiğinde bunlarla güncel kalmanın zorluklarıyla uğraşmak zorunda buldum.
WordPress yazarı Dovid Levine, teklif hakkında "Çekirdekte bu tür bir istikrara dönüş, geliştiricilerin iyi niyetini yeniden kazanmanın uzun bir yolunu bulabilir" dedi.
Teklif hakkında yorum yapmak için son tarih, WordPress 6.1 Beta 1'in beklenmesinden sadece üç hafta önce tartışmayı kapatacak olan 7 Eylül'dür. Bu, katkıda bulunanlara, onları Gutenberg eklentisiyle sınırlama konusunda bir fikir birliğine varmaları durumunda, bir sonraki büyük sürümden önce deneysel API'leri daha derinlemesine denetlemek için biraz zaman verir.