परीक्षण: सत्यापन सूट

इसे चलाएँ

just test
# or
python3 tests/validate.py

यह कहीं से भी चलता है और केवल Python 3 चाहिए (कोई तृतीय-पक्ष पैकेज नहीं, नेटवर्क नहीं)। यह हर जाँच के लिए एक पंक्ति छापता है और कोई जाँच विफल होने पर शून्येतर कोड से बाहर निकलता है, इसलिए यह CI में और प्री-कमिट हुक के रूप में काम करता है।

यह क्या जाँचता है

  • विषयों की अपेक्षित संख्या (स्क्रिप्ट के ऊपर का स्थिरांक)।
  • हर भाग में, 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 stats tools/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 के रास्ते से बाहर रखे गए हैं।

परीक्षणों द्वारा अनाच्छादित

सूट संरचना और शैली जाँचता है, सच नहीं। यह नहीं बता सकता कि कोई संदर्भ वास्तविक है या गद्य सटीक है। उद्धरण और तथ्य हाथ से या शोध पास से जाँचें। विकिपीडिया लिंक का अस्तित्व (उसके रूप के विपरीत) भी नेटवर्क जाँच माँगता है, जिसे सूट जानबूझकर छोड़ता है ताकि वह ऑफ़लाइन चल सके।