لکیری انجینئر مفیز امجد نے ایک تفصیلی بیان شائع کیا ہے کہ کس طرح کمپنی نے اپنی مسلسل انٹیگریشن پائپ لائن کو دوبارہ کام کیا جب AI کوڈنگ ایجنٹس نے CI کو بدترین رکاوٹ میں بدل دیا - پل کی درخواست کے انتظار کے وقت کو چھ منٹ سے کم کر کے صرف پانچ سے زیادہ کر دیا جبکہ اس کے ٹیسٹ سویٹس سال کے آغاز سے تقریباً چار گنا ہو گئے۔

لائنر کے انجینئرنگ بلاگ پر 21 ستمبر کو شائع ہونے والی پوسٹ کا آغاز ہوا، جیسا کہ یہ چیزیں اکثر اوپر سے ایک مختصر ٹکٹ کے ساتھ ہوتی ہیں۔ اس سال کے شروع میں، امجد نے یہ جاننے کے لیے Linear کھولا کہ کمپنی کے CTO، Tuomas نے اسے "CI اخراجات زیادہ ہیں" کے عنوان سے ایک شمارہ تفویض کیا ہے — اور اس سے کہا کہ وہ CI کو تیز تر بنائے جب وہ اس پر تھے۔ اس کہانی پر مزید سیاق و سباق کے لیے، ہماری جاری AI انڈسٹری کوریج دیکھیں۔

جب ایجنٹ توثیق سے آگے نکل جاتے ہیں۔

مسئلہ ساختی ہے، واقعاتی نہیں۔ امجد نے لکھا، "ایجنٹوں نے شپ کوڈ کو تیزی سے تیز کر دیا ہے، لیکن ان تبدیلیوں کی توثیق کرنا اسی شرح پر برقرار نہیں رہا۔" ہر پل کی درخواست کو اب بھی CI سے گزرنا پڑتا ہے، اس لیے جیسے جیسے ترقی کی رفتار تیز ہوتی ہے، CI ایک چوک پوائنٹ بن جاتا ہے — بنیادی ڈھانچے کے اخراجات میں اضافہ ہوتا ہے اور ڈیولپرز اور ان کے ایجنٹوں کو فیڈ بیک کے لیے زیادہ انتظار کرنا پڑتا ہے۔

لکیری کو دو میٹرکس کے لیے بہتر بنایا گیا ہے: ایک PR CI پر کتنا انتظار کرتا ہے، اور رنر کا کتنا وقت لگتا ہے۔ مہینوں کے کام کے بعد نتائج: جنوری سے ٹیسٹ سویٹس کے تقریباً چار گنا ہونے کے باوجود، پل کی درخواست کا انتظار کا وقت چھ منٹ سے کم ہو کر صرف پانچ تک رہ گیا، اور فی ٹیسٹ رنر کا وقت تقریباً نصف رہ گیا۔

کام وسیع طور پر چار زمروں میں گرا: اپ گریڈ شدہ انفراسٹرکچر اور ٹولنگ، ملازمتوں کو بہتر بنایا جو دوسرے کام کو گیٹ کرتے ہیں، بار بار سیٹ اپ کو کم کرتے ہیں، اور ٹیسٹ پر عمل درآمد کو زیادہ موثر بناتے ہیں۔ Linear کا کوڈ بیس بنیادی طور پر TypeScript ہے، لیکن بہت سی اصلاحیں زبانوں اور ٹول چینز پر لاگو ہوتی ہیں۔

تیز مشینیں اور ایک مقامی کمپائلر

ابتدائی فوائد میں سے کچھ کے لیے تقریباً خود CI کی اصلاح کی ضرورت نہیں تھی۔ تیزی سے CPUs، اعلی کارکردگی والے اسٹوریج، اور بہتر کیش انفراسٹرکچر کے ساتھ تھرڈ پارٹی رنرز پر کام کے بوجھ کو GitHub ایکشنز سے ہٹانا فوری طور پر ادا ہوا: سوئچ کے دونوں طرف دو دنوں کے مقابلے میں، ملازمتیں اوسطاً 34% تیزی سے چلیں، کچھ کام کے بوجھ جیسے `tsc` 5% 2 گر گئے۔

