img

مشارکت در منبع باز…

/
/
/

یک راهنمایی ساده و مقدماتی برای مشارکت در ایجاد منبع باز

امروزه عبارت «نرم افزار منبع باز» در گفتگو‌های روزانه ی ما زیاد استفاده می‌شود اما بیشتر کسانی که این عبارت را می‌گویند یا آن را می‌شوند، اطلاعات درستی در موردش ندارند. نخستین پرسشی که من درباره ی نرم افزار منبع باز داشتم را به خاطر می‌آورم؛
«یک کُد است؟ مانند فایل‌های بزرگ با توابع پیچیده ای که هیچ چیزی درباره ی آن‌ها نمیدانم؟»
پاسخ این است، که این طور نیست. نرم افزار‌های منبع باز (OSS مخفف Open Source Software) دارای کُد‌های پیچیده نبوده و تعداد کمی از آن‌ها پیچیدگی‌های زیادی دارند. در حقیقت، بیشتر نرم افزار‌های منبع باز دارای کُد‌های ساده ای هستند که توسط افرادی در محدوده ی سنیِ ۱۲ تا ۸۰ سال در سراسر دنیا نوشته شده‌اند.
بیشتر کسانی که نرم افزار‌های منبع باز بی نظیری را نوشته اند، آن را به عنوان یک تفریح یا کاری در زمان فراغتشان انجام داده‌اند.

 

«بسیار خوب، اما من نمی‌توانم کُد بنویسم!»
ایجاد و مشارکت در دنیای نرم افزار‌های منبع باز، فقط به معنی نوشتن کُد نیست. در حقیقت، اگر این امکان وجود نداشت که کاربران نا آشنا با کُد نویسی بتوانند در ایجاد و توسعه ی نرم افزار‌های منبع باز مشارکت کنند، آن‌ها سال‌ها پیش از بین رفته و از دنیای نرم افزار‌ها ناپدید شده بودند.
باشد اشاره کنیم که افرادی که به پرسش‌های مطرح شده درباره ی نرم افزار‌های منبع باز (که در انجمن‌ها و گروه‌های مختلف مطرح می‌شدند) پاسخ داده و کسانی که نمونه‌های عملیِ استفاده از این نرم افزار‌ها را برای درک بهتر کاربران از کاربرد آن‌ها ارائه می‌کردند، دو گروه دیگری بودند که نقش مهمی در توسعه ی این نرم افزار‌ها داشتند. در بسیاری موارد، کسانی در دنیای نرم افزار‌های منبع باز با راهنمایی ها، توصیه‌ها و کار هایشان، پیشرفت هایی را ایجاد می‌کنند که باور کردنی به نظر نمی‌رسد. زندگی همیشه ما را شگفت زده کرده و به نظر می‌رسد که OSS هم همینطور باشد.
اگر هیچ کدام از این توصیه ها، راهنمایی‌ها و نمونه‌های کاربردی را نخوانده باشید، در اینترنت ویدئو‌های زیادی از همایش‌ها و پروژه‌های مرتبط با نرم افزار‌های منبع باز وجود دارد. چون در دنیای نرم افزار‌های منبع باز همه می‌تواند به یکدیگر برای بهبود کار هایشان کمک کند، می‌توانیم بگوییم که هر کسی یکی از مشارکت کنندگان نرم افزار‌های منبع باز به حساب می‌آید. با توجه به این توضیحات، هر کسی می‌تواند سهمی در گسترش و توسعه ی دنیای منبع باز داشته باشد!
«شاید کار هایی باشد که بتوانم در آن‌ها مشارکت کنم. اما چرا باید این کار را انجام بدهم؟»
دلیل‌های زیادی (از موارد شخصی گرفته تا دلیل‌های دیگر) برای مشارکت در توسعه ی نرم افزار‌های منبع باز وجود دارند:
۱- امکان دسترسی توسعه دهندگان به کُد‌های خوب، ایجاد شده و با توجه به دسترسی آسان و رایگان آن‌ها به این کُد ها، نیازی به نوشتن آن‌ها از ابتدا نبوده و می‌توان از این کُد‌ها در نرم افزارها و پروژه‌ها استفاده کرد.
۲- احساسی که بعد از ارائه ی کاری که انجام داده اید، آن هم در سطح گسترده ی جهانی، خواهید داشت، بی نظیر است! تصورش را بکنید که یک نفر در آن طرف دنیا، با دیدن راه حل شما و استفاده از آن برای برطرف کردن مشکلاتش چقدر خوشحال خواهد شد.
۳- اعتباری که شما از مشارکت در گسترش نرم افزار‌های منبع باز به دست می‌آورید، در سراسر دنیا دیده می‌شود. کسانی که مشارکت مداومی در دنیای نرم افزار‌های منبع باز دارند، در کنار احترامی که در انجمن‌های مربوطه به دست می‌آورند، همیشه به عنوان متخصصانی با مهارت‌های ویژه مورد توجه قرار می‌گیرند. در دنیای سریع کامپیوتر، چنین افرادی مورد توجه شرکت‌های بزرگ قرار گرفته و برای همکاری از آن‌ها دعوت می‌شوند.
۴- مشارکت در توسعه و گسترش نرم افزار‌های منبع باز به شما اجازه می‌دهد تا با افراد دیگر فعال در این زمینه، که بدون تردید تخصص‌های گوناگونی دارند، آشنا شده و در کنار به اشتراک گذاشتن اطلاعات، شبکه ی ارتباطی خودتان را نیز بزرگ تر کنید.

 

