แนวทางปฏิบัติที่ดีที่สุดสำหรับการปล่อยแอปพลิเคชัน PHP โอเพ่นซอร์ส


10

ฉันเป็นนักพัฒนา PHP สำหรับการดำรงชีวิต แต่ไม่เคยทำงานหรือมีส่วนร่วมในโครงการโอเพ่นซอร์สใด ๆ มาก่อน

ฉันกำลังพัฒนา CMS สำหรับการใช้งานของฉันเอง ฉันมีต้นแบบการทำงานและฉันคิดว่าเมื่อมันพร้อม (อาจใช้เวลาสองสามเดือน) นี่อาจเป็นสิ่งที่ชุมชน PHP จะให้ความสนใจ

ฉันเป็นนักพัฒนาที่ค่อนข้างมั่นใจ แต่มีหลายประเด็นที่ความรู้ของฉันขาดไปโดยเฉพาะอย่างยิ่งเมื่อพูดถึงประเด็นของโอเพ่นซอร์ส:

  • เป็นวิธีที่ดีที่สุดในการเผยแพร่โครงการและ / หรือค้นหาคนอื่น ๆ ที่อาจสนใจในการทำงานร่วมกัน
  • CMS ของฉันขับเคลื่อนโดย CakePHP และโดยทั่วไปแล้วจะเป็นชั้นบนสุดของมัน ฉันเคยทำโครงการ CakePHP บน GitHub: ฉันเคยใช้ระบบควบคุมเวอร์ชัน (SVN) มาก่อน แต่ฉันค่อนข้างใหม่กับ GIT ดังนั้นฉันจึงต้องการแน่ใจว่าฉันกำลังทำสิ่งต่าง ๆ ใน "วิธีที่ดีที่สุด"
  • ฉันจะหาข้อมูลเกี่ยวกับปัญหาลิขสิทธิ์ได้อย่างไร ใบอนุญาตโอเพนซอร์ใดดีที่สุดสำหรับแอพของฉัน นอกจากนี้โครงการของฉันยืมมาจากโครงการโอเพนซอร์ซอื่น ๆ มากมายเช่นฉันมีส่วนของรหัส (ซึ่งฉันมีการปรับเปลี่ยนอย่างมาก) แต่มีประกาศลิขสิทธิ์ / ใบอนุญาตในสถานที่ - ฉันไม่รู้ว่าภาระหน้าที่ของฉันคืออะไร ทำให้เหล่านี้มา

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


มีคำตอบที่ดีเกี่ยวกับการอนุญาตให้ใช้สิทธิ์ความคิดเกี่ยวกับคำถามอื่น ๆ หรือไม่ อาจเป็นไปได้ที่จะแยกสิ่งนี้ออกเป็นสองโพสต์!
user916336

คำตอบ:


5

ฉันไม่ใช่ทนาย แต่ฉันจะลองดู

CakePHP ได้รับอนุญาตภายใต้ใบอนุญาตMITซึ่งโดยทั่วไปหมายถึงอนุญาตให้นำมาใช้ซ้ำในซอฟต์แวร์ที่เป็นกรรมสิทธิ์ตามเงื่อนไขที่ใบอนุญาตนั้นแจกจ่ายให้กับซอฟต์แวร์นั้น มันเข้ากันได้กับใบอนุญาตGPLซึ่งเป็นโครงการโอเพนซอร์ซมากมายที่เปิดตัวภายใต้

สำหรับโครงการอื่น ๆ ที่คุณ "ยืม" คุณจะต้องตรวจสอบประเภทใบอนุญาตของพวกเขาและตรวจสอบความเข้ากันได้กับโครงการอื่น ๆ และประเภทใบอนุญาตที่คุณตัดสินใจใช้ ถ้าใด ๆของพวกเขาใช้GPLใบอนุญาตนอกจากนี้คุณยังจะต้องปล่อยด้วยจีพีเป็นแง่ของรัฐใบอนุญาต

GPL เป็นใบอนุญาต copyleft แรกสำหรับการใช้งานทั่วไปซึ่งหมายความว่างานที่ได้รับสามารถเผยแพร่ภายใต้เงื่อนไขใบอนุญาตเดียวกัน

...

GPL เป็นใบอนุญาต copyleft แรกสำหรับการใช้งานทั่วไปซึ่งหมายความว่างานที่ได้รับสามารถเผยแพร่ภายใต้เงื่อนไขใบอนุญาตเดียวกัน