ٹول چین کو جدید بنانے نے جیت کو بڑھا دیا۔ مقامی ٹائپ اسکرپٹ کمپائلر، 'tsgo' پر سوئچ کرتے ہوئے، ٹائپ چیک کے ہفتہ وار میڈین کو 73 فیصد تک کاٹ دیا - یہ اتنا بڑا ہے کہ ٹائپ چیکنگ کو مکمل طور پر بند کر دیا جائے۔

ٹائپ گراف کے بغیر لنٹنگ

لنٹنگ ایک اور ابتدائی ہدف تھا۔ مٹھی بھر Linear کے حسب ضرورت ESLint قواعد کا انحصار TypeScript قسم کی معلومات پر تھا، جس نے ہر لِنٹ کو ان کا جائزہ لینے سے پہلے مکمل قسم کا گراف بنانے پر مجبور کیا - linting کو میموری سے بھرپور CI ملازمتوں میں سے ایک بنانا۔

ٹیم نے تجریدی نحو کے درخت پر جامد تجزیہ استعمال کرنے کے لیے قواعد کو دوبارہ لکھا، بغیر کسی قسم کی معلومات کے فنکشن جیسی تعمیرات اور گارڈ پیٹرن کی شناخت کی۔ اس سے ESLint TypeScript کو مکمل طور پر چھوڑ دیتا ہے، جس سے API لِنٹ ٹائم 68% اور فل ریپوزٹری لِنٹ ٹائم 55% کم ہو جاتا ہے، میموری کے استعمال میں خاطر خواہ کمی کے ساتھ۔ اس نے بعد میں آکسلنٹ کی طرف ہجرت کو بھی آسان کر دیا، جس نے linting پر خرچ ہونے والے CI رنر منٹوں کو مزید کم کر دیا۔

نازک راستے کو سکڑنا

تیزی سے انفرادی جانچ کے ساتھ، Linear نے زوم آؤٹ کیا اور CI کو ایک سسٹم کے طور پر سمجھا۔ اس نے ہر چیز کے سامنے بیٹھی چھوٹی ملازمتوں کی طرف توجہ مبذول کرائی — راستے میں تبدیلی کا پتہ لگانا اور ٹیسٹ کے نتائج کیش کو نوکری کی سطح پر چیک کرتا ہے، یعنی آٹھ API ٹیسٹ شارڈز میں سے کوئی بھی اس وقت تک شروع نہیں ہو سکتا جب تک کہ وہ ختم نہ ہو جائیں۔

اصلاحات دانے دار لیکن اضافی تھیں۔ کیپنگ فیچ ڈیپتھ نے سب سے سست گیٹ 94 سیکنڈ سے لے کر 20 تک لے لیا۔ چیک آؤٹ کو مکمل طور پر ان ملازمتوں سے ہٹانا جن کے لیے کام کرنے والے درخت کی ضرورت نہیں تھی وہ 27 سیکنڈ سے کم کر کے 7 کر دیے۔ محدود تاریخ کے ساتھ ایک ویرل، بلابل چیک آؤٹ نے پش اور ضم ہونے والے واقعات کے لیے مزید 11 سیکنڈ کی بچت کی۔ مجموعی طور پر، تبدیلی کا پتہ لگانے والے کام کا درمیانی دورانیہ 26 سیکنڈ سے گھٹ کر 8، اس کا p90 31 سے 12، اور اس کا سب سے سست دوڑ 138 سیکنڈ سے 37 پر آگیا۔

