عن المشروع

Reprobuild هو نظام بناء موحد يستبدل الأدوات المجزأة مثل Dockerfiles و Nix flakes و Makefiles ومسارات CI برسم بياني للبناء موحد يتم التحقق منه وقت التجميع. يكمن ابتكاره الأساسي في نمذجة الحالات وليس الملفات فقط - مثل الخدمات الجارية، أو إعدادات النظام، أو موارد السحابة - كعقد في الرسم البياني. وهذا يسمح بتخزين مؤقت متسق، وعزل تام (hermeticity)، وإمكانية التراجع عبر عمليات البناء، وبيئات التطوير، والبنية التحتية. تشمل الميزات الرئيسية الاكتشاف التلقائي للتبعيات من خلال مراقبة نظام الملفات (عبر io-mon)، وإعادة تحميل الكود السريع عبر المشاريع المترابطة (على سبيل المثال، تحرير Cairo أثناء بناء Firefox)، وتطوير بدون إعدادات مسبقة عبر `repro develop`. يتم تعريف المشاريع في لغة Nim DSL ذات أنواع محددة (`repro.nim`)، مما يتيح دعم IDE والتحقق وقت التجميع من إصدارات الأدوات، وخطوات البناء، وتكوينات الخدمات. يدعم النظام Windows و Linux و macOS؛ ويتكامل مع مزودي Terraform؛ ويوفر عمليات بناء موزعة وتقسيم للاختبارات (test sharding). وعلى عكس Bazel أو Nix، فإنه يأتي كملف ثنائي أصلي واحد بدون برامج خادمة (daemons) أو خدمات عن بعد. يفرض Reprobuild القابلية للتكرار من خلال عنونة المدخلات حسب المحتوى، والتحقق من تطابق المخرجات بايت مقابل بايت، وتوليد SBOMs والشهادات تلقائياً. كما يشغل النظام ReproOS، وهو توزيعة Linux مبنية بالكامل من المصدر باستخدام نفس نموذج الرسم البياني. تغطي أوامر CLI عمليات البناء، والاختبار، وإدارة الخدمات، ومزامنة مساحة العمل، وإدارة البنية التحتية المحلية. النظام مرخص بموجب رخصة MIT، مع خدمات تجارية اختيارية للتخزين المؤقت المستضاف والاستخدام المؤسسي.