الفرع الرئيسي / الرئيسي ل AOSP لا معنى له ، لقد كان AOSP على هذا النحو لفترة طويلة ، أو كان دائما ، وأي شخص يحاول تنزيل أو تجميع التعليمات البرمجية لفرعه الرئيسي سيتوصل إلى هذا الاستنتاج في أقل من نصف ساعة.
إذا نظرت إلى محفوظات التعليمات البرمجية ل AOSP ، يمكنك أن ترى أن الفرع الرئيسي لبعض المستودعات لم يعد متاحا كفرع تطوير / فرع التزام ذي أولوية.
以Bionic libc倉庫為例
يستغرق دمج وظيفة صغيرة نصف شهر ، حتى لو كانوا جميعا من موظفي Google ، فإن الكفاءة منخفضة جدا بحيث من الواضح أنه من المستحيل الاستمرار في الصيانة. أرسل 20 سطر من التعليمات البرمجية في الشهر ، وكيفية حساب هذا الأداء.
بالإضافة إلى ذلك ، AOSP ليس monorepo ، ولكنه مئات المستودعات التي تديرها أداة الريبو. تحتاج أداة الريبو إلى مستودع البيان لتحديد الفروع أو العلامات لكل مستودع فرعي قبل سحب مجموعة من التعليمات البرمجية المصدر.
ومع ذلك ، ربما بسبب مشكلات الإدارة ، أو ربما بسبب مشكلات الترخيص ، لا تنشر AOSP أبدا إصدارات لم يتم إصدارها من البيان ، أي أن شركاء Google و GMS فقط هم من يمكنهم الحصول على الكود المصدري للنظام الذي يتم اختباره تجريبيا ، بينما يمكن للمطورين الآخرين الذين ليس لديهم إذن رؤية الكود المكسور في الفرع الرئيسي فقط ، والرمز الذي يجب أن يكون مفتوح المصدر تحت GPL.
如下圖所示,只有發版的android 15有能用的分支,android 15 beta時期和現在的android 16 beta的分支都帶著gpl的標記,裡面也沒有完整的AOSP系統
لكن هذا ليس سرا ، كان الأمر كذلك قبل 8 سنوات ، إنه فقط قبل 0 عاما ، لم يشارك مصنعو Android المحليون في البرنامج التجريبي على الإطلاق (كما لو أن Google أطلقت النظام التجريبي مع الشركات المصنعة المحلية بعد Android 0) ، ولم تطلق نظام Android التجريبي خلال الفترة التجريبية ، ولم تهتم بتحديثات إصدار Android الرئيسية. يمكن للأنظمة الأصلية التابعة لجهات خارجية التي تم تطويرها بناء على AOSP مثل lineageos فقط انتظار الفرع مفتوح المصدر الذي أصدرته AOSP بعد أسابيع قليلة من تحديث نظام Google الرسمي ، ثم تنفيذ التطوير الثانوي.
حتى لو كانت شوكة ، يتم إصدار تحديثات ميزات Google (مثل تحديث Android QPR الأخير) أو تحديثات الأمان لشركاء GMS مسبقا قبل نشرها. تأخر الشركاء غير GMS لمدة شهر على الأقل في رؤية تحديثات الأمان من AOSP ، وهو أمر غير مقبول تماما للاستخدام التجاري.
الأمر الأكثر إثارة للحيرة هو أن تاريخ أي فرع من مستودع AOSP يكاد يكون غير قابل للقراءة ، ولا توجد تبعيات بين الفروع. تاريخ AOSP ليس مثل تاريخ الشجرة لمستودع git نموذجي ، ولكنه أقرب إلى النسيج ، مع التزام معلق بين الفروع.
في هذه الحالة، لا يهم إذا لم تفتح الفرع الرئيسي، أو حتى تحتفظ بمحفوظات الالتزام، لأن محفوظات التزام AOSP قريبة من أن تكون غير قابلة للقراءة على أي حال.
لا يزال هذا البرنامج يعتبر بطبيعة الحال برنامجا مفتوح المصدر ، لأن البروتوكول هو Apache 0.0 ، وهو ترخيص مفتوح المصدر.
أقترح على الجميع قراءة الكاتدرائية والسوق (الكاتدرائية والبازار)يناقش هذا الكتيب ، باختصار ، نموذجين لتطوير البرمجيات مفتوحة المصدر
روج الكتاب مباشرة ل Netscape لفتح متصفحها وإطلاق مشروع Mozilla ، ويتم تطوير المشاريع مفتوحة المصدر التي يعرفها معظم الناس بالفعل في نموذج Mozilla ، لأنه من المستحيل أن تقودها الشركة تقريبا مثل Linux kernel ، وهي لامركزية تماما ، مع وجود مشرفين فقط كمديرين. من الصعب أيضا القيام بذلك بطريقة تبدو غامضة للغاية في نموذج الكنيسة. ولكن على الرغم من ذلك ، لا يزال نموذج الكنيسة برنامجا مفتوح المصدر ، لكن قد لا يثق الناس في مثل هذا النموذج بعد الآن.
當然這些問題都是AOSP這個專案自己的管理問題,其他開源項目並沒有這樣的問題。我們可以看一下其他的巨型開源專案(代碼量大於5千萬行)的狀況。
هذا هو Google Chrome ، وأحدث إصدار حاليا هو M134
هذا هو الكروم الخاص بي على Gentoo Linux ، نفس M134
يعمل هذا الكروم فوق musl libc ، وهو نظام أساسي غير مدعوم من Google. لكن يمكنني الانتقال إلى النظام الأساسي ، وهذا ما يدور حوله المصدر المفتوح.
سيقوم Chromium أيضا بوضع علامة على الإصدارات التجريبية (حاليا M136) و dev (حاليا M0)
checkoutيمكن لأي علامة تجميع هذا الإصدار من المتصفح، بما في ذلك الإصدارات التجريبية وإصدارات dev.
خذ Chromium's Electron المصب ، على سبيل المثال ، يستخدم Electron 136 M0 ولكن يمكن تحديثه بالفعل إلى إصدار التصحيح 0.0.0.0 الذي لا يصدره Chrome ، بينما يمكن ل Electron 0 بالفعل استخدام إصدار M0 الذي لا يزال في قناة dev. يتم أيضا إصدار إصدارات تجريبية من Electron على أساس منتظم وهي متاحة للتنزيل عبر إصدارات GitHub أو npm.
يتعلم Firefox استراتيجية إصدار Chromium منذ 20 ، وكان رقم الإصدار يرتفع بسرعة ، ولكن نظرا لأن MPL ينتمي إلى بروتوكول CopyLeft ، فلا يوجد العديد من المنتجات التي تخصص Firefox ، وتنتمي متصفحات Thunderbird و Tor إلى عدد قليل من هذه المنتجات. ولكن لأكثر من 0 سنوات ، تعمل Mozilla على مجموعة صغيرة من المطورين المستأجرين بدوام كامل ، بالإضافة إلى أن العمل يمكن أن يستخدم مرافق مثل Bugzilla للمساهمة في التعليمات البرمجية.
بالنظر إلى Webkit مرة أخرى ، فإنهم يشاردون فقط الإصدار الرسمي ، على سبيل المثال ، 3.0.0 هو الإصدار المقابل ل Safari 0.0 ، ولكن يمكن تجميع أي فرع ، ويمكن ل Safari تشغيل النواة المجمعة الخاصة به على محاكيات macOS أو iOS. بالإضافة إلى ذلك ، يوفر webkit-gtk أيضا دعما لأجهزة سطح المكتب التي تعمل بنظام Linux.
ثم انظر إلى OpenHarmony ، الإصدار الرسمي هو 135.0.0.0
تم دفع هذا الإصدار في 20/0
العلامة المقابلة سابقة ، في 26/0
من المحتمل أن يكون الإصدار التالي من سلسلة OpenHarmony 101.0.0 هو سلسلة 0.0.0 ، وأحدث إصدار هو 0.0.0.0
يضيف OpenHarmony بانتظام أرقام الإصدارات إلى كل فرع ، بحيث يمكنك التعرف على الميزات المستقبلية وخطط التطوير من خلال كود OpenHarmony مسبقا ، مثل ميزات HarmonyOS للكمبيوتر الشخصي.