เพิ่มปลั๊กอิน

เอกสารนี้อธิบายวิธีสร้างปลั๊กอินใหม่ แม้ว่ากระบวนการที่อธิบายไว้จะเป็นการสร้างปลั๊กอินของบุคคลที่หนึ่ง แต่คุณก็ใช้เป็นแนวทางในการสร้างปลั๊กอินของบุคคลที่สามได้

ดูภาพรวมของปลั๊กอินได้ที่ปลั๊กอิน

ดูข้อมูลเบื้องต้นเกี่ยวกับการสร้างปลั๊กอินได้ที่วิธีสร้างปลั๊กอิน (Talk) (2021)

บุคคลที่หนึ่งกับบุคคลที่สาม

ผู้ใช้เป้าหมายสำหรับปลั๊กอินคือนักพัฒนาซอฟต์แวร์ที่ค้นหาและใช้ปลั๊กอินผ่าน npm

ทีม Blockly รองรับปลั๊กอินของบุคคลที่หนึ่งและเผยแพร่ภายใต้ขอบเขต @blockly ใน npm โดยออกแบบมาให้ใช้งานในแอปพลิเคชัน Blockly ได้หลากหลาย ทั้งยังเสถียรและใช้งานง่าย โดยจัดเก็บไว้ใน blockly-samples ฟิลด์สำหรับการตั้งค่าความเร็วของมอเตอร์อาจใช้ในโปรเจ็กต์หุ่นยนต์ได้หลายโปรเจ็กต์ และเป็นตัวเลือกที่ดีสำหรับปลั๊กอินของบุคคลที่หนึ่ง

ส่วนปลั๊กอินของบุคคลที่สามจะได้รับการดูแลและเผยแพร่โดยอิสระ เนื้อหาเหล่านี้อาจซับซ้อนกว่า เป็นแบบทดลองมากกว่า หรือมีการกำหนดเป้าหมายไปยังแอปพลิเคชัน Blockly ที่แคบกว่า ช่องสำหรับแก้ไขออบเจ็กต์ที่เฉพาะเจาะจงซึ่งสคีมาฐานข้อมูลกำหนดไว้จะเหมาะกว่าเมื่อใช้เป็นปลั๊กอินของบุคคลที่สาม

เกณฑ์ของบุคคลที่หนึ่ง

ปลั๊กอินของบุคคลที่หนึ่งต้องเป็นไปตามข้อกำหนดต่อไปนี้

  • ใช้งานได้ในแพลตฟอร์มหลักทั้งหมด เว้นแต่จะได้รับข้อยกเว้นจากทีม Blockly
    • Chrome, Firefox, Safari, Edge
  • มีผู้แต่งที่พร้อมจัดการข้อบกพร่องในปีแรก
  • อย่าใช้ Monkeypatch กับ Blockly
  • มี API ที่ระบุไว้อย่างชัดเจนและมีการบันทึกไว้
  • อย่าเรียกฟังก์ชันส่วนตัวหรือฟังก์ชันของแพ็กเกจจาก Blockly Core เว้นแต่จะได้รับข้อยกเว้นจากทีม Blockly
    • คุณสามารถลบล้างฟังก์ชันของแพ็กเกจในคลาสย่อยที่คุณกำหนดได้
    • หากต้องการการยกเว้น โปรดแจ้งให้เราทราบในปัญหาเกี่ยวกับ blockly-samples
  • มีแบบทดสอบ

กระบวนการ

ปลั๊กอินจะผ่าน 4 ระยะ ได้แก่ คำแนะนำ การสนทนาการติดตั้งใช้งาน และการเผยแพร่

คำแนะนำ

ปลั๊กอินจะเริ่มต้นเป็นคำแนะนำ คุณสามารถแนะนำปลั๊กอินได้โดยสร้างปัญหาใหม่โดยใช้เทมเพลตคำขอฟีเจอร์

อ่านวิธีเขียนคำขอฟีเจอร์

นอกเหนือจากข้อมูลคำขอฟีเจอร์พื้นฐานแล้ว คำแนะนำปลั๊กอินควรมีข้อมูลต่อไปนี้

  • API ที่ปลั๊กอินจะแสดง
  • API ที่ต้องเพิ่มหรือเปลี่ยนแปลงใน Blockly หลักเพื่อรองรับปลั๊กอิน
  • ภาพหน้าจอ, GIF หรือภาพจำลองหากปลั๊กอินมีฟีเจอร์ UI
  • คําอธิบายสาเหตุที่ควรเป็นปลั๊กอินของบุคคลที่หนึ่งแทนที่จะเป็นปลั๊กอินของบุคคลที่สาม

ทีม Blockly จะตรวจสอบคําแนะนําที่ได้รับและปิดปัญหา หรือเห็นด้วยว่าควรเป็นปลั๊กอินของบุคคลที่หนึ่ง

การสนทนา

