GitHub لائسنس کا انتخاب کیسے کریں اور صحیح انتخاب کرنا کیوں ضروری ہے؟ GitHub آئی ٹی پروجیکٹس اور ان کے بعد کی میزبانی کی مشترکہ ترقی کے لیے سب سے بڑی سروس ہے۔ اس ویب سروس کی مدد سے، لامحدود تعداد میں لوگ ایک ہی وقت میں کسی پروجیکٹ پر کام کر سکتے ہیں، ساتھ ہی دنیا میں کہیں سے بھی۔ GitHub میں ایک انتظامی یا کنٹرول سسٹم بھی ہے جو آپ کو وقت کے ساتھ ساتھ ڈویلپرز کی طرف سے کی گئی تمام تبدیلیوں کو دیکھنے اور کنٹرول کرنے کی اجازت دیتا ہے، اور یہ آپ کو اس حالت میں واپس جانے کی بھی اجازت دیتا ہے جو تبدیلیوں سے پہلے ہوئی تھی۔
لیکن سادہ الفاظ میں، GitHub پروگرامرز اور ڈویلپرز کے لیے نام نہاد سوشل نیٹ ورک ہے، جہاں آپ دوسرے ڈویلپرز کے کوڈز تلاش کر سکتے ہیں، اور بعد میں مشق کر سکتے ہیں۔ آپ اپنے پورٹ فولیو کو GitHub پر بھی اسٹور کر سکتے ہیں۔ عام طور پر، GitHub ایک ایسی خدمت ہے جو نوسکھئیے ڈویلپرز اور تجربہ کار پروگرامرز دونوں کے لیے موزوں ہے۔ تاہم، اس سروس کے صارفین کے پاس لائسنس کے انتخاب کے بارے میں بعض اوقات کچھ سوالات ہوسکتے ہیں، کیونکہ ان کا انتخاب کافی متنوع ہے۔
GitHub لائسنس کیا ہے؟
لائسنس ایک خاص دستاویز ہے جو ریاستی فارم کے ذریعہ قائم کی گئی تھی اور آپ کو ایک خاص قسم کی کاروباری سرگرمی میں مشغول ہونے کی اجازت دیتی ہے، جس پر ریاست کی طرف سے خصوصی توجہ کی ضرورت ہوتی ہے۔ لیکن، اکثر، عملی طور پر، صرف مختصر لائسنس کے معاہدوں یا معاہدوں کو استعمال کیا جاتا ہے جو نجی قانون کے لائسنس کے اجراء کے لیے فراہم کرتے ہیں۔ عام طور پر، لائسنس صرف ایک کا تعاقب کرتا ہے، لیکن سب سے اہم مقصد، یہ لائسنس دہندہ اور لائسنس دہندہ کے درمیان ذمہ داریوں اور حقوق پر ایک معاہدہ ہے۔ یہ فرائض اور حقوق قطعی طور پر کچھ بھی ہو سکتے ہیں، لیکن صرف قانون کے دائرے میں رہ کر۔ ایک قابل ذکر مثال یہ ہے کہ لائسنس دہندہ کو لائسنس دہندہ کے کام کا استعمال کرتے وقت کاپی رائٹ ہولڈر کا نام درکار ہو سکتا ہے۔ یا، مثال کے طور پر، کاپی کرنے کے کام کی اجازت دیں، لیکن اس میں کسی قسم کی ترمیم کو قطعی طور پر ممنوع قرار دیں۔ یا ایسے تقاضوں کو سامنے لانے کے لیے کہ کام بالکل انہی شرائط پر جاری کیا جائے جو اصل میں ہے، اور اسی طرح مختلف شرائط پیش کرنے کی کافی مثالیں موجود ہیں۔ [کیپشن id=”attachment_12368″ align=”aligncenter” width=”780″]
اپاچی لائسنسوں میں سے ایک کی ایک مثال[/caption]
لیکن، یہ بھی، ہمیں یہ نہیں بھولنا چاہیے کہ لائسنس نہ صرف لائسنس دینے والے، بلکہ لائسنس دہندہ کے حقوق کا بھی تحفظ کرتا ہے۔ چونکہ اس میں آپ کام کے استعمال کی تمام شرائط کو واضح طور پر دیکھ اور پڑھ سکتے ہیں، اور اس لیے اسے ڈرنے کی ضرورت نہیں ہے کہ لائسنس دہندہ اس کے کام کے استعمال کے لیے اچانک کسی قسم کی کٹوتی یا کسی اور معاوضے کا مطالبہ کر دے گا۔
اگر آپ کام سے منسلک لائسنس استعمال کرنے سے انکار کرتے ہیں، تو کاپی رائٹس اب بھی کسی خاص ملک میں نافذ قانونی قواعد کے مطابق لاگو ہوتے ہیں۔ سیدھے الفاظ میں، کسی بھی طرح سے لائسنس کی عدم موجودگی کا مطلب یہ نہیں ہے کہ دوسرے مصنفین اس منصوبے کو اپنی مرضی کے مطابق استعمال کرسکتے ہیں۔ سب کچھ اس کے بالکل برعکس ہے، کیونکہ بغیر کسی مخصوص لائسنس کے، پروگرامر کسی بھی صورت میں ان حقوق سے دستبردار نہیں ہوتا ہے جو قانون کے ذریعے دیے گئے تھے۔ یہ ہمیشہ یاد رکھنا بھی ضروری ہے کہ لائسنس تمام حقوق اور ذمہ داریوں کو کنٹرول کرتا ہے۔ یہ کام کے مالک کو صارف کی توقعات اور کسی بھی وارنٹی سے کیا مراد ہے کی حفاظت کے لیے ہے۔ سب کے بعد، کوئی بھی نہیں چاہتا کہ ان کا ضابطہ کسی بھی طرح عدالت میں ختم ہو۔
کاپی رائٹ کیا ہے۔
کاپی رائٹ ایک شخص میں صرف اس وقت ظاہر ہوتا ہے جب، دانشورانہ سرگرمی کے نتیجے میں، وہ ایک خاص کام تخلیق کرتا ہے جو منفرد ہو، لیکن ایک ہی وقت میں مفید ہو، مثال کے طور پر، آپ اسی پروگرام کی تحریر کو لے سکتے ہیں. جب مندرجہ بالا سب کچھ ہو جاتا ہے، تو وہ شخص مصنف بن جاتا ہے اور اب اس کے پاس اس کام کے تمام کاپی رائٹس ہیں۔ یہ بھی کہنا چاہیے کہ کاپی رائٹس جائیداد اور غیر ملکیت ہیں۔ ان کا فرق یہ ہے کہ جائیداد کے حقوق کسی کو بھی منتقل کیے جا سکتے ہیں، لیکن غیر جائیداد کے حقوق ہمیشہ کسی بھی صورت حال میں مصنف کے پاس ہی رہیں گے۔ آخر کار، مصنف ہونا ایک ناقابل منتقلی اور ناقابل تنسیخ حق ہے۔
اوپن سورس لائسنس کس کے لیے ہے؟
یہ نوزائیدہ ڈویلپرز اور پروگرامرز کے درمیان بھی کافی مقبول سوال ہے، کیونکہ وہ صرف یہ نہیں سمجھتے کہ ان کے پروجیکٹ کے ساتھ لائسنس کیوں منسلک کیا جائے، کیونکہ اس کے بغیر پراجیکٹ خاموشی سے بھی موجود رہ سکتا ہے۔ تاہم، یہ مکمل طور پر درست نہیں ہے، کیونکہ اگر، مثال کے طور پر، کچھ نوزائیدہ ڈویلپر نے کچھ کافی اہم اور مفید کوڈ لکھا، لیکن لائسنس کے ساتھ اس کی حفاظت نہیں کی، تو دوسرے صارفین کے سوالات ہیں۔ اور خاص طور پر اس کی وجہ سے، جب کلائنٹ اس کے پاس آتے ہیں اور اس کوڈ کے ٹکڑے کو اپنے تجارتی مقاصد کے لیے استعمال کرنا چاہتے ہیں، تو وہ دیکھتے ہیں کہ کوڈ کے پاس کوئی لائسنس نہیں ہے اور وہ محض اس سے انکار کر دیتے ہیں۔ یہ اس حقیقت کی وجہ سے ہے کہ کمپنیاں صرف لائسنس کے بغیر کوڈ کا استعمال نہیں کریں گی، کیونکہ انہیں قانون اور وکلاء کے ساتھ مسائل کی ضرورت نہیں ہے۔
اور یہی وجہ ہے کہ سب سے زیادہ کارآمد اور آسان منصوبہ بھی کبھی نافذ نہیں ہو سکے گا۔ اور جو ڈویلپر کوڈ کا یہ ٹکڑا لینا چاہتا تھا اسے متبادل تلاش کرنا اور استعمال کرنا ہوگا، یا اس کوڈ کو مکمل طور پر دوبارہ لکھنا ہوگا جو پہلے ہی نوسکھئیے ڈویلپر نے پہلے ہی لکھا تھا۔ یہی وجہ ہے کہ پہلے سے یہ یقینی بنانا بہتر ہے کہ پروگرامر صحیح، اور سب سے اہم، موزوں لائسنس استعمال کر رہا ہے۔ 15 منٹ میں ایک ویڈیو ٹیوٹوریل میں GitHub کو دریافت کرنا: https://youtu.be/JfpCicDUMKc
کون سا GitHub لائسنس مخصوص حالات میں موزوں ہے – کیسے منتخب کریں؟
اس سوال کا کوئی صحیح جواب نہیں ہو سکتا، کیونکہ لائسنس کا انتخاب صرف اس منصوبے کے مقاصد اور خود ڈویلپر کی ذاتی ترجیحات اور خواہشات پر منحصر ہے۔ جیسا کہ آپ دیکھ سکتے ہیں، GitHub پر بہت سے مختلف لائسنس موجود ہیں، اور سب سے اہم بات یہ ہے کہ وہ سب مفت اور عوامی ڈومین میں ہیں، جس کا مطلب ہے کہ ہر پروگرامر
اوپن سورس لائسنس تلاش کر سکتا ہے جو یقینی طور پر اس کے پروجیکٹ کے مطابق ہوگا۔ لیکن، سب سے اہم بات، ہمیں یہ نہیں بھولنا چاہیے کہ اوپن سورس لائسنس صرف ایک کوڈ نہیں ہے جس کا کوئی لائسنس نہیں ہے۔تھوڑی سی تحقیق کے ساتھ، آپ تمام اوپن سورس لائسنس جمع کر سکتے ہیں اور انہیں تین بڑے گروپوں میں تقسیم کر سکتے ہیں:
- سخت حفاظتی.
- کمزور حفاظتی.
- اجازت دینے والا۔
سخت حفاظتی
لائسنس کی مضبوطی سے حفاظت اکثر جی پی ایل کی مختلف حالتیں ہیں۔ ان لائسنسوں کے لیے پروجیکٹ کے لائسنسنگ کے ساتھ ساتھ سورس کوڈز کے افشاء کی ضرورت ہوتی ہے، قطع نظر اس کے کہ کوئی کوڈ یا پروجیکٹ کس طرح استعمال کیا جائے گا یا پہلے ہی استعمال کیا جا چکا ہے۔
کمزور حفاظتی
کمزور حفاظتی لائسنس اکثر کم جی پی ایل کی مختلف حالتیں ہیں۔ جس میں اجازت دینے والے لائسنسوں سے بنیادی فرق یہ ہے کہ یہاں GPL لائسنس کے تحت پروگرام کو لائسنس دینا بھی ضروری ہے اور ساتھ ہی بغیر کسی ناکامی کے سورس کوڈ فراہم کرنا بھی ضروری ہے۔ اس کے ساتھ ساتھ، اگر پروگرامر کے پروجیکٹ میں کوئی لائبریری ہے، یعنی ایل جی پی ایل لائسنس کے تحت سٹیٹک لنکنگ یا ڈائنامک لنکنگ، تو وہ اس پروگرامر کے پروجیکٹ کے کسی بھی لائسنس کے ساتھ ہم آہنگ ہوگی۔
اجازت دینے والا
اجازت دینے والے لائسنسوں کی کافی بڑی تعداد ہے، ان کی صفوں میں سب سے زیادہ مقبول لائسنس MIT، Apache 2.0، اور BSD ہیں۔ معمولی تغیرات کے ساتھ، یہ لائسنس اوپن سورس پروجیکٹس اور تجارتی مقاصد اور پروجیکٹس دونوں میں کوڈ کے استعمال کی اجازت دینے کی اہلیت رکھتے ہیں۔ لیکن، اس معاملے میں، یہ یاد رکھنا ضروری ہے کہ اصل پروگرام کی تصنیف کی نشاندہی کرنا ضروری ہے۔
دیگر مشہور GitHub لائسنس
لائسنس کے ان تین گروپوں کے علاوہ، اور بھی ہیں، مثال کے طور پر، ایک اور سب سے مفید لائسنس کلاس پاتھ ایکسٹینشن کے ساتھ GPLv2 ہے۔ یہ لائسنس اوپن سورس پروجیکٹس اور تجارتی پروجیکٹس اور مقاصد دونوں کے لیے بھی استعمال کیا جا سکتا ہے۔ اس کی سب سے زیادہ مقبول شکل اوریکل میں ہے، جو اپنے اوپن سورس پروجیکٹس اور حل کو لائسنس دینے کے لیے کلاس پاتھ ایکسٹینشن کے ساتھ GPLv2 کا استعمال کرتا ہے۔ یہ لائسنس کافی اہم اور مفید ہے، کیونکہ باقاعدہ GPL لائسنس، مثال کے طور پر، کبھی بھی بائیک کوڈ سے نمٹنے کے قابل نہیں ہوں گے۔ یعنی ان کے پاس تالیف اور لنک کرنے کے عمل کی ایک خاص تفصیل ہے، جو کہ دوسری تشریح شدہ پروگرامنگ زبانوں کے لیے بالکل غیر موزوں ہے، ایسی زبانوں میں سب سے زیادہ مقبول جاوا زبان ہے۔ یہ ایسے معاملات کے لئے ہے کہ کلاس پاتھ ایکسٹینشن کے ساتھ ایک خصوصی لائسنس GPLv2 جاری کیا گیا تھا۔ آخر کار، یہ بہت صاف اور واضح طور پر کہتا ہے کہ جو لائبریری اس لائسنس کے تحت جاری کی گئی ہے اسے کسی بھی دوسرے لائسنس کے ساتھ تجارتی منصوبوں اور مقاصد کے لیے استعمال کیا جا سکتا ہے۔
GitHub لائسنس کے بارے میں آپ کو اور کیا جاننے کی ضرورت ہے
۔
لائسنس شامل کرنا
حتمی لائسنس کے آخر میں منتخب ہونے کے بعد، یہ صرف اسے پروجیکٹ کی جڑ میں شامل کرنے کے لیے باقی رہ جاتا ہے۔ اس عمل کو انجام دینے کے لیے، آپ کو پروجیکٹ کی تخلیق کے دوران یا کسی اور وقت پراجیکٹ کی جڑ کے تحت منتخب کردہ لائسنس کو شامل کرنے کی ضرورت ہے۔ لیکن اس کارروائی میں بھی، GitHub ویب سروس اپنے صارفین کا خیال رکھنے میں کامیاب رہی اور انہوں نے پراجیکٹ کے آغاز میں ہی حتمی لائسنس شامل کرنے کا کافی آسان طریقہ بنایا۔
تاہم، بدقسمتی سے، یہ سب کچھ نہیں ہے، کیونکہ ڈویلپر یا پروگرامر کو بالکل ان تمام انحصاروں کو چیک کرنے کی ضرورت ہے جو اس کے خیال یا پروجیکٹ میں استعمال ہوئے تھے۔ یعنی، اگر جی پی ایل لائسنس کے تحت جاری ہونے والے انحصار میں سے ایک بھی، تو مکمل ڈویلپر کا پروجیکٹ جی پی ایل کے موافق ہونا چاہیے۔ اس طرح کی تصدیق کے لیے، عام طور پر اس کے لیے پہلے سے تیار کردہ پروگرامز یا ٹولز استعمال کیے جاتے ہیں۔ مثال کے طور پر، اس کے لیے ایک ٹول ہے https://github.com/pivotal/LicenseFinder:
ہم کہہ سکتے ہیں کہ لائسنس دینا ایک وقت طلب کام ہے، لیکن ساتھ ہی کسی پروجیکٹ یا پروگرامر کے کسی خیال کی زندگی کے لیے ایک ضروری عمل ہے۔ صحیح لائسنس کا انتخاب کرنے کے لیے، بدقسمتی سے، آپ کو کافی وقت خرچ کرنا پڑتا ہے، تاہم، اس منصوبے کے کامیاب ہونے کے لیے یہ قابل قدر ہے۔ کسی بھی پروگرام کو لکھتے وقت سب سے پہلے لائسنس کے انتخاب کو سامنے رکھنا بہتر ہے، کیونکہ شروع میں ہی ایسا کرنے سے، آپ اپنی تمام کوششوں کو بالکل درست سمت میں لے سکتے ہیں اور ایسا پروگرام لکھ سکتے ہیں جو زیادہ تر کے لیے کامیاب اور آسان ہو۔ صارفین