Build light indicator
بلڈ لائٹ انڈیکیٹر ایک سادہ بصری اشارے ہے جو سافٹ ویئر ڈویلپرز کی ٹیم کو ان کے پروجیکٹ کی موجودہ حیثیت سے آگاہ کرنے کے لیے ایجائل سافٹ ویئر ڈویلپمنٹ میں استعمال ہوتا ہے۔ استعمال ہونے والی اصل چیز پریشر گیج سے لے کر لاوا لیمپ تک مختلف ہو سکتی ہے، لیکن اس کا مقصد ایک ہی رہتا ہے: فوری طور پر یہ بتانا کہ آیا سافٹ ویئر کا عمل (جیسے 'بلڈ') کامیاب ہے یا نہیں۔ بلڈ لائٹ انڈیکیٹر کروز کنٹرول سے شروع ہوا، جو تھاٹ ورکس کے ملازمین کے ذریعہ تیار کردہ ایک مسلسل انضمام کا ٹول ہے۔ اگرچہ یہ بنیادی طور پر ایک ویب پیج ڈیش بورڈ کے طور پر کام کرتا تھا جو کسی تعمیر کے بارے میں مزید تفصیلی معلومات کی اطلاع دے سکتا تھا، سافٹ ویئر آسان رپورٹنگ کے لیے بیرونی آلات کو بھی کنٹرول کر سکتا تھا۔ بلڈ لائٹ کا روایتی استعمال مسلسل انضمام (CI) نظام میں سافٹ ویئر کی تعمیر کی کامیابی کا تعین کرنا ہے۔ مختلف ترقیاتی ٹیموں نے مختلف اشارے استعمال کیے ہیں، لیکن ایک مقبول انتخاب سبز اور سرخ لاوا لیمپ ہے-تعمیر کامیاب ہونے پر سبز اور کچھ غلط ہونے پر سرخ۔ بلڈ لائٹس ویب کیم یا دیگر ذرائع سے بھی دور سے قابل رسائی ہو سکتی ہیں۔ تاہم، چونکہ مصروف ترقیاتی دفاتر میں بہت سے ٹیسٹ تازہ ترین تبدیلیوں کے بعد ہمیشہ دوبارہ ٹیسٹ کی حالت میں ہوں گے، کچھ اشارے میں تین ریاستی ڈسپلے ہوتے ہیں-پاس، فیل اور دوبارہ ٹیسٹ کیا جا رہا ہے، تاکہ عملے اور مینیجرز کے لیے زیادہ باریک اشارے فراہم کیے جا سکیں۔ واحد اشارے سے آگے مسلسل انضمام سے لے کر مسلسل جانچ تک کی ترقی کے ساتھ، بیک وقت تعمیر کے اہداف کی تعداد میں اضافہ ہو سکتا ہے، یہاں تک کہ ایک واحد کوڈ بیس کے لیے بھی۔ اس کے ساتھ ساتھ ایک سادہ تعمیر (یعنی۔ تالیف) ہدف، اب یونٹ ٹیسٹنگ اور سسٹم ٹیسٹنگ کی مختلف سطحیں ہوں گی۔ چونکہ وسیع پیمانے پر ٹیسٹ سست ہوتے ہیں اور ڈویلپرز کو تیزی سے فیڈ بیک دینے کے لیے تیز رفتار پر تیز رفتار ٹیسٹ جاری رکھنا مطلوب ہے، اس لیے تعمیر کے اہداف کی تعداد بڑھ کر پچاس یا اس سے زیادہ ہو سکتی ہے۔ یہ ایک سادہ لاوا لیمپ ڈسپلے کے ساتھ دکھانے کے لیے بہت زیادہ ہے۔ جینکنز جیسے انٹیگریشن سرورز ویب تک رسائی کے قابل ڈیش بورڈ پیج پیش کرتے ہیں اور اس کے بجائے اسے وال ماونٹڈ فلیٹ اسکرین مانیٹر پر مستقل طور پر دکھایا جا سکتا ہے۔ اس طرح کے ڈیش بورڈ کی تفصیلات پورے دفتر میں پڑھنے کے لیے بہت چھوٹی ہوتی ہیں، لیکن رنگ کی تبدیلیاں حیثیت کی مجموعی تصویر پیش کرتی ہیں۔ مسلسل ٹیسٹ پر مبنی ترقی کے طریقہ کار کے ساتھ، انہیں پاس کرنے کے لیے ورکنگ کوڈ تیار کرنے سے پہلے نئے ٹیسٹ جاری کیے جاتے ہیں۔ اس طرح ایک ایسا دور ہوتا ہے جب کچھ ٹیسٹ معلوم ہوتے ہیں، اور درحقیقت ناکام ہونے کی ضرورت ہوتی ہے۔ ناکام ٹیسٹوں کی ضرورت ہوتی ہے کیونکہ وہ تشویش کی صورتحال کا پتہ لگانے کے لیے نئے ٹیسٹوں کی صلاحیت کا مظاہرہ کرتے ہیں۔ ایک بار جب نیا کوڈ تیار ہو جاتا ہے اور کام کرتا ہے، تو یہ ٹیسٹ پاس ہونا شروع ہو جاتے ہیں۔ ایک مسلسل جانچ کا ماحول جس میں نئے ٹیسٹ ان کے کوڈ سے پہلے جاری کیے جاتے ہیں اس لیے دو تعمیراتی اہداف کی ضرورت ہوتی ہے: ایک تازہ ترین کوڈ اور ٹیسٹ کو ٹریک کرتا ہے، دوسرا 'ریلیز امیدوار' صرف انکریمنٹس میں اپ ڈیٹ ہوتا ہے جب تمام ٹیسٹ پاسنگ کوڈ کے ذریعے پورے کیے جاتے ہیں۔ تعمیر کے اشارے کے لیے اس کا مطلب یہ بھی ہے کہ ان اہداف میں سے ایک کو اکثر اس کے ٹیسٹ میں "ناکام" دکھایا جائے گا۔ چونکہ یہ متوقع "ناکامی" بے وقوف مبصرین کے لیے گمراہ کن ہوگی، اس لیے بلڈ انڈیکیٹر کو یا تو اسے چھپانا چاہیے یا اسے واضح طور پر پیش کرنا چاہیے۔ جہاں کئی کوڈ کے اہداف، جیسے کہ پرانے پروڈکٹ ورژن، اب بھی سی آئی کے لیے معاون ہیں، لیکن اس طرح کی فعال ترقی کے تحت نہیں ہیں، تب ایک مکمل ڈیش بورڈ پر "باسی" اہداف کا غلبہ ہو سکتا ہے جو شاذ و نادر ہی تبدیل ہوتے ہیں۔ اس صورت میں ایک منتخب ڈیش بورڈ زیادہ مناسب ہو سکتا ہے، جہاں صرف وہی اہداف دکھائے جاتے ہیں جو یا تو ناکام ہو رہے ہیں، یا حال ہی میں فعال ہیں۔ مکمل ڈیش بورڈ ڈویلپر کے ڈیسک ٹاپ کے لیے دستیاب ہے، لیکن وال ڈسپلے صرف اہم جھلکیاں دکھاتا ہے۔ اس طرح کے ڈیش بورڈز کو اکثر مقامی ضروریات کے مطابق مرکزی ڈیش بورڈ کو اسکرین سکریپ کرکے اور اس پر متعلقہ مقامی فلٹرز لگا کر مقامی طور پر کوڈ کیا جاتا ہے۔ جامد ڈیش بورڈ کے مقابلے میں متحرک فلٹرڈ ڈیش بورڈ کی ایک خرابی یہ ہے کہ کسی خاص ہدف کے لیے شبیہیں کی پوزیشن اسکرین پر منتقل ہو سکتی ہے، جس سے دفتر کے پار سے پڑھنا مشکل ہو جاتا ہے۔ اس صورت میں، مخصوص شبیہیں، جیسے پروڈکٹ کا لوگو، سادہ رنگین بلاکس کے بجائے دکھائے جا سکتے ہیں۔ حوالہ جات فرتیلی سافٹ ویئر ڈویلپمنٹ