প্রকল্প সম্পর্কে

Reprobuild হলো একটি ইউনিফাইড বিল্ড সিস্টেম যা Dockerfiles, Nix flakes, Makefiles এবং CI পাইপলাইনের মতো খণ্ডিত টুলগুলোকে একটি একক, কম্পাইল-টাইম-ভেরিফাইড বিল্ড গ্রাফ দ্বারা প্রতিস্থাপন করে। এর মূল উদ্ভাবন হলো শুধুমাত্র ফাইল নয়, বরং স্টেটগুলোকেও—যেমন রানিং সার্ভিস, সিস্টেম সেটিংস বা ক্লাউড রিসোর্স—গ্রাফের নোড হিসেবে মডেল করা। এটি বিল্ড, ডেভ এনভায়রনমেন্ট এবং ইনফ্রাস্ট্রাকচারের ক্ষেত্রে সামঞ্জস্যপূর্ণ ক্যাশিং, হারমেটিকিটি এবং রোলব্যাক সুবিধা প্রদান করে। এর প্রধান বৈশিষ্ট্যগুলোর মধ্যে রয়েছে ফাইলসিস্টেম মনিটরিংয়ের (io-mon এর মাধ্যমে) মাধ্যমে স্বয়ংক্রিয় ডিপেন্ডেন্সি ডিসকভারি, আন্তঃনির্ভরশীল প্রজেক্টগুলোর মধ্যে হট কোড রিলোডিং (যেমন, Firefox বিল্ড করার সময় Cairo এডিট করা), এবং `repro develop`-এর মাধ্যমে জিরো-সেটআপ ডেভেলপমেন্ট। প্রজেক্টগুলো একটি টাইপড Nim DSL (`repro.nim`)-এ সংজ্ঞায়িত করা হয়, যা IDE সাপোর্ট এবং টুল ভার্সন, বিল্ড স্টেপ এবং সার্ভিস কনফিগারেশনের কম্পাইল-টাইম ভ্যালিডেশন সক্ষম করে। এটি Windows, Linux এবং macOS সমর্থন করে; Terraform প্রোভাইডারদের সাথে ইন্টিগ্রেট করে; এবং ডিস্ট্রিবিউটেড বিল্ড ও টেস্ট শার্ডিং অফার করে। Bazel বা Nix-এর বিপরীতে, এটি কোনো ডেমোন বা রিমোট সার্ভিস ছাড়াই একটি একক নেটিভ বাইনারি হিসেবে আসে। Reprobuild ইনপুটগুলোকে কন্টেন্ট-অ্যাড্রেসিং করে, আউটপুটের বাইট-ফর-বাইট সমতা যাচাই করে এবং স্বয়ংক্রিয়ভাবে SBOM এবং অ্যাটেস্টেশন তৈরি করার মাধ্যমে রিপ্রোডিউসিবিলিটি নিশ্চিত করে। এটি ReproOS-কেও শক্তি জোগায়, যা একই গ্রাফ মডেল ব্যবহার করে সম্পূর্ণ সোর্স থেকে তৈরি একটি Linux ডিস্ট্রিবিউশন। এর CLI কমান্ডগুলোর মাধ্যমে বিল্ডিং, টেস্টিং, সার্ভিস ম্যানেজমেন্ট, ওয়ার্কস্পেস সিঙ্কিং এবং লোকাল ইনফ্রাস্ট্রাকচার ম্যানেজমেন্ট করা যায়। সিস্টেমটি MIT-লাইসেন্সপ্রাপ্ত, তবে হোস্ট করা ক্যাশ এবং এন্টারপ্রাইজ ব্যবহারের জন্য ঐচ্ছিক বাণিজ্যিক পরিষেবা রয়েছে।