2 คะแนน โดย GN⁺ 2024-08-21 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ช่วงกลางปี 2019 ระหว่างหางาน ผู้เขียนต้องเลือกระหว่าง Google Goteam กับ Sourcegraph
  • เหตุผลที่เลือก Sourcegraph คือวัฒนธรรมที่เปิดให้สร้างทุกอย่างอย่างโปร่งใส
  • เอกสารทั้งหมดถูกเปิดเผยเป็นค่าเริ่มต้น และเอกสาร RFC, PR/FAQ ด้านเทคนิคและผลิตภัณฑ์ก็ถูกเก็บไว้ในโฟลเดอร์ Google Drive สาธารณะ
  • การพัฒนาผลิตภัณฑ์ทั้งหมดเกิดขึ้นในรีโป GitHub แบบสาธารณะ
  • ตอนนี้รีโป sourcegraph/sourcegraph ถูกเปลี่ยนเป็นแบบปิดแล้ว
  • นี่เป็นการตัดสินใจที่ทำลายวัฒนธรรมอันน่าดึงดูดของ Sourcegraph
  • Sourcegraph เหลือสแนปช็อตสาธารณะไว้ในชื่อ sourcegraph/sourcegraph-public-snapshot

การรักษาแหล่งอ้างอิง

  • ระหว่างทำงานที่ Sourcegraph ผู้เขียนได้เขียนบทความจำนวนมากลงใน engineering blog
  • หลายบทความใช้งานลิงก์ไปยังโค้ดสาธารณะที่เกี่ยวข้องเป็นข้อมูลอ้างอิง
  • ตอนนี้ลิงก์เหล่านั้นใช้ไม่ได้ทั้งหมดแล้ว
  • มีคำกล่าวว่า "URI ที่ดีจะไม่เปลี่ยนแปลง"
  • ผู้เขียนจึงพยายามเก็บรักษาข้อมูลไว้ให้มากที่สุดเพื่อไม่ให้ลิงก์พังหายไปอย่างกะทันหัน
  • ผู้เขียน fork sourcegraph/sourcegraph ไปเป็น efritz/sourcegraph
  • fork จะไม่สืบทอด pull request และ commit ที่ไม่ได้ถูกอ้างถึงโดยตรงจาก branch จะไม่มองเห็น
  • ตามเอกสารของ GitHub แม้รีโปสาธารณะจะถูกเปลี่ยนเป็นแบบปิด fork ก็ยังคงอยู่ต่อได้
  • อย่างไรก็ตาม เมื่อรีโปต้นฉบับถูกเปลี่ยนเป็นแบบปิด commit นอก branch main อาจหายไปได้

การดึง commit ที่เกี่ยวข้อง

  • ผู้เขียนรันโปรแกรม Go เพื่อค้นหา commit ทั้งหมด
  • โปรแกรมนี้สร้างไฟล์ metadata ของ pull request จำนวน 2,645 ไฟล์
  • ใช้ jq อ่าน JSON payload และดึงข้อมูลออกมา
  • สร้างไฟล์ pr_ids.txt, commits.txt, replace_pairs.txt
  • จากนั้นรันโปรแกรมตัวที่สองเพื่อแสดงรายการ commit ที่ไม่ถูกรวมของแต่ละ pull request
  • โปรแกรมนี้เพิ่ม commit ลงในไฟล์ commits.txt

การนำ commit เข้าสู่เครือข่ายรีโปใหม่

  • ผู้เขียนนำ commit เข้า fork โดยสร้าง branch ที่มีแต่ละ SHA ที่เกี่ยวข้อง
  • ใช้สคริปต์ Bash เพื่อทำงาน git ตามลำดับทีละขั้น

การเขียนอ้างอิงใหม่

  • ตอนนี้สามารถลิงก์อ้างอิงแต่ละรายการไปยังเป้าหมายใน fork ได้แล้ว
  • ใช้ xargs เพื่อทำให้กระบวนการอัตโนมัติ
  • เขียนอ้างอิง commit โดยตรงใหม่ให้ชี้ไปที่ fork และเขียนอ้างอิง pull request ใหม่ให้ชี้ไปยัง merge commit

สรุปโดย GN⁺

  • การเปลี่ยน Sourcegraph เป็นแบบปิดส่งผลกระทบอย่างมากต่อวัฒนธรรมโอเพนซอร์ส
  • ลิงก์อ้างอิงจำนวนมากใน engineering blog ใช้งานไม่ได้ และต้องใช้ความพยายามมากในการเก็บรักษาไว้
  • ผู้เขียนใช้ GitHub fork และสคริปต์เพื่อเขียนอ้างอิงใหม่และเก็บรักษา commit
  • บทความนี้เน้นย้ำถึงความยั่งยืนของโครงการโอเพนซอร์สและความสำคัญของลิงก์อ้างอิง