مشارکت در منبع باز...

«بسیار خوب، قانع شدم! حالا باید از کجا شروع کنم؟»
راهنما‌های گام به گام و بی نظیر زیادی برای مشارکت در دنیای نرم افزار‌های منبع باز وجود دارد. شکل ۱، یکی از بهترین راهنما هایی است که در این زمینه وجود دارند.
برای شروع کار بهتر است نگاهی به قسمت‌های اساسی و مهم برای مشارکت در نرم افزار‌های منبع باز داشته باشیم. برای مدیریت هر مجموعه ای از داده‌ها که به وسیله ی صد‌ها مشارکت کننده در حال بهبود داده شدن است، به سیستمی احتیاج داریم که بتواند:
۱- رونوشت (کُپی)‌های مختلف داده‌ها را مدیریت کند،
۲- امکان ویرایش هم زمان یک داده توسط چند ویرایش کننده را فراهم کند،
۳- همه ی ویرایش‌های انجام شده را بعد از تکمیل شدن آن ها، در یک فایل بزرگ تر یکپارچه کند.
بنا بر این ما یک «سیستم کنترل نسخه» در اختیار داریم که همان طور که از اسمش مشخص است، امکان کنترل نسخه‌های چند گانه ی داده هایی که به صورت هم زمان وجود دارند و توسط صد‌ها نفر در یک کُد مشخص ایجاد شده اند را فراهم می‌کند. یکی از سایت هایی که این سیستم‌های میزبانیِ مجانی از داده، فایل یا نرم افزار منبع باز را ارائه می‌کند، GitHub است.
در GitHub، نرم افزار در قسمت (مخزن)‌های مختلفی که شبیه پوشه (فولدر) هایِ (یا فضا‌های کاریِ) جدا از هم (برای هر پروژه ای که می‌خواهید از آن میزبانی کنید) هستند، ذخیره می‌شوند. هر کدام از این قسمت (مخزن)‌ها دارای مجموعه ی مشکلات، باگ ها، کُد ها، اسناد و مدارک و موارد مشابه دیگر مخصوص به خودشان هستند. به عنوان نمونه، نگاهی به چگونگیِ شروع مشارکت با استفاده از مخزن JetBrains داشته ایم (تصویر پائین).

 

مشارکت در منبع باز...

همان طور که می‌بینید، فایل‌های زیادی وجود دارند که شناختن آن‌ها و فهمیدن کاربردشان بسیار سخت است. به همین دلیل است که فایل README ایجاد شده که باید شامل اطلاعاتی درباره ی پروژه بوده و به تازه وارد‌ها کمک کند تا شناخت کاملی درباره ی آن پیدا کنند. نگاهی به فایل JetBrains README بیندازید (تصویر پائین).

 

مشارکت در منبع باز...

به منظور ایجاد نسخه ی خودمان از این مخزن (پروژه)، باید یک حساب کاربری GitHub ایجاد کرده و سپس یک رونوشت (کُپی) از پروژه را در مخزن خودمان، به صورت یک شاخه (fork)، ایجاد کنیم. در حقیقت، شاخه درست کردن (forking)، یک کُپیِ مجزا از پروژه، برای استفاده شما، ایجاد می‌کند.
در بیشتر موارد، وقتی نرم افزار در حال ویرایش شدن است، شاخه ی اصلی (master branch)، دست نخورده باقی مانده و تغییرات بر روی شاخه‌های کُپی شده یا شاخه‌های توسعه (development branch) انجام می‌شوند. آن دسته از شاخه‌های توسعه ای که بتوانند از آزمون‌های مشخصی که برایشان تعیین شده عبور کنند، با شاخه ی اصلی (master)، ترکیب یا ادغام (merge) می‌شوند.
در تصویر پائین نشان داده شده که شما چطور می‌توانید از شاخه ی اصلی، یک کُپی ایجاد کرده و شاخه یا شاخه‌های خودتان را ایجاد کرده و چگونه بعد از تمام شدن ویرایش هایتان، آن‌ها را با شاخه ی اصلی ترکیب (merge) کنید.

 

