एक ट्रैक कई अलग-अलग हिस्सों से मिलकर बनता है।
ट्रैक का कॉन्फिगरेशन और मेटाडेटा config.json फाइल में दिया गया होता है। इसमें ट्रैक के अभ्यास, कॉन्सेप्ट, एडिटर सेटिंग्स और भी बहुत कुछ होता है। config.json का दस्तावेज़ देखिए।
ट्रैक के सभी कॉन्सेप्ट और प्रैक्टिस अभ्यासों में कॉन्सेप्ट शामिल रहते हैं। ये कॉन्सेप्ट अपने आप में अलग-अलग इकाइयाँ होते हैं। ज़्यादा जानकारी के लिए दस्तावेज़ देखिए।
ट्रैक के कॉन्सेप्ट अभ्यासों में सिखाए जाने वाले कॉन्सेप्ट मिलकर एक सिलेबस बनाते हैं। यह सिलेबस छात्रों को एक कॉन्सेप्ट मैप के रूप में दिखाया जाता है। सिलेबस के लिए कॉन्सेप्ट मैप बनाने के बारे में जानने के लिए कॉन्सेप्ट मैप का दस्तावेज़ देखिए।
सिलेबस कैसे बनाया जाए, इसकी ज़्यादा जानकारी के लिए सिलेबस का दस्तावेज़ देखिए।
ट्रैक में दो तरह के अभ्यास होते हैं:
हर अभ्यास में एक वैकल्पिक "और गहराई में जाइए" सेक्शन हो सकता है, जिसमें ये चीज़ें हो सकती हैं:
कुछ फाइलें किसी एक अभ्यास तक सीमित नहीं होतीं, बल्कि सभी अभ्यासों पर लागू होती हैं। ज़्यादा जानकारी के लिए दस्तावेज़ देखिए।
हर ट्रैक में कुछ ज़रूरी दस्तावेज़ फाइलें होती हैं। ज़्यादा जानकारी के लिए दस्तावेज़ देखिए।
ट्रैक के कुछ हिस्से विजेट में दिखाए जा सकते हैं।
सभी दस्तावेज़ों को स्टाइल गाइड का पालन करना चाहिए। Markdown दस्तावेज़ों को भी हमारे Markdown मानकों का पालन करना चाहिए।
csharp ├── config | ├── exercise_readme.go.tmpl | └── maintainers.json ├── docs | ├── ABOUT.md | ├── INSTALLATION.md | ├── LEARNING.md | ├── RESOURCES.md | └── TESTS.md ├── concepts | └── numbers | ├── about.md | ├── introduction.md | └── links.json └── exercises | ├── concept | | └── cars-assemble | | ├── .docs | | | ├── hints.md | | | ├── introduction.md | | | └── instructions.md | | ├── .meta | | | ├── config.json | | | ├── design.md | | | └── Exemplar.cs (track-specific) | | ├── CarsAssemble.cs (track-specific) | | ├── CarsAssemble.csproj (track-specific) | | └── CarsAssembleTests.cs (track-specific) | ├── practice | | └── leap | | └── .docs | | | └── instructions.md | | └── .meta | | | ├── config.json | | | └── Example.cs (track-specific) | | ├── Leap.cs (track-specific) | | ├── Leap.csproj (track-specific) | | └── LeapTests.cs (track-specific) | └── shared | └── .docs | ├── debug.md | ├── help.md | └── tests.md └── config.json
हर ट्रैक को (अपने आप) एक रखरखाव श्रेणी दी जाती है, जो ट्रैक मेंटेनर की GitHub रेपो अनुमतियाँ तय करती है।
जब आप किसी अभ्यास से जुड़ा कोई ट्रैक PR मर्ज करते हैं, तो छात्रों के हल के सबसे नए प्रकाशित इटरेशन सब दोबारा टेस्ट किए जाते हैं। लोकप्रिय अभ्यासों में यह बहुत भारी पड़ता है (चरम उदाहरण के तौर पर Python के Hello World में 70,000 टेस्ट रन!)।
हम चाहते हैं कि जहाँ ज़रूरत न हो, वहाँ आप ऐसा करने से बचिए।
अगर मर्ज किया गया कमिट नीचे दी गई दो बातों में से कोई एक भी करता हो, तो हल दोबारा नहीं टेस्ट किए जाएँगे:
.docs या .meta फाइलों को छूता हो, या ऐसी अन्य फाइलों को जिनसे उपयोगकर्ताओं का सीधा कोई काम नहीं पड़ता[no important files changed] होअगर मर्ज किया गया कमिट नीचे दी गई दोनों बातें करता हो, तो हल दोबारा टेस्ट किए ही जाएँगे:
[no important files changed] न हो.meta/config.json फाइल में बताया गया हो):
कुछ उदाहरण:
[no important files changed] जोड़कर मर्ज किया गया, इसलिए कोई टेस्ट नहीं चले