TurboGears
ٹربو گیئرز ایک ازگر ویب ایپلی کیشن فریم ورک ہے جس میں ڈبلیو ایس جی آئی کے کئی اجزاء جیسے ویب اوب، ایس کیو ایل کیمی، کاجیکی ٹیمپلیٹ لینگویج اور ریپوز شامل ہیں۔ ٹربو گیئرز کو ماڈل ویو کنٹرولر (ایم وی سی) فن تعمیر کے ارد گرد ڈیزائن کیا گیا ہے، بالکل اسٹرٹس یا روبی آن ریلز کی طرح، جسے ازگر میں تیز رفتار ویب ایپلی کیشن کی ترقی کو آسان اور زیادہ برقرار رکھنے کے قابل بنانے کے لیے ڈیزائن کیا گیا ہے۔ ورژن 2.3 کے بعد سے فریم ورک ایک "کم سے کم موڈ" بھی فراہم کر رہا ہے جو اسے ایسے ماحول میں استعمال کے لیے مائیکرو فریم ورک کے طور پر کام کرنے کے قابل بناتا ہے جہاں پورے اسٹیک کی ضرورت نہیں ہے اور نہ ہی مطلوب ہے۔ ٹربو گیئرز کے اجزاء ٹربو گیئرز متعدد مختلف لائبریریوں اور مڈل ویئر کے اوپر بنائے گئے ہیں۔ ڈیفالٹ ٹولز 1. x، 2. x اور 2.3 + سیریز کے درمیان تبدیل ہو چکے ہیں، لیکن ان میں سے زیادہ تر اجزاء کو دونوں میں استعمال کیا جا سکتا ہے کیونکہ بہت سی متبادل ترتیبات کے لیے سپورٹ موجود ہے۔ مندرجہ ذیل بنیادی اجزاء ہیں جن کے ساتھ ایک ڈویلپر تعامل کرے گا۔ ٹربو گیئرز 2. x اجزاء ایس کیو ایل کیمی (ماڈل)-صارف کے ڈیٹا بیس کے ٹیبل ڈھانچے کی وضاحت کرتا ہے اور انہیں ازگر اشیاء سے کیسے جوڑنا ہے جس کے ساتھ صارف کا کنٹرولر تعامل کر سکتا ہے۔ منگ (ماڈل)-مونگو ڈی بی کے لیے ڈیٹا تک رسائی کی پرت فراہم کرتا ہے، بالکل ایس کیو ایل کیمی کی طرح اس بات کی وضاحت کرتا ہے کہ مونگو ڈی بی کے مجموعوں کو ازگر اشیاء سے کیسے جوڑا جائے جس کے ساتھ صارف کا کنٹرولر تعامل کر سکتا ہے۔ کاجیکی (پہلے جینشی) (دیکھیں)-ایچ ٹی ایم ایل یا ایکس ایچ ٹی ایم ایل کے لیے ٹیمپلیٹس کی وضاحت کرتا ہے جو صارف تیار کرے گا۔ یہ وہ جگہ ہے جہاں صارف اس فرنٹ اینڈ کی وضاحت کرتا ہے جس کے ساتھ کلائنٹ بات چیت کرے گا۔ ریپوز-Repoze.who سیکیورٹی (شناخت اور تصدیق) کو سنبھالنے کے لیے استعمال ہوتا ہے۔ صارفین کنٹرولرز سے منسلک پیش گوئیوں کی بنیاد پر اجازت کے قواعد کی وضاحت کر سکتے ہیں، فریم ورک پہلے ہی کچھ بلٹ ان پیش گوئیاں فراہم کرتا ہے، لیکن اپنی مرضی کے مطابق لکھے جا سکتے ہیں۔ ٹوسکا ویجیٹس-فارم اور پیچیدہ جی یو آئی بنانے کے لیے بنیادی ویجیٹ لائبریری ہے۔ ٹوسکا پہلے سے طے شدہ طور پر سادہ ایچ ٹی ایم ایل فارم تیار کرے گا، لیکن اسے مزید جدید جاوا اسکرپٹ ویجٹ اور ٹول کٹ سے منسلک کرنے کے لیے مڈل ویئر کے طور پر بھی استعمال کیا جا سکتا ہے۔ ٹربو گیئرز 1. x کے برعکس، اب کوئی ترجیحی/مربوط جاوا اسکرپٹ لائبریری نہیں ہے۔ گیئر باکس-وہ ٹول کٹ ہے جو ٹربو گیئرز کے ذریعے پروجیکٹوں کے انتظام، نئے بنانے اور ٹربو گیئرز ایپلی کیشنز کی خدمت کے لیے استعمال کیا جاتا ہے لیکن صارف اپاچی، نگنکس، یا کسی دوسرے ڈبلیو ایس جی آئی سے مطابقت رکھنے والے ویب سرور سے بھی جڑ سکتا ہے۔ 2. 3 سے پہلے کے ورژن بھی استعمال کریں گے: پائلنس (کنٹرولر)-یہ مڈل ویئر صارف کے تمام بیک اینڈ منطق کو سنبھالتا ہے اور ویب پر ڈیٹا پیش کرنے کے لیے صارف کے ویب سرور سے جڑتا ہے۔ پیسٹر گیئر باکس کی جگہ استعمال ہونے والا کمانڈ ٹول کٹ اور ویب سرور تھا۔ Repoze.what-بالترتیب اجازت کو سنبھالنے کے لیے استعمال ہوتا ہے۔ ویب کے سامنے آنے کے لیے صارف کے کنٹرولر کے عناصر کی وضاحت کرتے وقت، repoze.what پیش گوئی کرتا ہے کہ ان تک کون اور کن شرائط کے تحت رسائی حاصل کر سکتا ہے۔ ٹربو گیئرز 1. x اجزاء SQLObject (ماڈل)-ڈیٹا بیک اینڈ جو بہت سے ڈیٹا بیس سرورز پر موجودہ ڈیٹا کے ساتھ ڈیٹا بیس یا انٹرفیس بنا سکتا ہے۔ ٹربو گیئرز> = 1.1 میں SQLAlcheymy ڈیفالٹ بننے کے لیے تیار ہے۔ کڈ (ویو)-ایکس ایچ ٹی ایم ایل فرنٹ اینڈ ٹیمپلیٹنگ انجن جہاں تمام ٹیمپلیٹس درست ایکس ایچ ٹی ایم ایل یا ایکس ایم ایل فائلیں ہیں جو عام طور پر اس طرح سے بنائی جاتی ہیں جو ان ٹیمپلیٹس کو ڈیزائن کی جانچ پڑتال کے لیے سادہ ایکس ایچ ٹی ایم ایل فائلوں کے طور پر کھولنے کی اجازت دیتی ہیں۔ ایک ہی وقت میں ازگر کے ٹکڑوں کو ایکس ایم ایلش انداز میں سرایت کرنے کے لیے خصوصیات فراہم کی جاتی ہیں۔ جینشی کڈ کا جانشین ہے اور اسے ٹربو گیئرز> = 1.1 میں ڈیفالٹ ٹیمپلیٹنگ انجن کے طور پر تبدیل کرے گا۔ یہ تقریبا 100% نحو سے مطابقت رکھتا ہے۔ چیری پائی (کنٹرولر)-مڈل ویئر جو ویب ایپلی کیشنز کو ایونٹ ہینڈلرز لکھ کر پروگرام کرنے کی اجازت دیتا ہے جو (ٹربو گیئرز کے معاملے میں) ٹیمپلیٹس کو ڈیٹا واپس کرتا ہے۔ وہی ڈیٹا جے ایس او این ڈیٹا اسٹریم کے طور پر ایجیکس فیشن میں بھی حاصل کیا جا سکتا ہے۔ موچی کٹ ٹربو گیئرز 1. x کے لیے ترجیحی لیکن اختیاری جاوا اسکرپٹ لائبریری ہے۔ یہ جاوا اسکرپٹ میں پروگرامنگ کو مزید پائتھونک بنانے کے لیے ڈیزائن کیا گیا ہے۔ یہ زیادہ تر ایجیکس کی خصوصیات اور ویجٹ کو نافذ کرنے کے لیے استعمال ہوتا ہے کیونکہ یہ غیر متزلزل انداز میں جے ایس او این ڈیٹا اسٹریمز حاصل کرنے کے لیے ایک انٹرفیس فراہم کرتا ہے۔ ٹیمپلیٹ پلگ ان جنشی کے علاوہ ٹیمپلیٹنگ زبانوں کو صارف کی ایپ کی کنفیگریشن فائل کے ذریعے استعمال کیا جا سکتا ہے۔ فی الحال 2.1 میں سپورٹ کیے جانے والے پلگ ان میگٹی، جنجا 2، ماکو، چیتا اور کاجیکی ہیں۔ بچوں کی مدد کی فی الحال منصوبہ بندی نہیں کی گئی ہے کیونکہ جینشی عملی طور پر ایک جیسی ہے۔ یہ فہرست مستقبل کے ورژن میں تبدیل ہوتی رہ سکتی ہے۔ پروجیکٹ کی تاریخ ٹربو گیئرز کو اصل میں 2005 میں کیون ڈینگور نے ابھی تک غیر ریلیز شدہ زسٹی نیوز پروڈکٹ کے پیچھے فریم ورک کے طور پر بنایا تھا۔ جب انہوں نے اسے ستمبر 2005 کے آخر میں اوپن سورس فریم ورک کے طور پر جاری کیا تو اسے پہلے 3 مہینوں میں 30,000 سے زیادہ اسکرین کاسٹ ڈاؤن لوڈ موصول ہوئے۔ جنوری 2007 کیون ڈینگور پروجیکٹ لیڈر کے طور پر ریٹائر ہوئے اور البرٹو والورڈے نے اپنے جانشین کے طور پر اس منصوبے کا انتظام کیا، لیکن بعد میں دیگر ذاتی وعدوں کی وجہ سے سبکدوش ہو گئے۔ البرٹو اب بھی اپنے ٹوسکا ویجیٹس پروجیکٹ کے ذریعے ٹربو گیئرز کمیونٹی میں شامل ہے۔ ٹربو گیئرز پروجیکٹ کا انتظام اب مارک رام (بطور ٹربو گیئرز 2 ڈویلپمنٹ لیڈ) اور فلورنٹ ایڈ (بطور ٹربو گیئرز 1. x ریلیز مینیجر) کی قیادت میں تقریبا نصف درجن کور ڈویلپرز کے ایک گروپ کے ذریعے مشترکہ طور پر کیا جاتا ہے۔ جون 2007 میں کمیونٹی نے ٹربو گیئرز API کو پائلنز میں استعمال ہونے والے اجزاء اور پروٹوکول کے اوپر رکھنے کے تجربات شروع کیے اور یہ قیاس آرائیاں کی گئیں کہ دونوں فریم ورک آخر کار ضم ہو سکتے ہیں۔ تاہم، سرکاری ٹربو گیئرز 2 دستاویزات میں کہا گیا ہے کہ دونوں منصوبوں کی "مختلف، لیکن ہم آہنگ ترجیحات" کی وجہ سے ایسا ہونے کا امکان نہیں ہے۔ پائلنز نچلے درجے کے، توسیع پذیر ڈیزائن پر توجہ مرکوز رکھنا چاہتے تھے جبکہ ٹربو گیئرز ایک مکمل، صارف دوست پیکیج پیش کرنے پر مرکوز تھا، اور اس لیے دونوں ایک ساتھ اسی طرح کام کرتے ہیں جس طرح اب ڈیبین اور اوبنٹو کرتے ہیں۔ نئی 2. x برانچ کی پہلی مستحکم ریلیز مئی 2009 میں ہوئی۔ فال 2008 تک، ٹربو گیئرز کی ایک بڑی اور صحت مند کمیونٹی ہے جس میں ٹربو گیئرز میلنگ لسٹ میں 3000 سے زیادہ صارفین ہیں، نومبر 06 میں شائع ہونے والی پرینٹس ہال کی ایک کتاب، اور حقیقی دنیا میں تعینات متعدد اوپن سورس اور ملکیتی ٹربو گیئرز ایپلی کیشنز۔ ترقی ایک معتدل لیکن مستحکم رفتار سے آگے بڑھتی ہے اور 2008 اور 2009 میں گوگل سمر آف کوڈ مینٹورنگ آرگنائزیشن کے طور پر اس منصوبے کی کامیاب شرکت سے بھی اسے نئی تقویت ملی۔ ٹربو گیئرز 1.1، جس کا مقصد میراث سائٹس کو 2. x میں منتقلی میں مدد کرنا ہے، اکتوبر 2009 میں جاری کیا گیا تھا۔ ٹربو گیئرز 2 کی طرف سے لائی گئی تبدیلیوں کے مطابق اسے اپ ڈیٹ کرنے کے لیے کتاب کی ایک نئی ترمیم پر کام جاری ہے۔ 2010 میں یہ منصوبہ کسی حد تک ناکام ہو گیا۔ لیڈ ڈویلپرز کو حقیقی زندگی کے مسائل کی وجہ سے بلایا گیا تھا۔ تاہم، جنوری 2011 کے آخر تک، اس منصوبے کی تنظیم نو اور دوبارہ پٹری پر آنے پر کام شروع ہو چکا تھا۔ کئی مہینوں تک بنیادی ڈھانچہ حاصل کرنے اور کوڈنگ کے مسائل کے ذریعے کام کرنے کے بعد، ٹربو گیئرز نئے ورژن (2.4 اور 2.2.2) جاری کرنے میں کامیاب رہا ہے۔ 2013 میں، پسماندہ مطابقت کو برقرار رکھتے ہوئے، پروجیکٹ پائلنز کوڈ بیس سے ہٹ کر پائیتھن 3 کو سپورٹ کرنے، اسپیڈ اپس اور انسٹال کرنے کا آسان عمل فراہم کرنے کے لیے منتقل ہو گیا ہے۔ اس کی وجہ سے اگست 2013 میں ورژن 2.3.0 کی ریلیز ہوئی۔ اس کا ایک تیز ریلیز سائیکل کا بھی اعلان کیا گیا ہے جس کی وجہ سے ہر ~ 3 ماہ میں مینٹیننس ریلیز ہونا چاہیے۔ ٹربو گیئرز کی ترقی کا مستقبل اب بنیادی طور پر نئی 2. x برانچ پر مرکوز ہے، جس کا ورژن 2.3 اب پائیتھن 3 سپورٹ کے ساتھ مرکزی ٹریک ہے۔ 1. x برانچ سے 2. x برانچ میں منتقلی کا راستہ 1.1 اور 1.5 ریلیزز کے ذریعے فراہم کیا جاتا ہے جس نے ڈیفالٹ او آر ایم اور ٹیمپلیٹنگ زبانوں کو 2. x سیریز کے استعمال کردہ زبان سے ملنے کے لیے منتقل کیا۔ ٹربو گیئرز ٹیم نے نئے صارفین کو واضح کیا کہ 2. x مستقبل ہے، اور 1. x محض موجودہ صارفین کی سہولت کے لیے برقرار رکھا گیا ہے۔ 2011 کے دوران ٹربو گیئرز کے لیڈ ڈویلپرز پائلنز پروجیکٹ کے ساتھ بات چیت کر رہے ہیں تاکہ ان کے ساتھ اور Repoze.BFG کے ڈویلپرز کے ساتھ پرامڈ نامی ایک نئے متحد پروجیکٹ کے طور پر افواج میں شامل ہوں۔ اس اقدام میں پسماندہ مطابقت کے مسائل کی وجہ سے، اور اس بات کی ضمانت ہے کہ ٹربو گیئرز طویل مدتی میں ایک قابل اعتماد پلیٹ فارم رہتا ہے، موجودہ ٹیم نے ہر ممکن چیز پر پائلنز پروجیکٹ کے ساتھ تعاون کرنے کا فیصلہ کیا لیکن ٹربو گیئرز کور کو اہرام پر مبنی نہیں کیا۔ مستقبل کی ترقی، پائیتھن 3 سپورٹ اور رفتار میں بہتری 2.3 برانچ میں ہوئی ہے جس میں ٹربو گیئرز کور کی مکمل دوبارہ تحریر دیکھی گئی ہے جبکہ اسے موجودہ ایپلی کیشنز کے ساتھ پسماندہ مطابقت رکھتی ہے، کیونکہ اس ریلیز ٹربو گیئرز کا پائلنز فریم ورک پر مبنی ہونے کے بجائے اس کا اپنا کور تھا۔ 2. 3 سیریز کے دوران فریم ورک ایک نام نہاد "کم سے کم موڈ" کے ساتھ تجربہ کر رہا ہے جو اسے ایک مائیکرو فریم ورک کے طور پر کام کرنے کے قابل بناتا ہے جس سے انحصار کو دسیوں سے کم کر کے صرف 3 کر دیا جاتا ہے اور اس کے مقاصد کے لیے فلاسک اور جانگو کے درمیان ٹربو گیئرز کو ازگر فریم ورک کے گلاب میں رکھا جاتا ہے، کیونکہ اس کا مقصد صرف اس حقیقت پر منحصر ہے کہ ٹربو گیئرز 2 یا tg.devtools پیکیج استعمال کیا جاتا ہے۔ ورژن 2.4 کے بعد سے فریم ورک میں اب ایک ماڈیولر اجزاء پر مبنی فن تعمیر ہے، جو صارفین کو اپنی مرضی کے مطابق اجزاء کو فعال اور تبدیل کرنے کی اجازت دیتا ہے، اس طرح ٹربو گیئرز دراصل ایک ویب فریم ورک ہونے کے اپنے مشن کی پیروی کرتا ہے جو صارفین کی ضروریات کے مطابق ہوتا ہے۔ ویب فریم ورک کا Django موازنہ بھی دیکھیں حوالہ جات رام، ایم ؛ ڈینگور، کے ؛ سیفان، جی (نومبر 7، 2006)۔ ٹربو گیئرز، پرینٹس ہال کے ساتھ ریپڈ ویب ایپلی کیشنز۔ نوٹ بیرونی روابط ٹربو گیئرز ہوم پیج ازگر (پروگرامنگ زبان) سافٹ ویئر ازگر (پروگرامنگ زبان) ویب فریم ورک سافٹ ویئر ایم آئی ٹی لائسنس کا استعمال کرتے ہوئے