چیک آؤٹ کی قابل اعتمادی کے لیے بھی کام کی ضرورت ہے: کیونکہ تھرڈ پارٹی رنر GitHub کے نیٹ ورک سے باہر بیٹھتے ہیں اور براہ راست IP لنک پر انحصار کرتے ہیں، وقفے وقفے سے لنک کی تنزلی کبھی کبھار رک جاتی ہے۔ لکیری نے `ایکشن/چیک آؤٹ` کو اپنی جامع کارروائی سے تبدیل کر دیا جو بیک آف کے ساتھ دوبارہ کوشش کرتا ہے، `GIT_HTTP_LOW_SPEED_LIMIT` اور `GIT_HTTP_LOW_SPEED_TIME` سیٹ کرتا ہے اس لئے ایک رکا ہوا کنکشن تقریباً 30 سیکنڈ کے بعد ہینگنگ کے بجائے ختم ہو جاتا ہے، اور ایک چیک آؤٹ کیش کا استعمال کرتا ہے جو grritk پر ایک sticky کیشے رکھتا ہے۔

ایک باریک فکس نے انضمام کی قطار کے ضائع ہونے والے وقت کو ہٹا دیا: کیش مارکر کو ضم کرنے سے پہلے فائنل چیک کے حصے کے طور پر لکھا جا رہا تھا، لہذا ایک PR اپنے ٹیسٹ پاس ہونے کے بعد بھی قطار میں بیٹھ سکتا ہے۔ اس تحریر کو نان گیٹنگ جاب میں منتقل کرنے سے ہر API پل کی درخواست اور ضم قطار اندراج کے لیے انضمام کے راستے سے 42 سیکنڈ کا وقت کٹ جاتا ہے۔ ایک ساتھ، ان تبدیلیوں نے رنر سٹارٹس کو کم کرتے ہوئے کیش مسز پر API PR کے لیے مطلوبہ چیک سے تقریباً ایک منٹ کا وقفہ لیا۔

فی کام کم ضائع شدہ سیکنڈ

آخری زمرہ نے ہر کام میں سیٹ اپ کی لاگت کو دہرایا۔ ہر API ٹیسٹ شارڈ نے ہر رن پر ایک ہی پوسٹگریس کلائنٹ کو انسٹال کرنے میں 7 سے 8 سیکنڈ گزارے۔ اسے نوڈ کے ساتھ ایک چھوٹی سی آئی بیس امیج میں منتقل کرنے کا مطلب ہے کہ شارڈز چلنے کے لیے تیار ہو سکتے ہیں۔ ٹیم نے بعد میں یہ دریافت کرنے کے بعد کہ سیٹ اپ کے دوران ان کو ڈاؤن لوڈ کرنا کبھی کبھار ہینگ ہو سکتا ہے اس تصویر میں مقامی تعمیر کے ہیڈر شامل کر دیے۔

یہ کیوں گونجا۔

اس پوسٹ نے ڈویلپرز کے لیے اعصاب شکن کردیا: یہ ہیکر نیوز کے صفحہ اول پر پہنچ گئی، جس میں ایک دن میں تقریباً 250 پوائنٹس اور تقریباً 280 تبصرے ہوئے۔ ردعمل کی وضاحت کرنا آسان ہے — لائنر کا تجربہ AI کی مدد سے ترقی کی لاگت کا نام دیتا ہے جس کا سامنا زیادہ تر انجینئرنگ تنظیمیں ابھی کر رہی ہیں۔ وہ ایجنٹ جو منٹوں میں پل کی درخواستیں تیار کرتے ہیں وہ اب بھی انسانی کیڈنس کے لیے تیار کی گئی توثیق کی پائپ لائنوں کا انتظار کرتے ہیں، اور اس انتظار کے ہر منٹ کو متوازی طور پر کام کرنے والے ہر ایجنٹ میں کئی گنا بڑھ جاتا ہے۔

لینیئر کے دوبارہ کام سے سبق یہ ہے کہ رکاوٹ حرکت پذیر ہے، لیکن صرف چاندی کی کسی ایک گولی کے بجائے بہت سے چھوٹے فکسز — تیز رنر، سستی ٹائپ چیک، سنٹیکس لیول لِنٹ رولز، کیپڈ فیچز، لچکدار چیک آؤٹ، پہلے سے تعمیر شدہ امیجز کے ذریعے۔

---

AI سے آگے رہیں

تازہ ترین AI خبریں، تجزیہ اور کامیابیاں حاصل کریں — سب ایک جگہ پر۔

مزید AI خبریں پڑھیں →