จากนั้นปลั๊กอินจะเข้าสู่ระยะการสนทนา ระยะนี้ประกอบด้วย

  • การชี้แจงฟังก์ชันการทำงานที่ต้องการ
  • การชี้แจงเกี่ยวกับ API ของปลั๊กอิน
  • การวางแผนเพื่อการติดตั้งใช้งาน
  • การวางแผนการทดสอบ
  • การพูดคุยเกี่ยวกับการเปลี่ยนแปลง API ใน Blockly หลัก
  • การแบ่งปลั๊กอินขนาดใหญ่ออกเป็นขั้นตอนการติดตั้งใช้งาน
  • การตั้งชื่อปลั๊กอินตามแบบแผนการตั้งชื่อ
  • ยืนยันว่าจะปฏิบัติตามเกณฑ์ของบุคคลที่หนึ่งทั้งหมด

โดยทั่วไปแล้ว การสนทนานี้จะเกิดขึ้นในปัญหา GitHub ยิ่งขอบเขตของปลั๊กอินแคบลง ระยะการพูดคุยก็จะยิ่งเร็วขึ้น ปลั๊กอินขนาดใหญ่อาจดึงดูดความสนใจของชุมชนและความคิดเห็นที่ชัดเจนเกี่ยวกับโซลูชันที่เหมาะสม หากปัญหาได้รับการแก้ไขแล้ว ก็ขอแสดงความยินดีด้วย คุณพบสิ่งที่ผู้คนสนใจ

เป้าหมายคือเมื่อสิ้นสุดระยะการพูดคุย จะมีการตัดสินการออกแบบที่สำคัญทั้งหมดและมีรายการขั้นตอนการใช้งานที่ชัดเจน โดยควรบันทึกทั้ง 2 รายการไว้ในความคิดเห็นเกี่ยวกับปัญหา

ในระหว่างการพูดคุย เราอาจตัดสินใจว่าปลั๊กอินควรเป็นปลั๊กอินของบุคคลที่สาม และไม่ควรเผยแพร่ภายใต้ขอบเขต @blockly ในกรณีนี้ เราจะอธิบายเหตุผลและปิดเคส

เมื่อการพูดคุยเสร็จสิ้นแล้ว สมาชิกในทีม Blockly จะระบุว่าพร้อมใช้งาน

การใช้งาน

ขั้นตอนการใช้งานมีดังนี้

  • เรียกใช้ npx @blockly/create-package เพื่อตั้งค่าปลั๊กอินและไดเรกทอรีจากเทมเพลต ดูข้อมูลเพิ่มเติม...
  • การใช้ตรรกะหลักสําหรับปลั๊กอิน
  • การใช้ UI หากจำเป็น
  • การทดสอบปลั๊กอินโดยใช้ Mocha
  • จัดทำเอกสารประกอบเกี่ยวกับปลั๊กอิน รวมถึง README

หากปลั๊กอินที่แนะนำได้รับอนุมัติให้ใช้งานและคุณต้องการมีส่วนร่วม ให้แสดงความคิดเห็นเกี่ยวกับปัญหาและสอบถามว่ายังเปิดรับการมีส่วนร่วมอยู่หรือไม่

ผู้มีส่วนร่วมหลายคนอาจติดตั้งใช้งานพร้อมกันได้ คุณสามารถติดตั้งใช้งานปลั๊กอินร่วมกันในฟอรค์ของคุณเอง หรือผ่านคำขอดึงข้อมูลในที่เก็บข้อมูลนี้ หากต้องการทํางานร่วมกันในปลั๊กอินในที่เก็บข้อมูลนี้ โปรดขอให้ทีม Blockly สร้างสาขาฟีเจอร์ให้คุณ

คุณควรเพิ่มปลั๊กอินลงในไฟล์ gh-pages/index.md ในสาขา master ของ blockly-samples ซึ่งจะทำให้ปลั๊กอินปรากฏในเว็บไซต์ปลั๊กอิน ปลั๊กอินของบุคคลที่หนึ่งควรชี้ไปยังหน้าทดสอบ นอกจากนี้ คุณยังเพิ่มปลั๊กอินของบุคคลที่สามลงในหน้านี้ได้ และสามารถชี้ไปยังลิงก์ที่เจ้าของเลือก เช่น หน้าเดโมที่โฮสต์หรือหน้า npm

การเผยแพร่

สุดท้ายคือการเผยแพร่ ทีม Blockly ใช้ Lerna เพื่อจัดการการกำหนดเวอร์ชันและการเผยแพร่สำหรับปลั๊กอินทั้งหมด

ทุกๆ วันพฤหัสบดีจะมีการเผยแพร่ปลั๊กอินที่มีการเปลี่ยนแปลงนับตั้งแต่รุ่นล่าสุด หากต้องการให้เผยแพร่การเปลี่ยนแปลงเร็วขึ้น โปรดระบุไว้ในคำขอดึงข้อมูล

นอกจากนี้ เว็บไซต์ปลั๊กอินจะอัปเดตทุกครั้งที่มีการเผยแพร่ปลั๊กอินด้วย

ปลั๊กอินที่ไม่พร้อมเผยแพร่ควรทำเครื่องหมาย private ใน package.json กรณีนี้อาจเกิดขึ้นหากปลั๊กอินใช้การเปลี่ยนแปลงที่ยังไม่ได้เผยแพร่ใน Blockly หลัก Blockly หลักจะเผยแพร่ในสัปดาห์สุดท้ายของแต่ละไตรมาส (ทุก 3 เดือนครั้ง)