ข้อเสนอใหม่เรียกร้องให้ผู้มีส่วนร่วมหยุดการรวม API ทดลองจาก Gutenberg ไปยัง WordPress Core
เผยแพร่แล้ว: 2022-08-11แนวทางปฏิบัติในการรวม API ทดลองจาก Gutenberg เข้ากับคอร์ของ WordPress อาจใกล้ถึงจุดสิ้นสุด ข้อเสนอใหม่ซึ่งเผยแพร่โดย Adam Zielinski ผู้สนับสนุน Automattic เรียกร้องให้ผู้มีส่วนร่วมทำให้ API เสถียรก่อนที่จะรวมเข้าเป็นแกนหลัก
ในช่วงหลายปีที่ผ่านมา มีการรวม API ทดลองประมาณ 280 รายการจากปลั๊กอิน Gutenberg ซึ่ง Zielinski ตรวจสอบในตั๋วที่เขาเปิดสำหรับปัญหาดังกล่าวในเดือนเมษายน ในการปรับสมดุลไดรฟ์ให้เคลื่อนที่อย่างรวดเร็วด้วยการวนซ้ำในโปรแกรมแก้ไขกับความมุ่งมั่นของ WordPress ในเรื่องความเข้ากันได้แบบย้อนหลัง จำนวน API ทดลองได้กลายเป็นสิ่งที่ป้องกันไม่ได้และแนวทางปฏิบัติในการรวมเข้ากับแกนกลางกำลังได้รับการพิจารณาใหม่อย่างแข็งขัน
อย่างเป็นทางการ API ทดลองจะถูกตั้งค่าสถานะเพื่อไม่ให้บุคคลที่สามใช้งาน เนื่องจากคาดว่าจะมีการเปลี่ยนแปลง ในทางปฏิบัติ บุคคลที่สร้างตัวแก้ไขบล็อกกำลังใช้งานอยู่ เนื่องจากพวกเขาเป็นแกนหลักและพวกเขาต้องการขยายคุณลักษณะที่ API เหล่านี้เปิดใช้งาน
"ผู้เขียนปลั๊กอินและธีมถูกบังคับให้พึ่งพาคุณลักษณะ __experimental
ที่สามารถลบออกหรือเปลี่ยนแปลงในลักษณะที่เข้ากันไม่ได้แบบย้อนหลังได้ตลอดเวลา" Zielinski กล่าว สะท้อนถึงความคับข้องใจและความกังวลที่นักพัฒนาหลายคนมีกับโครงการในช่วงไม่กี่ปีที่ผ่านมา “มันเป็นภาระการบำรุงรักษาที่ร้ายแรง การเปิดตัว Gutenberg/WordPress ใหม่ทุกครั้งหมายถึงการเปลี่ยนแปลงที่อาจเกิดขึ้นได้”
ปีเตอร์ วิลสัน ผู้มอบสิทธิ์หลักของ WordPress แสดงความคิดเห็นเกี่ยวกับตั๋ว โดยกล่าวว่าเขาชอบที่จะจำกัด API ทดลองให้ใช้กับผลิตภัณฑ์ Edge ที่รั่วไหล เมื่อขับกลับบ้านถึงความจำเป็นในการเปลี่ยนแปลงนี้ เขาอ้างถึงผลกระทบเชิงลบมากมายที่ API ทดลองหลักเหล่านี้มีต่อระบบนิเวศ:
- ผู้รับมอบอำนาจหลักไม่ต้องการใช้คุณลักษณะบางอย่างของไลบรารีเพื่อทำให้งานหลักง่ายขึ้นเนื่องจากไม่เชื่อถือความน่าเชื่อถือ
- นักพัฒนาไม่อัพเกรดไซต์ไคลเอนต์ WP อีกต่อไป ในฐานะที่เป็นผู้มอบอำนาจหลักที่พยายามรักษาความเข้ากันได้แบบย้อนหลังมาหลายปี สิ่งนี้ทำให้ฉันผิดหวัง ในฐานะสมาชิกทีมรักษาความปลอดภัย เป็นเรื่องที่น่ากังวลอย่างมาก
- นักพัฒนาที่ตัดสินใจรวมสำเนาของแพ็คเกจในธีมและปลั๊กอิน แทนที่จะใช้
wp.*
globals สิ่งนี้ทำให้ฉันกังวลอีกครั้งจากมุมมองด้านความปลอดภัย แต่ยังเพิ่มส่วนของข้อมูล JavaScript อย่างมีนัยสำคัญมากกว่าการรักษาความเข้ากันได้แบบย้อนหลัง- รายงานการหยุดชะงักของความเข้ากันได้แบบย้อนหลังในเวอร์ชันรอง: "คุณไม่คาดหวังว่าเวอร์ชัน 5.9.1 จะทำลายการตอบสนองของรูปภาพจำนวนมากในไซต์ของเรานอกตัวแก้ไขบล็อก"
- นักพัฒนาที่คิดว่าจะไม่เคยใช้บล็อกหลักเพราะมันไม่เสถียรเกินไป: “ฉันหยุดใช้/ขยายบล็อกหลักเพราะมันเปลี่ยนแปลงมากเกินไป และฉันใช้บล็อก ACF เพื่อที่ฉันจะได้รู้ว่าฉันสามารถสร้างบล็อกที่ไม่สามารถทำได้ หยุดพัก. ได้รับ UI ไม่ดีเท่าบล็อกหลัก แต่ฉันจะใช้ความเสถียรมากกว่าบล็อกแตกเมื่อใดก็ได้”
ปลั๊กอิน Gutenberg มีจุดมุ่งหมายเพื่อทำหน้าที่เป็นปลั๊กอินคุณลักษณะที่คาดว่าจะมีความเข้ากันได้แบบย้อนหลังในขณะที่ผู้ร่วมให้ข้อมูลขัดเกลาคุณลักษณะก่อนที่จะรวมเข้ากับแกนหลัก การกลับไปสู่รากเหง้าของแนวทางนี้ และทำให้บรรณาธิการมีการทดลองน้อยลง เป็นหัวใจสำคัญของข้อเสนอนี้
“ความไม่เสถียรระหว่างเวอร์ชันต่างๆ ได้เริ่มสร้างความแปลกแยกให้กับผู้สนับสนุนภายนอกรายใหญ่ที่สุดของบรรณาธิการบล็อก” วิลสันกล่าว
การรักษาความไม่เสถียรในระดับนี้อาจกีดกันผู้คนไม่ให้สร้างบน WordPress ผลักพวกเขาออกไปสู่โครงการอื่นๆ ที่ตรงไปตรงมากว่าซึ่งได้รับการจัดการในวิธีที่แตกต่างออกไป เป็นไปได้ว่าความจำเป็นในการพึ่งพา API แบบทดลองได้ขัดขวางนักพัฒนาจากการสร้างผลิตภัณฑ์เพิ่มเติม ซึ่งทำให้การยอมรับตัวแก้ไขบล็อกช้าลง