1 ความคิดเห็น

 
GN⁺ 2024-08-21
ความคิดเห็นจาก Hacker News
  • ความเห็นจาก CEO ของ Sourcegraph:

    • เหตุผลที่เปลี่ยน repo ภายในให้เป็นแบบปิดคือเพื่อโฟกัส
    • การเป็นโอเพนซอร์สและคงความเปิดเผยไว้ก่อให้เกิดงานเพิ่มและความเสี่ยงมากมาย
    • ต้องโฟกัสกับการสร้างผลิตภัณฑ์ค้นหาโค้ด/โค้ดอัจฉริยะที่ยอดเยี่ยมสำหรับลูกค้า
    • บริษัทยังคงทำหลายอย่างเพื่อชุมชนนักพัฒนาและ OSS
      • ให้บริการค้นหาโค้ดสาธารณะที่ได้รับความนิยม
      • ดูแลโค้ดโอเพนซอร์สจำนวนมาก
    • หากผู้ก่อตั้งรายอื่นกำลังชั่งใจว่าจะเปิดเผยโค้ดหรือไม่ ก็ยินดีให้คำปรึกษา
  • ความเห็นจากผู้ใช้อีกคน:

    • Sourcegraph เคยถูกมองว่าเป็นบริษัทที่เข้าใจวัฒนธรรมนักพัฒนาเป็นอย่างดี แต่การเปลี่ยนแปลงช่วงหลังน่าเสียดาย
    • พยายามหา roadmap แบบสาธารณะ แต่เอกสารส่วนใหญ่ถูกเปลี่ยนเป็นแบบไม่เปิดเผย
    • คู่มือที่เคยเปิดเผยก่อนหน้านี้ย้ายไปอยู่ใน Notion และส่วนสำคัญส่วนใหญ่ลิงก์ไปยังเอกสาร Google แบบปิด
  • ความเห็นจากผู้ใช้อีกคน:

    • ไม่นานมานี้ public search index ของ Sourcegraph หายไป
    • เคยใช้ Sourcegraph บ่อยมากก่อนที่ความสามารถในการค้นหาของ GitHub จะดีขึ้น
    • ตอนนี้ repo ของ GitLab และ repo ของ GitHub จำนวนมากหายไปจากดัชนีแล้ว
    • เพราะฟังก์ชันค้นหาเชื่อถือไม่ได้ จึงไม่มีทางเลือกนอกจากกลับไปใช้ GitHub
  • ความเห็นจากผู้ใช้อีกคน:

    • fork เวอร์ชันโอเพนซอร์สเพื่อลบ telemetry, ปิดการอัปเดต, เอาโค้ดแบบ proprietary ออก, สร้าง Docker image และทำระบบยืนยันตัวตน Oauth2 แบบเบา
    • วางแผนจะรันไว้หลัง Oauth2-Proxy ไปอีกนาน
    • เป็นซอฟต์แวร์ที่เชื่อถือได้มาก
  • ความเห็นจากผู้ใช้อีกคน:

    • ใช้ Sourcegraph อย่างมากกับงาน reverse engineering บน macOS
    • มีหลายโปรเจ็กต์ที่เกิดขึ้นได้เพราะการค้นหาของ Sourcegraph
    • หวังว่าฟังก์ชันค้นหาจะไม่หายไปในอนาคต
  • ความเห็นจากผู้ใช้อีกคน:

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

    • ใช้ Sourcegraph มามาก แต่สงสัยว่าจริง ๆ แล้วมีคนที่จ่ายเงินให้มากแค่ไหน
    • การบริหารบริษัทโอเพนซอร์สเป็นเรื่องยาก
    • เข้าใจได้ว่าเมื่อบริษัทเติบโตขึ้น ก็มีบางอย่างที่ไม่สามารถให้ฟรีได้
  • ความเห็นจากผู้ใช้อีกคน:

    • โครงการ Software Heritage เก็บถาวร repo ของ Sourcegraph ไว้เกือบทั้งหมด
    • การ crawl ครั้งล่าสุดคือช่วงกลางเดือนกรกฎาคม 2024
  • ความเห็นจากผู้ใช้อีกคน:

    • กล่าวถึงเหตุการณ์ก่อนหน้านี้ที่ Sourcegraph ไม่ได้เป็นโอเพนซอร์สอีกต่อไป
  • ความเห็นจากผู้ใช้อีกคน:

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