مجوزهای GitHub – در مورد چه چیزی صحبت می کنیم؟ برای ایجاد نرم افزار، نه تنها باید آن را بنویسید، بلکه باید تصمیم بگیرید که کاربران یا توسعه دهندگان حق دارند با آن چه کار کنند. اگر کسی یک برنامه رایگان برای همه ایجاد کند، کار خوبی انجام می دهد، اما هرکس از آن استفاده می کند، باید نحوه استفاده از آن را توجیه کند. به عنوان مثال، اگر یک شرکت در فعالیت های خود با هر دفتر رایگان (مثلاً LibreOffice) کار کند، برای حسابرسان باید بتواند ثابت کند که این حق را دارد. برای این کار ارائه مجوز مناسب کافی خواهد بود. اگر توسعه دهنده فراموش کند که آن را فرموله کند، آنگاه ممکن است شرکت در موقعیت دشواری قرار گیرد.
طبقه بندی مجوزها و انواع مجوزها [/ عنوان] هنگام ایجاد یک برنامه، توسعه دهنده باید تصمیم بگیرد که چه اقداماتی با برنامه او مجاز است و چه مواردی مجاز نیستند. به عنوان مثال، ما می توانیم نه تنها در مورد استفاده، بلکه در مورد مطالعه متون برنامه ها یا ایجاد تنظیمات خود در محصول نرم افزار صحبت کنیم. GitHub یکی از بزرگترین خدمات برای توسعه پروژه های مشترک است. در عین حال، آنها می توانند در اینجا نه تنها به صورت رایگان، بلکه در پروژه های تجاری نیز کار کنند. با تعیین مجوز مناسب، توسعه دهندگان سردرگمی در مورد نحوه استفاده از محصول ایجاد شده را از بین خواهند برد. مشکل این است که انواع مختلفی از مجوزها وجود دارد و تعیین اینکه کدام گزینه در یک مورد خاص باید ترجیح داده شود همیشه آسان نیست. همچنین برای برخی از پروژه ها بدون مجوز نیست.برای درک اینکه چه حقوق و تکالیفی برای کاربران در موارد مختلف ایجاد می شود، لازم است درباره صدور مجوز بیشتر بدانید.
چرا باید مجوز پروژه های منبع باز در GitHub را صادر کنم؟
با تعیین مجوز مورد نیاز، توسعه دهنده ممکن است موارد زیر را ارائه دهد:
- شرایط استفاده از برنامه . آنها ممکن است برای پرداخت هزینه ای پیش بینی کنند یا در برخی یا همه موارد، اجازه استفاده رایگان را بدهند.
- گاهی اوقات برنامه هایی برای توسعه توسط جامعه ایجاد می شوند . در این مورد، مهم است که هر فردی که مایل است بتواند با متون برنامه آشنا شود.
- زمانی که کد در دسترس باشد، برخی ممکن است تغییراتی را ایجاد کنند تا برنامه تا حد امکان کاربردی و قابل اطمینان باشد. گاهی اوقات نویسنده می تواند به همه اجازه انجام این کار را بدهد، در موارد دیگر پیشنهاد می کند تغییری را برای او ارسال کند و به تنهایی در پروژه تغییراتی ایجاد می کند.
- شما باید تصمیم بگیرید که آیا اشخاص ثالث می توانند تغییراتی در پروژه ایجاد کنند و از طرف آنها پیشنهاد دهند. در این صورت باید مشخص شود که محصول آنها باید با کدام مجوز باشد.
با حل این مسائل و مسائل مشابه، نویسنده برنامه در واقع تا حد زیادی سرنوشت آینده محصول نرم افزاری را که ایجاد کرده است تعیین می کند.
چه نوع مجوزهایی وجود دارد
مجوز قراردادی است که در آن یکی از طرفین (صاحب مجوز) قانونی را برای طرف دیگر (دارنده مجوز) برای استفاده از محصولی که ایجاد می کند تعیین می کند. در عمل، ما در مورد امضای یک سند توسط طرفین صحبت نمی کنیم، بلکه در مورد رضایت خودکار با حقوق و تعهدات مربوطه در استفاده از آن صحبت می کنیم. عملا هیچ محدودیتی برای تعیین حقوق و تعهدات وجود ندارد. تنها شرط این است که آنها باید قانون را رعایت کنند. ایجاد مجوزهای شخصی شما کار دشواری است زیرا باید از سازگاری آن با سایر مقررات اطمینان حاصل کنید. بهترین گزینه انتخاب و استفاده از یکی از انواع استاندارد این گونه اسناد است. در عمل، استفاده از چند مجوز نیز مرسوم است. اغلب، در چنین مواردی، از دو مجوز به طور همزمان استفاده می شود.اگرچه نویسنده برنامه این حق را دارد که به طور مستقل قوانینی را که کاربران باید رعایت کنند تنظیم کند ، با این وجود ، در عمل استفاده از تعداد زیادی از انواع مجوزها توسعه یافته است که در بیشتر موارد می توانید از بین آنها مناسب را انتخاب کنید. موارد زیر محبوب ترین گزینه های مورد استفاده در Git Hub در اکثر موارد هستند. رایج ترین مجوزهای مورد استفاده در Git Hub عبارتند از:
برنامه نویس باید بتواند برنامه ای را انتخاب کند که با برنامه های او مطابقت داشته باشد. برای انجام صحیح این کار، باید درک کنید که چه ویژگی هایی در گونه های خاص ذاتی هستند.
اگر نویسنده از تنظیم سند امتناع ورزد، در این صورت حق چاپ اعمال خواهد شد که به طور پیش فرض توسط قانون کشورش ارائه شده است. عدم وجود مجوز در این روش به این معنی نیست که شما می توانید هر کاری که می خواهید با برنامه انجام دهید. در واقع این وضعیت را می توان یکی از انواع مجوزها دانست.
نحوه انتخاب مجوز Github
قبل از شروع به جستجوی یک گزینه مناسب، لازم است برنامه نویس الزامات خود را تدوین کند، که از این طریق مجوزهای بعدی را ادامه می دهد. در مرحله بعد، باید خود را با گزینه های معمولی مربوط به درخواست آشنا کنید. پس از آن، باید به دقت جمله بندی قانونی را مطالعه کنید و تصمیم نهایی را در مورد اینکه چه مجوزی باید باشد بگیرید. به منظور انتخاب آگاهانه، باید بدانید که چه حقوق و تعهداتی توسط یک نوع مجوز خاص تعیین می شود. برای انتخاب درست می توانید از خدمات ویژه ای به نام مقایسه کننده استفاده کنید. در اینجا چند نمونه آورده شده است:
- https://choosealicense.com/. این سایت حاوی سوالات راهنمایی برای انتخاب گزینه مناسب و توصیه های دقیق است تا به شما در درک ویژگی های استفاده کمک کند.
- صفحه https://opensource.org/licenses به بررسی راه حل های مختلف نرم افزار رایگان اختصاص داده شده است.
- سایت https://tldrlegal.com/ را می توان به عنوان یک دایره المعارف برای گزینه های مختلف مجوز مشاهده کرد. این شامل هر دو زبان حقوقی دقیق و تفسیر مفصل است.
مقایسه مجوزها در https://choosealicense.com/ [[]] با این حال، مؤثرترین انتخاب، مطالعه دقیق اسناد قانونی مربوطه است. اگرچه این یک فعالیت وقت گیر است، با این وجود، مطالعه متون به توسعه دهنده تمام پاسخ های مورد نیاز خود را می دهد.
نحوه اضافه کردن مجوز به Github
علیرغم انتخاب گسترده ای از گزینه های مجوز، که در عمل اثربخشی و قابلیت اطمینان خود را ثابت کرده اند، توسعه دهنده ممکن است ایده های خود را در مورد اینکه مجوز برای برنامه ای که ایجاد کرده است داشته باشد. در این حالت، این سرویس امکان اضافه کردن نسخه خود یا تنظیم نسخه موجود را فراهم می کند. برای افزودن مجوز به Github، باید مراحل زیر را دنبال کنید:
- شما باید به صفحه اصلی مخزن خود بروید.
- برای افزودن فایل باید بر روی دکمه کلیک کنید، سپس “ایجاد فایل جدید” را انتخاب کنید.
- در مرحله بعد باید نام فایل را وارد کنید. برای مجوز، میتواند یکی از دو گزینه باشد: LICENSE یا LICENCE.md. نوشتن حروف بزرگ در اینجا اجباری است.
- در سمت راست قسمت ورودی نام فایل، برای انتخاب یک الگوی مجوز کلیک کنید.
- در منوی سمت چپ صفحه، خط “Add a License to your project” را انتخاب کنید. در این حالت، یک گزینه از اسناد موجود انتخاب می شود.
- سپس روی خط “بازبینی و ارسال” کلیک کنید. سپس جزئیات توافق نامه آنها را وارد کنید.
- پس از آن باید مشخص شود که چه اضافات یا تغییراتی انجام شده است. بعد، آنها نشان می دهند که آیا سند انتخاب شده تصحیح شده است یا اینکه ما در مورد ایجاد نسخه دیگری از مجوز صحبت می کنیم.
پس از تایید تغییرات، توسعه دهنده مراحل ایجاد تغییرات در لیست مجوزهای سرویس گیت هاب را تکمیل می کند.
یک مجوز انتخاب کنید Github – نمونه هایی از مجوزهای محبوب در Git Hub
در مرحله بعد، ما آن دسته از گزینه هایی را که محبوب ترین هستند در نظر خواهیم گرفت. با درک نقاط قوت و ضعف آنها، برنامه نویس قادر خواهد بود گزینه مناسب را پیدا کند یا بفهمد که چگونه به طور موثر جستجو کند.
GPL
این مجوز را می توان یکی از محبوب ترین ها نامید. برای کسانی که نرم افزار رایگان می سازند کلاسیک است. یکی از الزامات اصلی این سند این است که
به اشخاص ثالث اجازه می دهد آزادانه برنامه را تغییر دهند ، اما در عین حال آنها حق دارند نتیجه را فقط تحت همان مجوز توزیع کنند. این مجوز ممکن است نسخه های مختلفی داشته باشد. آخرین مورد سوم است. GPL توسط توسعه دهندگان برنامه هایی مانند سیستم مدیریت محتوای وب دروپال، سیستم مدیریت پایگاه داده MariaDB، ویرایشگر گرافیک برداری InkSkape و چندین برنامه دیگر استفاده شد. جالب است بدانید که SQL نه تنها از GPL بلکه از یک مجوز تجاری نیز استفاده می کند.
LGPL
این عنوان به GNU Lesser General Public License GPL ترجمه می شود. برای برخی از توسعه دهندگان، GPL مناسب نیست، زیرا برای آنها تعهد ایجاد می کند که محصولات اصلاح شده را تحت همان مجوز توزیع کنند. ویژگی های استفاده از این گزینه را می توان با چگونگی فرآیند صدور مجوز استفاده از کتابخانه های ایجاد شده توسط یک برنامه نویس نشان داد. در این مورد، مرسوم است که سه گزینه زیر را در نظر بگیرید:
- هنگامی که یک کتابخانه توابع جدیدی ارائه می دهد و هیچ کتابخانه تجاری نمی تواند کار مشابهی را انجام دهد، استفاده از GPL بهینه است.
- توسعه دهنده در کتابخانه رایگان قبلاً استاندارد موجود را پیاده سازی کرده است. در این منطقه، گزینه های تجاری با عملکردهای مشابه وجود دارد. در این مورد، انتخاب LGPL راحت خواهد بود.
- وقتی صحبت از استاندارد جدیدی می شود که در واقع با استاندارد تجاری رقابت می کند، مجوز آپاچی مناسب است.
این استاندارد
اجازه استفاده تجاری از کتابخانه ها را می دهد . در صورت انجام اصلاحات، باید از همان شرایط و ضوابط برای توزیع استفاده شود. با این حال، استفاده از کد ساده امکان تغییر شرایط را فراهم می کند.
مجوز عمومی Eclipse
این سند
اجازه توزیع تحت مجوزهای دیگر، از جمله مجوزهای تجاری را می دهد . شرط اصلی این است که در آثار اصلاح شده، نوآوری ها در یک ماژول جداگانه قرار گیرند. این مجوز در توسعه محصولات جاوا محبوبیت پیدا کرده است. به عنوان مثال زبان برنامه نویسی Clojure، چارچوبی برای آزمایش برنامه های جاوا است.
مجوز عمومی موزیلا
برخی این سند را مصالحه ای بین GPL و مجوزهای تجاری می دانند. یک الزام MPL برای
دسترسی عمومی به فایل های خاص است . محصول نرم افزاری ممکن است حاوی برخی از فایل های تحت این مجوز و برخی دیگر بدون آن باشد. پس از اصلاح، مجاز است مجوز مورد نیاز را قرار دهد (مثلاً می تواند تجاری باشد)، اما این تنها به شرطی امکان پذیر است که دسترسی به فایل های منتشر شده تحت MPL همچنان باز باشد. در این صورت باید اطلاعاتی در مورد نویسندگان نرم افزار اصلی به کاربر نهایی ارائه شود. دفتر LibreOffice، مرورگر موزیلا و سایر محصولات نرم افزاری مطابق با این سند منتشر شدند.
مجوز آپاچی Github
AL مجوز آزاد لیبرال نامیده می شود. این ویژگی به این دلیل است که
هیچ الزامی برای انتشار یک محصول مشتق در شرایط مشابه قبلی وجود ندارد . این سند به طور فعال توسط بنیاد نرم افزار آپاچی استفاده می شود. هنگام استفاده از آن، موارد زیر مجاز است:
- محصول نرم افزاری مجاز به استفاده برای مقاصد تجاری است.
- تغییرات در برنامه ها مجاز است.
- توزیع مجدد بعدی باید شامل نام نویسنده اصلی باشد.
هنگام ایجاد یک نوع جدید، دارندگان مجوز هیچ تعهدی برای ارائه کد اصلی محصول ندارند. این مجوز محبوبیت قابل توجهی به دست آورده است. این را می توان با فهرست کردن محصولات نرم افزاری معروفی که تحت این نوع مجوز منتشر می شوند نشان داد: سیستم عامل اندروید، چارچوبی که با آن می توان برنامه های کاربردی سازمانی در جاوا ایجاد کرد، وب سرور آپاچی. https://youtu.be/wyZq-EazOmU
مجوز MIT
برخی از مردم این گزینه مجوز نرم افزار رایگان را محبوب ترین می دانند. برخی مزیت اصلی آن را سازگاری خوب با انواع مجوزهای رایگان یا تجاری می دانند. مهمترین ویژگیها،
امکان تغییر کد، و همچنین اجازه توزیع مجدد تحت مجوزهای دیگر به انتخاب شخصی که تغییرات را انجام داده است است . محصولات نرم افزاری که از این سند استفاده می کنند عبارتند از: یک کتابخانه جاوا اسکریپت به نام JQuiery، یک ویرایشگر متن Atom، AngularJS – چارچوبی برای توسعه در جاوا اسکریپت.
مقایسه مجوزها برای Git Hub [/ caption]
سنگ های زیر آب
گاهی اوقات نویسنده در ابتدا یک نسخه از مجوز را انتخاب می کند و بعداً می خواهد آن را تغییر دهد. اگر او برنامه را به تنهایی ایجاد کرد، چنین تغییری دشوار نخواهد بود. با این حال، در مواردی که شرکت کنندگان زیادی در توسعه وجود داشته باشد، بدون رضایت آنها کار نخواهد کرد. به عنوان مثال، خالق لینوکس، اگرچه در واقع اساس سیستم عامل را ساخته است، نمی تواند مجوز را بدون رضایت همه برنامه نویسانی که در توسعه بیشتر شرکت کرده اند تغییر دهد. هنگام توزیع مجدد تحت MPL، کسانی که تغییراتی در کد ایجاد کرده اند نمی توانند فایل های تحت MPL را تحت مجوز دیگری ارائه دهند. استفاده از سند جدید برای سایر ماژول های نرم افزار اعمال خواهد شد.