مشارکت در منبع باز...

با فرض این که شما یک حساب کاربری GitHub ایجاد کرده باشید، به حساب کاربریتان وارد شده و مخزن JetBrains را ببینید. بر روی دکمه ی Fork در گوشه ی سمت راست بالای صفحه کلیک کرده و مخزن خودتان را به عنوان گزینه (option) انتخاب کنید (اگر سازمان‌های مختلفی را به عنوان گزینه‌های انتخابی مشاهده کردید، جای نگرانی نیست چرا که تنها کافی است صفحه ی شخصیِ خودتان را انتخاب کنید). اگر صفحه ی شخصی شما نمایش داده نشود، به احتمال زیاد یک کُپی از آن را بر روی صفحه ی خودتان ایجاد (fork) کرده اید (تصویر پائین).

 

مشارکت در منبع باز...

اکنون، به کُپی مخزن خودتان مراجعه کرده و بر اساس توضیحات داده شده در فایل README، تغییرات مورد نظرتان را ایجاد کنید. نام دامنه ی موسسه ی خودتان را بر اساس ساختار تعریف شده ی پوشه (فولدر) اضافه کنید. از UI برای ایجاد یک فایل جدید با نام موسسه ی خودتان استفاده کنید.
برای نمونه (تصویر پائین)، از آن جایی که ایمیل من در دانشگاهی که در آن کار می‌کنم بر روی www.djsce.edu.in قرار دارد، عبارت lib/domains/in/edu/djsce.txt را اضافه کرده ام.

 

مشارکت در منبع باز...

مشارکت در منبع باز...

وقتی کارتان تمام شد، باید این کُد به روز شده را با شاخه ی اصلی، ترکیب (merge) کنید. برای این کار باید به قسمت Pull Requests مراجعه کنید. از آن جایی که یک کُد را ایجاد (forked) کرده ایم، فرآیند یکی کردن آن با شاخه ی اصلی به عنوان یک pull request (درخواست کشیدن) شناخته می‌شود. در حقیقت ما از شاخه ی اصلی می‌خواهیم که کُد تغییر داده شده ی ما را به طرف خودش «بِکِشَد». از شما خواسته می‌شود که یک توضیح کوتاه و نام ویرایش/عملی (edit/commit) که انجام داده اید را اضافه کنید. بعد از انجام دادن این کار، ویرایش شما در کنار موارد دیگر در مخزن JetBrains نمایش داده می‌شود (تصویر پائین).

 

مشارکت در منبع باز...

اکنون، از آن جایی که شما مخزن JetBrains ندارید، باید منتظر مدیر (admin)‌ها بمانید تا pull request شما را تایید کنند. بعد از ترکیب (merge) شدن، چیزی مانند آن چه در تصویر پائین نمایش داده شده را خواهید دید.

 

مشارکت در منبع باز...

باید به خودتان تبریک بگویید چرا که حالا شما یکی از مشارکت کنندگان منبع باز هستید!
با انجام این کار، تمام دانشجویانی که در دانشگاه شما هستند می‌توانند با وارد کردن نشانی ایمیل دانشگاه، از یک تخفیف دانشجویی JetBrains استفاده کنند. باید احساس شگفت انگیزی داشته باشید چرا که با تنها ۱۰ دقیقه کار کردن بر روی یک کُد، توانسته اید به یک نسل از دانشجویانی که در دانشگاهتان در حال تحصیل هستند کمک کنید تا در دنیای منبع باز مشارکت داشته باشند!
همچنین شما می‌توانید در مورد Issues (مشکلات)، در مخزن (repository)‌های مختلف، مشارکت داشته باشید.
تمام آن‌ها دارای مشکلاتی هستند که برای تازه کار‌ها یا «کسانی که برای نخستین بار می‌خواهند مشارکت کنند» طراحی شده‌اند. وب سایت هایی مانند MunGell›s list of Awsome Beginner Projects و Up For Grabs نیز وجود دارند که به شما کمک می‌کنند تا نخستین pull request خودتان را ایجاد کنید.

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

It is main inner container footer text