পরীক্ষা: যাচাই স্যুট
চালানো
just test
# or
python3 tests/validate.py এটি যেকোনো জায়গা থেকে চলে এবং শুধু Python 3 লাগে (কোনো তৃতীয়-পক্ষ প্যাকেজ নয়, নেটওয়ার্ক নয়)। এটি প্রতিটি যাচাইয়ের জন্য একটি লাইন ছাপে এবং কোনো যাচাই ব্যর্থ হলে অশূন্য কোডে বেরিয়ে যায়, তাই CI-তে ও প্রি-কমিট হুক হিসেবে কাজ করে।
এটি কী যাচাই করে
- বিষয়ের প্রত্যাশিত সংখ্যা (স্ক্রিপ্টের উপরের ধ্রুবক)।
- প্রতিটি পর্বের ভেতরে ধারাবাহিক নম্বর, N.0 থেকে শুরু।
- প্রতিটি বিষয়ের জন্য H1 ফাইলের নামের দশমিকের সাথে মেলে।
- H1 শিরোনাম
spec/structure.md-এর সাথে অক্ষরে অক্ষরে মেলে, শুধু শুরুর দশমিক নয়। - প্রতিটি বিষয়বস্তু বিষয়ে (পর্ব ১ থেকে ৮, বিষয় N.1 এবং তার ওপরে) প্রয়োজনীয় বিভাগ আছে, ঠিক টেমপ্লেটের ক্রমে।
- প্রতিটি বিষয়বস্তু বিষয়ের জন্য ন্যূনতম শব্দসংখ্যা (১,৫০০ শব্দ), স্ক্রিপ্টে ইচ্ছাকৃত ব্যতিক্রমের অনুমোদন তালিকাসহ।
- যেকোনো Markdown ফাইলে এম-ড্যাশ নেই।
- এন-ড্যাশ শুধু অঙ্কের মাঝে, তাই “2.1–2.8” পাস করে আর বাকি সব ব্যর্থ হয়।
- নিষিদ্ধ বাক্যাংশ নেই (“not only”, “but also”, “load-bearing”)।
- সব অভ্যন্তরীণ
.mdলিঙ্ক সমাধান হয়। - গদ্যের ক্রস-রেফারেন্স বাস্তব বিষয়ের দিকে নির্দেশ করে: ডিস্কে কোনো ফাইল নেই এমন বিষয় নম্বরের উল্লেখ ব্যর্থ হয়, প্রকাশিত সাইটের বিষয়-লিঙ্ক স্বয়ংক্রিয় লিঙ্কিং-এর একই উল্লেখ ছাঁচ ব্যবহার করে।
- উইকিপিডিয়া লিঙ্কের রূপ সঠিক (
https://en.wikipedia.org/wiki/...)। spec/structure.mdডিস্কের ফাইলের সাথে মেলে, উভয় দিকে।- README, হোম পাতা ও সূচিপত্র পাতা প্রতিটি বিষয়ে লিঙ্ক করে।
কোনো যাচাই ব্যর্থ হলে
ব্যর্থ লাইন ফাইল ও সমস্যার নাম বলে। সাধারণ সমাধান:
- এম-ড্যাশ পাওয়া গেছে: ”—” সরাতে বাক্যটি নতুন করে লিখুন। শুধু মুছে ফেলবেন না।
- বিভাগ নেই: বিষয় টেমপ্লেট থেকে অনুপস্থিত
##বিভাগ যোগ করুন। - কাঠামো অমিল: আপনি
spec/structure.mdহালনাগাদ না করে বিষয় যোগ বা পুনঃনামকরণ করেছেন, অথবা উল্টোটা। তাদের আবার মিলিয়ে আনুন। - ভাঙা লিঙ্ক: পথ ঠিক করুন, অথবা পুনঃনামকরণের পরে হালনাগাদ করুন।
- নম্বরে ফাঁক: পর্বটি N.0 থেকে ধারাবাহিক করতে পুনঃক্রমাঙ্কন করুন।
যাচাই স্যুটের বাইরে
just spellসংগ্রহস্থলের ওপর codespell চালায়। কনফিগারেশন, মিথ্যা-ইতিবাচকের উপেক্ষা তালিকাসহ,pyproject.toml-এর[tool.codespell]বিভাগ।just statstools/stats.pyথেকে একটি Markdown প্রতিবেদন (বিষয়-ভিত্তিক শব্দসংখ্যা, পাতলা বিষয়, উইকিপিডিয়া লিঙ্ক, তথ্যসূত্র এন্ট্রি) ছাপে।
ক্রমাগত সংহতকরণ
.github/workflows/test.ymlপ্রতিটি পুল রিকোয়েস্টে এবং non-main শাখায় পুশে চলে: যাচাই স্যুট ও codespell। এই সংগ্রহস্থল সাইট তৈরি বা স্থাপন করে না; রেন্ডারিং আলাদাsoftware-engineering-metrics.github.ioসংগ্রহস্থলে ঘটে।.github/workflows/links.ymlসাপ্তাহিকভাবে lychee দিয়ে বাহ্যিক লিঙ্ক যাচাই করে (উপেক্ষা ছাঁচ.lycheeignore-এ) এবং ফলাফল একটি একক “Link checker report” ইস্যুতে রাখে। বাহ্যিক লিঙ্ক ইচ্ছা করেই PR পথের বাইরে থাকে।
পরীক্ষা যা কভার করে না
স্যুট কাঠামো ও শৈলী যাচাই করে, সত্য নয়। কোনো তথ্যসূত্র বাস্তব কিনা বা গদ্য নির্ভুল কিনা তা এটি বলতে পারে না। উদ্ধৃতি ও তথ্য হাতে বা গবেষণা পাসে যাচাই করুন। উইকিপিডিয়া লিঙ্কের অস্তিত্বও (রূপের বিপরীতে) নেটওয়ার্ক যাচাই চায়, যা স্যুট ইচ্ছা করেই বাদ রাখে যাতে এটি অফলাইনে চলতে পারে।