ٹیسٹنگ: توثیق کا سیٹ
اسے چلانا
just test
# or
python3 tests/validate.py یہ کہیں سے بھی چلتا ہے اور اسے صرف Python 3 چاہیے (کوئی تیسرے فریق کے پیکیج نہیں، کوئی نیٹ ورک نہیں)۔ یہ ہر جانچ کے لیے ایک سطر چھاپتا ہے اور اگر کوئی جانچ ناکام ہو تو غیر صفر کوڈ کے ساتھ ختم ہوتا ہے، اس لیے یہ CI اور pre-commit hook کے طور پر موزوں ہے۔
یہ کیا جانچتا ہے
- موضوعات کی متوقع تعداد (اسکرپٹ کے اوپر ایک مستقل)۔
- ہر حصے کے اندر مسلسل نمبرنگ، N.0 سے شروع۔
- ہر موضوع کے لیے H1 فائل کے نام کے اعشاری سے ملتا ہے۔
- H1 کا عنوان
spec/structure.mdسے ملتا ہے حرف بہ حرف، صرف ابتدائی اعشاری نہیں۔ - ہر مواد کے موضوع (حصے 1 تا 8، موضوعات N.1 اور اوپر) میں مطلوبہ حصے موجود، بالکل ٹیمپلیٹ کی ترتیب میں۔
- ہر مواد کے موضوع کے لیے کم از کم الفاظ (1,500 الفاظ)، دانستہ استثنا کے لیے اسکرپٹ میں اجازت کی فہرست کے ساتھ۔
- کسی بھی 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ہر pull request پر اور main کے علاوہ دوسری برانچوں پر push پر چلتا ہے: توثیق کا سیٹ اور codespell۔ یہ ریپوزٹری سائٹ کو بناتی یا ڈیپلائے نہیں کرتی؛ رینڈرنگ الگ ریپوزٹریsoftware-engineering-metrics.github.ioمیں ہوتی ہے۔.github/workflows/links.ymlہر ہفتے lychee سے بیرونی لنکس جانچتا ہے (نظرانداز کے نمونے.lycheeignoreمیں) اور نتیجہ ایک ہی “Link checker report” issue میں رکھتا ہے۔ بیرونی لنکس دانستہ PR کے راستے سے باہر رکھے گئے ہیں۔
ٹیسٹوں کی زد سے باہر
سیٹ ڈھانچہ اور اسلوب جانچتا ہے، سچائی نہیں۔ وہ نہیں جان سکتا کہ حوالہ حقیقی ہے یا نثر درست ہے۔ اقتباسات اور حقائق کو ہاتھ سے یا تحقیقی مرحلے سے جانچیں۔ وکیپیڈیا کے لنک کا وجود (اس کی شکل سے الگ) بھی نیٹ ورک کی جانچ مانگتا ہے، جسے سیٹ دانستہ چھوڑ دیتا ہے تاکہ آف لائن چل سکے۔