“ในฐานะผู้เขียนปลั๊กอินที่กำลังใช้ __experimental
APIs อยู่ มากมาย ฉันชอบที่จะเห็นความเสถียรเหล่านี้” Nick Diego ผู้สนับสนุน WP Engine กล่าว “ส่วนใหญ่มีฟังก์ชันการทำงานที่สำคัญ แต่การสร้างผลิตภัณฑ์ที่อาศัย __experimental
API นั้นค่อนข้างจะสับสนอยู่เสมอ ตราบใดที่กระบวนการมีความโปร่งใสอย่างยิ่ง ได้รับการเผยแพร่อย่างดี และเราให้คู่มือผู้เขียนปลั๊กอิน/ธีมเกี่ยวกับวิธีการย้ายไปยังเวอร์ชันที่เสถียร ฉันก็ชอบความคิดริเริ่มนี้”
หลังจากหลายเดือนของการอภิปรายเกี่ยวกับตั๋ว Zielinski กลั่นกรองข้อกังวลของผู้ร่วมให้ข้อมูลลงในแผนปฏิบัติการที่เสนอในบล็อก Make WordPress Core
ข้อเสนอระบุว่า API ทดลองที่มีอยู่ส่วนใหญ่ที่รวมเข้ากับคอร์จะได้รับนามแฝงที่เสถียร
"มันจะรักษาความเข้ากันได้แบบย้อนหลังและไม่ควรส่งผลกระทบต่อขนาดมัดอย่างเห็นได้ชัด" Zielinski กล่าว “บางคนต้องการการรักษาที่ต่างออกไป มาหารือกันเป็นกรณีไป” นอกจากนี้ เขายังแนะนำให้ผู้มีส่วนร่วมพิจารณาว่าจำเป็นต้องลบ API ทดลองที่มีอยู่แล้วในคอร์หรือไม่ เขาไม่ได้คาดหวังถึงกรณีนี้หลายครั้ง แต่แนะนำให้ใช้แนวทางปฏิบัติที่กำหนดไว้ในการติดต่อผู้เขียนปลั๊กอิน ใช้การเลิกใช้งานแบบนุ่มนวล และเผยแพร่โพสต์หลัก
“ฉันยังเห็นสองสิ่งที่เล่นที่นี่: การใช้และการใช้ API ทดลองในทางที่ผิดระหว่างการออกแบบ API (โดยทั่วไปจะใช้และทดสอบในปลั๊กอิน Gutenberg) และการขาดกระบวนการที่ขยันหมั่นเพียรในการทำให้เสถียรเมื่อตรงตามเกณฑ์การออกแบบ” Matias Ventura หัวหน้าสถาปนิกของ Gutenberg แสดงความคิดเห็นเกี่ยวกับตั๋วเดิม “สิ่งที่ต้องพิจารณาต่อสาธารณะ โดยพฤตินัย คือสิ่งที่มีอยู่สำหรับการเผยแพร่จำนวนมากในรูปแบบที่มั่นคงแม้จะมีระบบการตั้งชื่อก็ตาม”
เพื่อประโยชน์ในการรักษาความสามารถของ WordPress ในการส่งมอบตามสัญญาความเข้ากันได้แบบย้อนหลัง ข้อเสนอแนะนำ API ทดลองที่ถูก จำกัด ไว้ที่ปลั๊กอิน Gutenberg และไม่เคยรวมเข้ากับแกนกลาง ในกรณีที่คุณลักษณะที่เสถียรขึ้นอยู่กับ API ทดลอง Zielinski ระบุคำตอบง่ายๆ:
“ถ้าอย่างนั้นก็ไม่เสถียรจริงๆ มาทำให้การพึ่งพาอาศัยกันมีเสถียรภาพก่อน”
นี่เป็นวิธีใหม่ในการก้าวไปข้างหน้าซึ่งจะช่วยเพิ่มความเสถียรและความมั่นใจใน API และการอัปเดตของ WordPress แต่มีข้อเสียอยู่เล็กน้อย
ผู้ใช้และผู้ร่วมให้ข้อมูลสามารถคาดหวังได้ว่าคุณลักษณะของ Gutenberg อาจรวมเข้ากับแกนหลักได้ช้ากว่า เนื่องจากพวกเขาไม่สามารถพึ่งพา API แบบทดลองได้เมื่อถึงช่วงไพร์มไทม์ในรีลีสหลัก Zielinski ยังตั้งข้อสังเกตอีกว่าผู้ร่วมให้ข้อมูลอาจประสบปัญหาในการปรับโครงสร้าง API เหล่านี้ใหม่เมื่อพวกเขาได้จัดส่งและใช้งานบนเว็บไซต์ WordPress หลายล้านเว็บไซต์
จนถึงตอนนี้ ข้อเสนอได้รับการสนับสนุนในเชิงบวกอย่างล้นหลาม เนื่องจากหลายคนเชื่อว่า API เหล่านี้ไม่ควรมาถึงแกนตั้งแต่แรกในขณะที่ยังอยู่ในขั้นทดลอง
“ฉันชอบแนวทางนี้มาก” Mark Root-Wiley ผู้พัฒนา WordPress กล่าว “ฉันสร้างธีมที่กำหนดเองและมีปลั๊กอินง่ายๆ สองสามตัว สำหรับทั้งคู่ ฉันพบว่าตัวเองค่อนข้างถูกบังคับให้ต้องจัดการกับ API ทดลองและความยากลำบากในการติดตามข้อมูลล่าสุดเมื่อมีการใส่ฟีเจอร์ไว้ในแกนหลักที่สามารถปิด ปรับเปลี่ยน หรือขยายผ่าน API ทดลองเท่านั้น”
“การกลับมาสู่ความมั่นคงในแกนกลางแบบนี้จะช่วยได้มากในการฟื้นความปรารถนาดีของนักพัฒนาบางส่วน” Dovid Levine ผู้ร่วมเขียนบทความของ WordPress ให้ความเห็นเกี่ยวกับข้อเสนอ
กำหนดเส้นตายสำหรับการแสดงความคิดเห็นเกี่ยวกับข้อเสนอคือวันที่ 7 กันยายน ซึ่งจะปิดการสนทนาเพียงสามสัปดาห์ก่อน WordPress 6.1 Beta 1 ที่คาดไว้ สิ่งนี้จะช่วยให้ผู้ร่วมให้ข้อมูลมีเวลาในการตรวจสอบ API ทดลองอย่างลึกซึ้งยิ่งขึ้นก่อนการเปิดตัวครั้งสำคัญครั้งต่อไป หากพวกเขาบรรลุฉันทามติในการจำกัด API เหล่านี้ในปลั๊กอิน Gutenberg