انشقاق (برمجة)

انشقاق أو تفرع (بالإنجليزية: Fork) في هندسة البرمجيات, انشقاق أو تفرع المشروع يحدث عندما يقوم المطورين باخذ نسخة قانونية لشيفرة المصدر من حزمة برمجية واحدة، والبدء في تطويرها على أنها مستقلة.[1][2][3] أحيانا يكون المنبع مجتمع كبير لكن هناك جزء كبير من هذا المجتمع غير راضين عن القرارات فيتم عمل شق للصف ومجتمع موازي بأهداف أكثر تحررا من السياسة أو أكثر تبعية لسياسة أخرى (ظاهرة أو خفية). بعض المجتمعات المنشقة تكمل الحلقة وتعيد تحسيناتها للمنبع الأصلي ولو بعد حين وبعضها الآخر يتقصد أن لا يفعل ذلك. وبعضها تكتفي بأن تعيد جلب تحسينات المنبع بشكل دوري وتسمى rebase. مع كل إصدار جديد من المنبع فإن هؤلاء المنشقين يكون عليهم هدم كل ما بنوه وإعادة فحص رقاعهم رؤية ماذا حدث لها. هل لا تزال تعمل؟ هل لا تزال ذات قيمة؟ هل يمكن تطبيقها من الأساس (مثلا تعديلات على دوال لم تعد موجودة).

تفرعاتعدل

  • من أشهر الأمثلة أن مجتمع المكتب المفتوح أوبن أوفيس الذي تديره شركة صن كانت تطغى عليه قرارات سياسية معينة مثل اعتماد جافا ورفض إضافات أفضل وأسرع مكتوبة بلغة سي كان هناك مجتمع موازي اسمه go openoffice تقوده نوفل/سوزي ليكون منبع لمجتمع موازي يضم كل المنشقين بما فيهم ديبيان وأوبنتو وماندريفا وغيرهم.
  • معظم توزيعات لينكس تنحدر من توزيعات أخرى، معظم هذه التوزيعات تنحدرمن ثلاثات توزيعات أم وهي دبيان أو سلاكوير أو ريدهات. حيث أن المحتويات الموزعة بين هذه التوزيعات هي من البرمجيات الحرة والمفتوحة المصدر، لذلك تجد الكثير من تبادل الأفكار أو عمليات تبادل البرامج بحرية كما هناك عمليات دمج (على سبيل المثال، لينكس المتحدة أو ماندريفا).
  • من الأمثلة الأخرى mysql وmariadb. وغالبا ما تعتبر عملية شق الصف عملية تصحبها الكثير من الكراهية.

مراجععدل

  1. ^ Nyman, Linus (2015). "Understanding Code Forking in Open Source Software" (Ph.D.). Hanken School of Economics. صفحة 57. مؤرشف من الأصل في 13 ديسمبر 2019. Where practitioners have previously had rather narrow definitions of a fork, [...] the term now appears to be used much more broadly. Actions that would traditionally have been called a branch, a new distribution, code fragmentation, a pseudo-fork, etc. may all now be called forks by some developers. This appears to be in no insignificant part due to the broad definition and use of the term fork by GitHub. الوسيط |CitationClass= تم تجاهله (مساعدة)
  2. ^ Robles, Gregorio; González-Barahona, Jesús M. (2012). A Comprehensive Study of Software Forks: Dates, Reasons and Outcomes (PDF). OSS 2012 The Eighth International Conference on Open Source Systems. مؤرشف من الأصل (PDF) في 20 مايو 2018. اطلع عليه بتاريخ 20 أكتوبر 2012. الوسيط |CitationClass= تم تجاهله (مساعدة)
  3. ^ "the Lemacs/FSFmacs schism"(Jamie Zawinski, 2000), "Behind the KOffice split" (Joe Brockmeier, Linux Weekly News, 2010-12-14), "Copyright assignment - once bitten, twice shy" (Richard Hillesley, H-Online, 2010-08-06), "Forking is a feature" (أنيل داش, 2010-09-10), "The Great Software Schism" (جلين مودي, Linux Journal, 2006-09-28), "To Fork Or Not To Fork: Lessons From Ubuntu and Debian" (بنجامين ماكو هيل, 2005). نسخة محفوظة 16 يونيو 2018 على موقع واي باك مشين.
 
هذه بذرة مقالة عن برمجيات الحاسوب بحاجة للتوسيع. شارك في تحريرها.