• การทำงานร่วมกันแบบโอเพนซอร์ส ตั้งอยู่บนมุมมองปัญหาว่า การผสานกันของโปรโตคอลแบบกระจายศูนย์ที่แยกหน้าที่การส่งโค้ดและการสื่อสารออกจากกัน เป็นแนวทางที่พึงประสงค์มากกว่าโครงสร้างที่พึ่งพาผู้ให้บริการรายเดียวอย่างหนัก
  • เดิมทีการทำงานร่วมกันด้านโค้ดเกิดขึ้นจากการผสาน git กับอีเมล ต่อมาจึงย้ายไปเป็น git กับเว็บไซต์ GitHub และ ForgeFed ก็สานต่อด้วยการผสาน git กับ ActivityPub ส่วน Tangled กำลังต่อยอดด้วยการผสาน git กับ AT protocol
  • Tangled ใช้โครงสร้างที่เฟเดอเรตเหตุการณ์ระหว่าง git server โดยเรียกแต่ละเซิร์ฟเวอร์ว่า knot และรองรับทั้งการทำงานร่วมกันบน repository แม้อยู่คนละเซิร์ฟเวอร์, fork ข้ามเซิร์ฟเวอร์, และ pull request ไปยัง repository ที่อยู่บนเซิร์ฟเวอร์อื่น
  • สำหรับ Authenticated Transfer รอบตัวโค้ดนั้นใช้ AT โดยดูแลทั้ง issues, pull requests, event timeline, follows, stars และยังใช้สำหรับการเชิญผู้ร่วมพัฒนาและการแชร์ SSH public key
  • แนวทางนี้คล้ายกับการรัน cgit instance เองแล้วส่งแพตช์ผ่านอีเมล แต่ก็แสดงทิศทางที่ต้องการรักษาความเป็นสังคมและความสนุกของการทำงานร่วมกัน พร้อมก้าวออกจาก GitHub monoculture

ความจำเป็นของการเฟเดอเรชันสำหรับฟอร์จ

  • โครงสร้างที่พึ่งพาผู้ให้บริการรายเดียวสำหรับ การทำงานร่วมกันแบบโอเพนซอร์ส เป็นสัดส่วนมากนั้นไม่พึงประสงค์ และตั้งอยู่บนมุมมองว่า โปรโตคอลแบบกระจายศูนย์อยู่ได้นานกว่าระบบรวมศูนย์
  • การทำงานร่วมกันด้านโค้ดใช้สองโปรโตคอลควบคู่กันมาเสมอ โดยตัวหนึ่งรับหน้าที่ การส่งโค้ด และอีกตัวรับหน้าที่ การสื่อสาร
    • ในช่วงแรกเป็นการผสานระหว่าง git กับอีเมล
    • ต่อมาจึงเปลี่ยนเป็นการผสานระหว่าง git กับเว็บไซต์ GitHub
    • ForgeFed เปิดความเป็นไปได้ของการผสานระหว่าง git กับ ActivityPub
    • Tangled กำลังสร้างขึ้นบนการผสานระหว่าง git กับ AT protocol
  • Tangled ทำหน้าที่เฟเดอเรตเหตุการณ์ระหว่าง git server ต่าง ๆ และเรียกแต่ละเซิร์ฟเวอร์ว่า knot
    • ไม่ว่า repository จะอยู่บนเซิร์ฟเวอร์ใดก็ทำงานร่วมกันได้
    • รองรับ fork ข้ามเซิร์ฟเวอร์
    • หลังจาก push ไปยัง repository บนเซิร์ฟเวอร์ของตัวเองแล้ว ก็สามารถเปิด pull request ไปยัง repository ที่โฮสต์อยู่บนอีกเซิร์ฟเวอร์หนึ่งที่ต่างออกไปโดยสิ้นเชิงได้
  • วิธีนี้คล้ายกับการรัน cgit instance เองและส่งแพตช์ผ่านอีเมลในหลายแง่มุม

บทบาทที่ Tangled รับผิดชอบ

  • Tangled ใช้ AT สำหรับ Authenticated Transfer ของเหตุการณ์รอบตัวโค้ด
    • ใช้สำหรับการส่งต่อเหตุการณ์อย่าง issues และ pull requests
    • ดูแลฟีเจอร์เชิงสังคมอย่าง event timeline, follows และ stars ไปพร้อมกัน
    • vouches ก็มีกำหนดจะเพิ่มเข้ามาในเร็ว ๆ นี้
  • AT ยังถูกใช้สำหรับการเชิญผู้ร่วมพัฒนาและการแชร์ SSH public key ส่วนอื่น ๆ นอกเหนือจากนั้นยังคงใช้ git แบบเดิม
  • โอเพนซอร์สจำเป็นต้องก้าวออกจาก monoculture แบบ GitHub และในขณะเดียวกันก็ต้องรักษาความเป็นสังคมและความสนุกของการทำงานร่วมกันด้านโค้ดไว้
  • tangled alpha
  • docs
  • source
  • discord
  • bluesky
  • twitter (x)
  • feed

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น