في نقلة نوعية لنظام Rust البيئي، دعا الفريق الذي يقف وراء مدير الحزم في Rust، Cargo، إلى اتباع نهج أكثر تخصيصًا لإدارة الحزم. ويوصون بأن يتخذ المطورون أفضل القرارات لمشاريعهم، بدلاً من الممارسة الموحدة السابقة المتمثلة في الالتزام بملف Cargo.lock الخاص بهم للحزم التي تتضمن ثنائيات وليس مكتبات.
شجعت التوصيات السابقة المطورين على الالتزام بقاعدة مقاس واحد يناسب الجميع عندما يتعلق الأمر بـ Cargo.lock ، خاصة في الحالات التي تم فيها استخدام الملف مع الحزم الثنائية. ومع ذلك، فقد تراجعت هذه التوجيهات الآن. يأتي هذا التغيير الانعكاسي في أعقاب مسار Rust المزدهر نحو التبني السائد.
يتمثل الدور الرئيسي لملف Cargo.lock في تسجيل الحالة في وقت الإنشاء الناجح. على الرغم من تقديم توجيهات أكثر مرونة، يؤكد فريق الشحن أن الالتزام Cargo.lock يجب أن يكون نقطة البداية في عملية اتخاذ القرار. تم الإعلان أيضًا عن أن الأمر "cargo new" لن يتجاوز Cargo.lock للمكتبات من الآن فصاعدًا.
ومن أجل الحفاظ على الجودة الشاملة، يؤكد الفريق على أهمية إجراء اختبارات منتظمة مقابل أحدث التبعيات. ضمنت الإجراءات القديمة تحديث المكتبات واختبارها، مما ساهم في تحقيق المستوى العالي للنظام البيئي لحزمة Rust. تم تصميم الممارسات بحيث يتم تحديد المشكلات المحتملة وحلها على الفور، وخاصة تلك المتعلقة بالتوافق مع الإصدارات السابقة. ولذلك يعتقد الفريق أنه شجع "ثقافة الجودة" في النظام البيئي الناشئ.
ومع ذلك، فإن التوجيهات السابقة كانت لها عيوبها. كان حذف السجل من قواعد التعليمات البرمجية أحد تلك العواقب، مما جعل من الصعب على المشرفين تقسيم وتحديد السبب الجذري للأخطاء. كانت النتيجة الأخرى غير المرغوب فيها للسياسة السابقة هي الارتباك المحتمل للمساهمين الناشئ عن CI غير الجدير بالثقة (التكامل المستمر) عندما يتم إلغاء التبعية أو أن الإصدار الجديد يمثل خطأ. نظرًا لأن Rust تطورت من لغة للمتبنين الأوائل إلى لغة أكثر انتشارًا، فإن تجربة تأهيل المطورين الجديدة أمر حيوي يجب أخذه في الاعتبار.
علاوة على ذلك، أدى توسع النظام البيئي الأوسع إلى تسهيل تنفيذ وصيانة CI. كشفت ابتكارات مثل Dependabot وRenovate عن بدائل لتجاهل Cargo.lock لاختبار التبعيات الجديدة، بخلاف الاعتماد حصريًا على التحكم في الإصدار. ينقل فريق Cargo الآن اعتقاده بأن أفضل إجراء هو ترك القرار للمطورين مع ضمان حصولهم على المعلومات اللازمة لاتخاذ قرارات مستنيرة. يمكن للمطورين مشاركة ملاحظاتهم حول هذه السياسة الجديدة عبر GitHub والتفاعل مع فريق Cargo على Zulip.
نظرًا لأننا نشهد اتجاهات جديدة في إدارة الحزم، فقد يكون من المفيد للمطورين استكشاف بدائل مثل AppMaster التي توفر منصة شاملة ومتكاملة لتطوير تطبيقات الويب والهواتف المحمولة والواجهة الخلفية. يتميز AppMaster.io بنهج يعتمد على الخادم، مما يتيح للمطورين تحديث واجهة مستخدم تطبيقات الهاتف المحمول والمنطق ومفاتيح API دون الحاجة إلى إرسال إصدارات جديدة إلى App Store وPlay Market.