ข้อเสนอแนะของฉันคือการเผยแพร่ภายใต้สัญญาอนุญาต GNU GPL v3เนื่องจากให้สิทธิ์การเป็นเจ้าของอย่างเพียงพอแก่คุณในขณะที่อนุญาตให้ผู้อื่นใช้งานได้ทั้งในโครงการเชิงพาณิชย์และเปิด จำไว้ว่าใบอนุญาตของโครงการ "ยืมที่" ต้องเข้ากันได้


สำหรับแนวทางปฏิบัติที่ดีที่สุดกับ Git และ Gitub ใช้git submoduleเพื่อรวมโครงการอื่น ๆ ในห้องสมุดของคุณเอง สิ่งนี้ดีกว่าการรวมไฟล์โดยตรงเนื่องจากคุณไม่แนะนำให้ทำงานเหมือนของคุณเอง

$ git submodule add git://github.com/cakephp/cakephp.git vendor/cake-php
$ git submodule update --init

git submodule ยังเป็นสิ่งที่ฉันไม่ชัดเจนใน ตัวอย่างเช่นโครงการของฉันใช้ jQuery และ jQuery UI- ฉันจะรวมเป็น submodule ได้อย่างไรเมื่อแหล่งที่มาบน GitHub ถูกแบ่งออกเป็นหลายไฟล์และโฟลเดอร์ ฉันมีสิ่งเดียวกันกับ HTMLPurifier ซึ่งฉันก็ใช้เช่นกัน ไฟล์ที่ฉันต้องการอยู่ในโฟลเดอร์ย่อยเดียว แต่ด้วย submodule git ดูเหมือนว่าฉันไม่มีทางเลือกนอกจากจะรวมสิ่งต่าง ๆ มากมายที่ฉันไม่ต้องการซึ่งจะทำให้โครงการของฉันเป็นกลุ่มโดยไม่จำเป็นหรือตามที่คุณบอกว่าทำงานคนอื่นเป็น ของฉันเอง!

เช่นเดียวกับลักษณะของสิทธิ์ใช้งานคุณไม่สามารถแยกและรวมเฉพาะไฟล์ที่คุณต้องการ คุณควรรวมโครงการทั้งหมดตามที่บรรจุ git submodule add git://github.com/jquery/jquery.git public/vendor/jquery
adlawson

คนอื่น ๆ ดูเหมือนจะไม่ทำสิ่งนี้แม้ว่าจะใช้ Wordpress พวกเขาดูเหมือนจะติดไฟล์ที่ย่อเล็กสุดที่พวกเขาต้องการจาก jQuery เข้าไปในโฟลเดอร์และยืนยันพวกเขา: github.com/wordpress/wordpress/tree/master/wp-includes/js / …

1
WordPress ใช้ SVN สำหรับการควบคุมเวอร์ชัน พื้นที่เก็บข้อมูล Github ของพวกเขาเป็นเพียงกระจกเงา เท่าที่ฉันทราบไม่มีความสามารถ "submodule" ใน SVN ดังนั้นพวกเขาจึงไม่มีตัวเลือกอื่นนอกจากแนะนำให้ใช้ ในหมายเหตุอื่นอย่าใช้ WordPress เป็นตัวอย่างของแนวปฏิบัติที่ดีที่สุด
adlawson

นอกจากว่าฉันขาดอะไรบางอย่างไปก็ดูเหมือนจะไม่มีทางทำสิ่งนี้ในกรณีของ jQuery ลองดูที่ repo github.com/jquery/jqueryของพวกเขามันเป็นไฟล์. js หลายร้อยไฟล์และ build script- ดังนั้นฉันจึงไม่สามารถรวมไว้ในโครงการของฉันได้โดยไม่ต้องดาวน์โหลดสำเนาจาก jquery.com และยืนยันด้วยตัวเอง หรือฉันผิด

0

ลองอ่านคู่มือนี้จาก Eric S. Raymond (หนังสือที่เหลือก็คุ้มค่าที่จะอ่านด้วย)

โดยส่วนตัวแล้วฉันไม่ต้องกังวลกับมันมากนัก - คุณจะไม่ทำเงินจากสิ่งนี้โดยตรงและไม่มีใครเลยเพราะมี CMS ที่ใช้งานทั่วไปฟรีที่ยอดเยี่ยมมากมายอยู่แล้ว ฉันขอแนะนำให้คุณใช้ใบอนุญาตแบบเสรีที่สุดที่คุณสามารถทำได้ (MIT หรือ BSD) เว้นแต่คุณจะยืมรหัสที่อยู่ภายใต้สิทธิ์ใช้งานแบบไวรัส (โดยทั่วไปคือ GPL หรือความหลากหลายของรหัส) ซึ่งในกรณีนี้คุณจะถูกบังคับใช้

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.