योगदान मार्गदर्शिका
DispatchAtlas ऐसे परिवर्तन स्वीकार करता है जो पैकेज सीमाएँ, नियतात्मक प्रमाण, और
रिलीज़-गेटित सार्वजनिक दावे संरक्षित रखें। योगदान रिपॉज़िटरी अनुबंधों से लिखे जाते हैं —
बाह्य स्रोत वृक्षों, उत्पन्न रिपोर्टों, या अप्रकाशित प्रयोग कलाकृतियों से प्रतिलिपि नहीं
किए जाते। मूल
CONTRIBUTING.md
प्रामाणिक जाँच-सूची है; यह पृष्ठ उसे कोडबेस पर मानचित्रित करता है।
🧭 अपना पथ चुनें
प्रत्येक फ़ोल्डर के सीमा नियम मूल
AGENTS.md में रहते
हैं; प्रत्येक पैकेज फ़ोल्डर अपना README.md भी वहन करता है।
| आशय | पथ | कहाँ |
|---|---|---|
| एक सॉल्वर बग ठीक करें | सॉल्वर रजिस्ट्री, संकारक, या मेटाह्यूरिस्टिक्स, साथ ही व्यवहार परीक्षण। | packages/dispatchatlas-solve/(इसका README देखें)और tests/solve/। |
| एक बेंचमार्क परिवार जोड़ें | जनरेटर, वर्गिकी प्रविष्टि, उद्धरण मैट्रिक्स पंक्ति, कैटलॉग वायरिंग। | packages/dispatchatlas-bench/(इसका README देखें)और tests/bench/। |
| डोमेन अनुबंध विस्तारित करें | आंतरिक सीमा में शेड्यूलिंग मॉडल, सत्यापन, उद्गम, या क्रमबद्धीकरण। | packages/dispatchatlas-core/(इसका README देखें)और tests/core/। |
| कैंपेन निष्पादन सुधारें | विन्यास, बजट, चेकपॉइंट, पुनर्प्रयास, परिवेश कैप्चर। | packages/dispatchatlas-lab/(इसका README देखें)और tests/lab/। |
| विश्लेषण निर्यात विस्तारित करें | सांख्यिकी, प्रकटीकरण फ़िल्टरण, प्रमाण बंडल, पोर्टल डेटासेट, CLI। | packages/dispatchatlas-analytica/(इसका README देखें)और tests/analytica/। |
| दस्तावेज़ सुधारें | Next.js दस्तावेज़ स्टैक पर साइट पृष्ठ। | site/content/docs/(site/README.md देखें)। |
| एक चलाने-योग्य उदाहरण जोड़ें | स्मोक-स्केल, विन्यास-योग्य, सार्वजनिक-सुरक्षित उदाहरण। | examples/(इसका README उदाहरण बाल्टियाँ व नियम सूचीबद्ध करता है)। |
| गुणवत्ता टूलिंग सुधारें | build, prose-register, code-first, व license-header गेट। | tools/(इसका README देखें)और tests/tools/। |
| बग रिपोर्ट करें या प्रश्न पूछें | संरचित issue फ़ॉर्म व समर्थन चैनल। | Issue फ़ॉर्म और SUPPORT.md। |
⚙️ स्थानीय सेटअप
- Python 3.12 या नवीनतर स्थापित करें।
- uv स्थापित करें।
uv sync --all-extras --group devचलाएँ।- यदि आप स्थानीय कमिट हुक चाहते हैं तो
uv run pre-commit installचलाएँ।
✅ स्थानीय जाँचें
pull request खोलने से पहले इन्हें चलाएँ — होस्ट किया CI उसी गेट समुच्चय को OS व Python मैट्रिक्स के पार चलाता है:
uv run ruff format --check .
uv run ruff check .
uv run mypy packages tests tools examples
uv run coverage run -m pytest
uv run coverage report
uv run python tools/check_prose_register.py
uv run python tools/check_code_first.py
uv run python tools/check_root_outputs.py
uv run python tools/check_solver_metaphors.py
uv run python tools/license_header.py check
uv run reuse lint
gitleaks detect --source . --redact --config .gitleaks.toml
npm --prefix site run build
npm --prefix site run check
npm --prefix site audit --audit-level=moderate
uv run pip-audit --path .\.venv\Lib\site-packages --progress-spinner offपैकेज-निर्माण स्मोक जाँचों के लिए:
uv run python tools/build_packages.py
uv venv .package-smoke
uv pip install --python .\.package-smoke\Scripts\python.exe (Get-ChildItem .\packages\*\dist\*.whl)
.\.package-smoke\Scripts\python.exe -c "import dispatchatlas, dispatchatlas.core, dispatchatlas.bench, dispatchatlas.solve, dispatchatlas.lab, dispatchatlas.analytica"📦 सीमाएँ
import को दस्तावेज़ित निर्भरता दिशा के भीतर रखें — आरेख व प्रति-पैकेज import तालिका के लिए वास्तुकला अवलोकन देखें। संक्षिप्त रूप:
dispatchatlas.coreआंतरिक डोमेन सीमा है और कोई DispatchAtlas पैकेज import नहीं करता।dispatchatlas.benchवdispatchatlas.solveकेवल core पर निर्भर हैं।dispatchatlas.labcore, benchmark, व solver पैकेज संयोजित करता है।dispatchatlas.analyticacore अनुबंध व स्थिर मैनिफ़ेस्ट उपभोग करता है।site/अनुमोदित निर्यात उपभोग करता है;tools/व CI प्रत्येक पैकेज का निरीक्षण करते हैं पर उत्पाद रनटाइम निर्भरताएँ नहीं हैं।
सीमा tests/architecture/test_import_boundaries.py द्वारा प्रवर्तित है, अतः एक पार करने
वाला import समीक्षा से पहले परीक्षण सुइट विफल कर देता है।
📋 Pull request अपेक्षाएँ
| क्षेत्र | अपेक्षा |
|---|---|
| कोड | import को दस्तावेज़ित निर्भरता दिशा के भीतर रखें। |
| डेटा | कैंपेन आउटपुट को स्रोत फ़ाइलों के बजाय उत्पन्न प्रमाण के रूप में मानें। |
| दस्तावेज़ | प्रथम-रिलीज़ DispatchAtlas भाषा का उपयोग करें, स्मोक प्रमाण को लेबल किया रखें, और जब उपयोगकर्ता-सम्मुख व्यवहार बदले तब पृष्ठ अद्यतन करें। |
| परीक्षण | नए सार्वजनिक अनुबंधों के लिए व्यवहार अभिकथन जोड़ें; बाह्य संरचना पुनरुत्पादित करने के बजाय अपेक्षित व्यवहार वर्णित करें। |
| सुरक्षा | क्रेडेंशियल, निजी प्रमाण, या परिनियोजन रहस्य कमिट न करें। |
| उत्पन्न कलाकृतियाँ | कैश, निर्माण आउटपुट, कवरेज रिपोर्ट, प्रयोग आउटपुट, व चेकपॉइंट को Git के बाहर रखें जब तक कोई रिपॉज़िटरी नीति उन्हें ट्रैक किए स्रोत के रूप में न नामित करे। |
🤝 समुदाय व समर्थन
समुदाय चैनल, issue फ़ॉर्म, व चर्चा श्रेणियाँ समुदाय पृष्ठ पर
सारांशित हैं। योगदान जीवनचक्र — प्रस्ताव, संरेखण, कार्यान्वयन, समीक्षा, विलय —
GOVERNANCE.md
में दर्ज है।