এই পাতায় গুগল সিজন অফ ডকস-এর জন্য গৃহীত একটি টেকনিক্যাল রাইটিং প্রজেক্টের বিবরণ রয়েছে।
প্রকল্পের সারসংক্ষেপ
- ওপেন সোর্স সংস্থা:
- AboutCode
- প্রযুক্তিগত লেখক:
- আয়ানসিনহা
- প্রকল্পের নাম:
- scancode-toolkit-এর কমান্ড লাইন অপশনগুলোর রেফারেন্স এবং aboutcode.readthedocs.io-তে AboutCode ডকুমেন্টেশনের কাঠামো পুনর্গঠন।
- প্রকল্পের দৈর্ঘ্য:
- সাধারণ দৈর্ঘ্য (৩ মাস)
প্রকল্পের বিবরণ
[ ১. স্ক্যানকোড-টুলকিট কমান্ড লাইন অপশনসমূহ ]
স্ক্যানকোড-টুলকিটে স্ক্যান কীভাবে করা হবে, আউটপুট ফরম্যাট এবং পোস্ট-স্ক্যান প্লাগইনের মতো আরও বিভিন্ন অপশন কাস্টমাইজ করার জন্য অনেকগুলো কমান্ড লাইন অপশন রয়েছে। এই অপশনগুলো ব্যাখ্যা করার জন্য বর্তমানে কোনো যথাযথ ডকুমেন্টেশন নেই এবং এগুলো শুধুমাত্র “--help” বা “-h” ফ্ল্যাগের মাধ্যমে পাওয়া যায়। এই প্রজেক্টটির লক্ষ্য হলো একটি সম্পূর্ণ ডকুমেন্টেশন তৈরি করা, যা নিম্নলিখিত বিষয়গুলো ব্যাখ্যা করবে:
[ ১. কমান্ড লাইনের মাধ্যমে উপলব্ধ সমস্ত বিকল্প ]
- লক্ষ্য: কমান্ড লাইনের মাধ্যমে ব্যবহারযোগ্য সকল সম্ভাব্য অপশনের একটি বিশদ তালিকা তৈরি করা।
- প্রাথমিক সংক্ষিপ্ত বিবরণ: প্রথমে, আউটপুটের একটি উদাহরণসহ ডিফল্ট স্ক্যান বিকল্পগুলো নিয়ে আলোচনা করা হয়েছে। স্ক্যানটি কীভাবে করা হয়, তার একটি সংক্ষিপ্ত চিত্র বা বর্ণনা দেওয়া হয়েছে।
এরপর থেকে, এই ডিফল্ট আচরণটি একটি নির্দেশিকা হিসেবে কাজ করবে, যা থেকে বোঝা যাবে অন্যান্য অপশনগুলো কীভাবে স্ক্যান এবং আউটপুট পরিবর্তন করে।
এগুলো বিস্তারিতভাবে আলোচনা করা হবে এবং পরবর্তী বিভাগগুলিতে উল্লিখিত নিম্নলিখিত তথ্যগুলি এতে অন্তর্ভুক্ত থাকবে।
[ ২. ভার্সনিং কাঠামো চালু করুন ]
- লক্ষ্য: বিভিন্ন রিলিজের অপশন/এপিআই এবং ডকুমেন্টেশনের পরিবর্তনগুলো যথাযথভাবে রক্ষণাবেক্ষণের জন্য একটি ভার্সনিং সিস্টেম চালু করা।
- সমস্যা: বর্তমানে উইকি এবং ReadTheDocs পেজগুলিতে থাকা ডকুমেন্টেশন পুরোনো রিলিজের জন্য এবং এর ব্যাপক পুনর্গঠন প্রয়োজন।
- প্রাথমিক সংক্ষিপ্ত বিবরণ: স্ক্যানকোড-টুলকিটের যে অংশগুলো সংস্করণে আপডেট করা হয়েছে/আপডেট করা যেতে পারে, সেগুলো হলো
- কমান্ড লাইন বিকল্প
- এপিআই
- ডকুমেন্টেশন (শুরু করা হবে) ভার্সন ও রিলিজ অনুযায়ী কমান্ড লাইন অপশন এবং এপিআই (API) পরিবর্তন করা হয়, এবং ডকুমেন্টেশনকেও তা অনুসরণ করতে হবে, অন্যথায় এটি ব্যবহারকারীদের জন্য ব্যাপক বিভ্রান্তি সৃষ্টি করবে। কমান্ড লাইন ইউটিলিটি [ --help ] ইতিমধ্যেই অপশনের যেকোনো পরিবর্তনের জন্য আপডেট করা হয় এবং ডকুমেন্টেশনে ভার্সনিং অনুকরণ করতে এটি ব্যবহার করা যেতে পারে।
[ ৩. বিভিন্ন ক্ষেত্রে এই বিকল্পগুলি কীভাবে ব্যবহার করা যেতে পারে ]
- উদ্দেশ্য: এই বিভাগে স্ক্যানকোড-টুলকিট-এর স্ক্যান ফলাফল বিভিন্ন ক্ষেত্রে কীভাবে ব্যবহার করা যেতে পারে এবং এই ধরনের কার্যকারিতা প্রদানকারী স্ক্যানকোড-টুলকিট অপশনগুলো সম্পর্কে একটি প্রাথমিক সারসংক্ষেপ প্রদান করা হবে।
- প্রাথমিক সংক্ষিপ্ত বিবরণ: এই বিভাগে বিভিন্ন ব্যবহারিক পরিস্থিতির উদাহরণ এবং সেই পরিস্থিতিগুলোতে কোন বিকল্পগুলো সুপারিশ করা হয়, তা দেওয়া হয়েছে।
- দ্রষ্টব্য: এই অংশটির জন্য স্ক্যানকোড-টুলকিট-এর বিভিন্ন ব্যবহার সম্পর্কে তথ্য ও নির্দেশনার ক্ষেত্রে মেন্টরের কাছ থেকে উল্লেখযোগ্য সাহায্যের প্রয়োজন হবে।
[ ৪. এই অপশনগুলো স্ক্যান এবং আউটপুটে কী পরিবর্তন আনে ]
- উদ্দেশ্য: এই বিভাগে স্ক্যানকোড-টুলকিট-এর স্ক্যান ফলাফল বিভিন্ন ক্ষেত্রে কীভাবে ব্যবহার করা যেতে পারে এবং এই ধরনের কার্যকারিতা প্রদানকারী অ্যাবাউটকোড টুলগুলো সম্পর্কে একটি প্রাথমিক সারসংক্ষেপ প্রদান করা হবে।
- প্রাথমিক সংক্ষিপ্ত বিবরণ: অপশনগুলো স্ক্যান সম্পাদনের পদ্ধতি পরিবর্তন করে। একটি সাধারণ ডিফল্ট পরিস্থিতি পূর্ববর্তী অংশে [ ১. কমান্ড লাইনের মাধ্যমে উপলব্ধ সমস্ত অপশন ] তুলে ধরা হবে এবং এই অংশে সমস্ত অপশনগুলো এই ডিফল্ট পরিস্থিতিতে যে পরিবর্তনগুলো নিয়ে আসে, তার তুলনা করা হবে।
[ ৫. আউটপুট ফরম্যাট এবং তাদের উদাহরণ ]
- উদ্দেশ্য: এই বিভাগে স্ক্যানকোড-টুলকিট-এর স্ক্যান ফলাফল বিভিন্ন ক্ষেত্রে কীভাবে ব্যবহার করা যেতে পারে এবং এই ধরনের কার্যকারিতা প্রদানকারী অ্যাবাউটকোড টুলগুলো সম্পর্কে একটি প্রাথমিক সারসংক্ষেপ প্রদান করা হবে।
- প্রাথমিক ধারণা: স্ক্যানকোড-টুলে বিভিন্ন আউটপুট ফরম্যাট নির্দিষ্ট করার জন্য ফ্ল্যাগ রয়েছে, যেগুলোতে স্ক্যানের ফলাফল তৈরি হবে। এগুলো হলো -
এই অংশটি হবে - আউটপুট ফরম্যাটগুলি বিস্তারিতভাবে ব্যাখ্যা করুন
- আউটপুট ফরম্যাটের উদাহরণ দিন
- আউটপুট ফরম্যাট এবং এর ব্যবহার সম্পর্কিত অন্যান্য লিঙ্ক দিন।
- আউটপুট ফাইলগুলিতে স্ক্যানের ফলাফল কীভাবে সংরক্ষিত হয়। এটি এই বিভিন্ন ফরম্যাটগুলি কীভাবে তৈরি হয় তার সাথেও সম্পর্কিত, যা [২. কোড স্ক্যানিং ব্যাখ্যামূলক আলোচনা]-তে ব্যাখ্যা করা হবে।
[ ৬. স্ক্যানকোড আউটপুট ফরম্যাটের ব্যবসায়িক ব্যবহার ]
- লক্ষ্য: স্ক্যানকোড আউটপুট ফরম্যাটের ব্যবসায়িক ব্যবহারের ক্ষেত্রগুলো ব্যাখ্যা করা। GSoD আইডিয়া তালিকায় স্ক্যানকোড আউটপুট ফরম্যাটকে একটি রেফারেন্স আইডিয়া হিসেবে উল্লেখ করা হয়েছে। এই বিভাগে সেটিই বাস্তবায়ন করা হয়েছে।
- দ্রষ্টব্য: এই অংশটির জন্য স্ক্যানকোড-টুলকিট-এর বিভিন্ন ব্যবসায়িক ব্যবহার সম্পর্কে তথ্য ও নির্দেশনার ক্ষেত্রে মেন্টরের কাছ থেকে উল্লেখযোগ্য সাহায্যের প্রয়োজন হবে।
[ ৭. আরও বিশ্লেষণের জন্য অন্যান্য AboutCode প্রজেক্টগুলো কীভাবে এই আউটপুটগুলো ব্যবহার করে ]
- উদ্দেশ্য: এই বিভাগে স্ক্যানকোড-টুলকিট-এর স্ক্যান ফলাফল বিভিন্ন ক্ষেত্রে কীভাবে ব্যবহার করা যেতে পারে এবং এই ধরনের কার্যকারিতা প্রদানকারী অ্যাবাউটকোড টুলগুলো সম্পর্কে একটি প্রাথমিক সারসংক্ষেপ প্রদান করা হবে।
- প্রাথমিক সংক্ষিপ্ত বিবরণ:
- স্ক্যানকোড-ওয়ার্কবেঞ্চ এই অংশে ডেস্কটপ অ্যাপের মাধ্যমে ফলাফল দেখার পদ্ধতি ব্যাখ্যা করা হয়েছে এবং এ বিষয়ে আরও সহায়তার জন্য স্ক্যানকোড-ওয়ার্কবেঞ্চ ডকুমেন্টেশনের নির্দেশিকা দেওয়া হয়েছে। প্রয়োজন হলে স্ক্যানকোড-ওয়ার্কবেঞ্চে প্রয়োজনীয় ডকুমেন্টেশন যোগ করা হবে।
- দুটি কোডবেসের মধ্যে ফাইল-স্তরের পার্থক্য নির্ধারণ করতে ডেল্টাকোড কীভাবে স্ক্যানকোডের ফলাফল গ্রহণ করে।
[ ২. AboutCode ডকুমেন্টেশনের কাঠামো পুনর্গঠন করুন ]
এই অংশে অ্যাবাউটকোড ডকুমেন্টেশনে একাধিক পরিবর্তন অন্তর্ভুক্ত করা হয়েছে।
[ ১. সংস্করণ ব্যবস্থা ]
[১. স্ক্যানকোড-টুলকিট কমান্ড লাইন অপশন -> ২. ভার্সনিং কাঠামো শুরু করুন] অংশে কমান্ড লাইন অপশনগুলোর ভার্সনিং করার বিষয়টি উল্লেখ করা হয়েছে। ডকুমেন্টেশনের অন্যান্য অংশের জন্যও একই বিষয় প্রয়োজনীয়, যেগুলোতে ভার্সন-নির্দিষ্ট কমান্ড/তথ্য রয়েছে যা অন্যথায় বিভ্রান্তি সৃষ্টি করবে।
[ ২. ডকুমেন্টেশনের মান ও পরীক্ষা নির্ধারণ ]
ডকুমেন্টেশনে ইতিমধ্যে ট্র্যাভিস-সিআই (Travis-CI) এর মাধ্যমে কন্টিনিউয়াস ইন্টিগ্রেশন সহ স্পিনক্স-বিল্ড (spinx-build) (যা সমস্ত পৃষ্ঠা তৈরি করে এবং পুরো প্রক্রিয়া জুড়ে স্ফিঙ্কস সিনট্যাক্স ত্রুটি পরীক্ষা করে) এবং লিঙ্ক চেক (link check) (যা ডকুমেন্টেশন থেকে অন্যান্য ওয়েবপৃষ্ঠার সমস্ত লিঙ্ক পরীক্ষা করে) এর জন্য টেস্ট রয়েছে। (এই পুল রিকোয়েস্ট #17 এ আমার দ্বারা যোগ করা হয়েছে) এখন রিস্ট্রাকচার্ড টেক্সট (reStructured Text) এবং অন্যান্য স্ট্যান্ডার্ডে নির্দিষ্ট লিন্টিংয়ের জন্য আরও চেকের প্রয়োজন। এটি রিস্ট্রাকচার্ডটেক্সট-লিন্ট (restructuredtext-lint) দিয়ে করা যেতে পারে, তবে এর জন্য আরও গবেষণার প্রয়োজন এবং এটি আমার জিএসওডি (GSoD) প্রকল্পের অংশ হিসাবে করা হবে।
[ ৩. একটি “শুরু করার নির্দেশিকা” অংশ যোগ করা ]
এটি নতুনদের জন্য একটি সূচনা বিভাগ হিসেবে কাজ করবে এবং এতে অ্যাবাউটকোড প্রজেক্ট শুরু করার জন্য সবচেয়ে মৌলিক ও গুরুত্বপূর্ণ ডকুমেন্টগুলোর একটি সংকলন থাকবে। স্ক্যানকোড-টুলকিট, স্ক্যানকোড-ওয়ার্কবেঞ্চ, ডেল্টাকোড এবং অন্যান্য সহ প্রতিটি অ্যাবাউটকোড প্রজেক্টে এই বিভাগটি থাকবে।
[ ৪. নথির ৪টি কার্যাবলী অনুসারে পুনর্গঠন ]
বিদ্যমান ডকুমেন্টেশনটি টিউটোরিয়াল, হাউ-টু, রেফারেন্স এবং ব্যাখ্যা—এই চারটি বিভাগে সুস্পষ্টভাবে বিন্যস্ত নয়। আমি সেগুলোকে সেই অনুযায়ী বিন্যস্ত করার প্রস্তাব করছি এবং প্রয়োজন অনুযায়ী আরও তথ্য/ব্যাখ্যা/নির্দেশনা যোগ করার কথা বলছি। এটি অ্যাবাউটকোড-এর সমস্ত প্রজেক্ট এবং তাদের ডকুমেন্টেশনের জন্য প্রযোজ্য। নিচে স্ক্যানকোড-টুলকিট ডকুমেন্টেশনের পুনর্গঠনের দুটি উদাহরণ দেওয়া হলো, যা আমি প্রস্তাব করছি এবং এই প্রজেক্টে বাস্তবায়ন করতে চাই। বাকি ডকুমেন্টেশনেও অনুরূপ পরিবর্তন আনা হবে।
[ ৫. উন্নয়ন পৃষ্ঠার পুনর্গঠন (স্ক্যানকোড-টুলকিট) ]
কোড/এপিআই সম্পর্কে আরও তথ্য যোগ করে এটিকে আরও ডেভেলপার-বান্ধব করা যেতে পারে। উপরের [ ২. কোড স্ক্যানিং ব্যাখ্যাকারী আলোচনা ] অংশের লিঙ্ক থাকতে পারে। এটি স্ক্যান কীভাবে কাজ করে তার ব্যাখ্যাকে স্ক্যান সম্পাদনের জন্য ব্যবহৃত কোডের সাথে সংযুক্ত করে। যেহেতু এই ফোল্ডারগুলিতে স্ক্যানকোড-টুলকিটের বিভিন্ন অংশ রয়েছে, তাই স্ক্যানকোড কীভাবে কাজ করে সেই আলোচনার সাথে মিলিয়ে এপিআই ব্যবহার করে এদের পৃথক ব্যবহার বিশদভাবে ব্যাখ্যা করা যেতে পারে।
- [ ক্লুকোড : লাইসেন্স, কপিরাইট, ইউআরএল, ইমেল স্ক্যান করার প্লাগইন ]
- [ কমনকোড : সহায়ক ক্লাস এবং ফাংশন]
- [ extractcode : বিভিন্ন আর্কাইভ ফরম্যাট নিষ্কাশন করে ]
- [ ফরম্যাটেডকোড : বিভিন্ন আউটপুট ফাইল ফরম্যাটের জন্য আউটপুট ফরম্যাটিং ]
- [ লাইসেন্সকোড : লাইসেন্স শনাক্তকরণ কোড ]
- [ প্যাকেজডকোড : বিভিন্ন প্যাকেজ ফরম্যাট পার্স করা ]
- [ প্লাগইনকোড : প্লাগইন আর্কিটেকচারের জন্য ক্লাসসমূহ ]
- [ summarycode : শনাক্তকৃত লাইসেন্সগুলির উপর স্ক্যানের সারসংক্ষেপ ]
- [ টেক্সটকোড : টেক্সট পার্সিং পরিচালনা করে ]
- [ typecode : ফাইলের প্রকার নির্ধারণ করে ]
- [ স্ক্যানকোড : স্ক্যানকোডের জন্য CLI এবং API, মূল অংশ ]
এই উপবিভাগে স্ক্যানকোড-টুলকিটের এই অংশগুলির উপর বিস্তারিত তথ্য/এপিআই তদনুসারে উপ-উপবিভাগে থাকবে। উন্নয়ন নির্দেশিকা অন্য একটি পৃষ্ঠায় বা আরও ছোট উপবিভাগযুক্ত অন্য কোনো বিভাগে থাকবে।
[ ৬. প্রায়শই জিজ্ঞাসিত প্রশ্নাবলী (FAQ) পৃষ্ঠার পুনর্গঠন (স্ক্যানকোড-টুলকিট) ]
বর্তমানে FAQ পাতায় এমন কিছু প্রশ্ন রয়েছে যেগুলোর আরও ভালোভাবে উত্তর দেওয়া প্রয়োজন এবং সেগুলোকে পৃথকভাবে How To's, Tutorials ও Reference ডকুমেন্ট হিসেবে সাজানো উচিত।
- স্ক্যানকোড কিভাবে কাজ করে? এই বিষয়টি [ ২. কোড স্ক্যানিং ব্যাখ্যামূলক আলোচনা ]-তে উল্লেখ করা হয়েছে এবং এটি আরও বিশদভাবে একটি সম্পূর্ণ পৃথক বিভাগে আলোচনা করা হবে।
- উন্নত সনাক্তকরণের জন্য কীভাবে নতুন লাইসেন্স নিয়ম যুক্ত করবেন? এই বিষয়টি 'বিদ্যমান নির্দেশিকাগুলির উন্নতি' অংশে পূর্বেই আলোচনা করা হয়েছে, ডকুমেন্টেশনটি সেখানে স্থানান্তর করা হবে।
- কীভাবে একটি নতুন লাইসেন্স শনাক্তকরণ নিয়ম যোগ করবেন? এই বিষয়টি নিয়ে আলাদাভাবে আরেকটি “কীভাবে করবেন” পোস্ট তৈরি করা যেতে পারে এবং বিশদভাবে আলোচনা করা যেতে পারে।
- ডেভেলপমেন্ট কীভাবে শুরু করবেন? ইতিমধ্যে একটি পৃথক ডেভেলপমেন্ট পেজ রয়েছে এবং তথ্যের মধ্যে বেশ মিল রয়েছে। ডেভেলপমেন্ট পেজটির পুনর্গঠন নিয়ে উপরেই আলোচনা করা হয়েছে।
- নতুন রিলিজ কাট করার ধাপসমূহ। এটিকে একটি পৃথক “কীভাবে একটি নতুন রিলিজ কাট করবেন” অংশে রূপান্তরিত করা যেতে পারে।
- প্রকল্পটি সম্পর্কে সাধারণ প্রশ্নের উত্তর দেয় এমন আরও প্রায়শই জিজ্ঞাসিত প্রশ্ন খুঁজুন, যেগুলো “কীভাবে করবেন”/”টিউটোরিয়াল” বিভাগের অন্তর্ভুক্ত নয়।