सामग्री पर जाएँ
DispatchAtlas
खोजें

योगदान मार्गदर्शिका

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

⚙️ स्थानीय सेटअप

  1. Python 3.12 या नवीनतर स्थापित करें।
  2. uv स्थापित करें।
  3. uv sync --all-extras --group dev चलाएँ।
  4. यदि आप स्थानीय कमिट हुक चाहते हैं तो 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.benchdispatchatlas.solve केवल core पर निर्भर हैं।
  • dispatchatlas.lab core, benchmark, व solver पैकेज संयोजित करता है।
  • dispatchatlas.analytica core अनुबंध व स्थिर मैनिफ़ेस्ट उपभोग करता है।
  • site/ अनुमोदित निर्यात उपभोग करता है; tools/ व CI प्रत्येक पैकेज का निरीक्षण करते हैं पर उत्पाद रनटाइम निर्भरताएँ नहीं हैं।

सीमा tests/architecture/test_import_boundaries.py द्वारा प्रवर्तित है, अतः एक पार करने वाला import समीक्षा से पहले परीक्षण सुइट विफल कर देता है।

📋 Pull request अपेक्षाएँ

क्षेत्रअपेक्षा
कोडimport को दस्तावेज़ित निर्भरता दिशा के भीतर रखें।
डेटाकैंपेन आउटपुट को स्रोत फ़ाइलों के बजाय उत्पन्न प्रमाण के रूप में मानें।
दस्तावेज़प्रथम-रिलीज़ DispatchAtlas भाषा का उपयोग करें, स्मोक प्रमाण को लेबल किया रखें, और जब उपयोगकर्ता-सम्मुख व्यवहार बदले तब पृष्ठ अद्यतन करें।
परीक्षणनए सार्वजनिक अनुबंधों के लिए व्यवहार अभिकथन जोड़ें; बाह्य संरचना पुनरुत्पादित करने के बजाय अपेक्षित व्यवहार वर्णित करें।
सुरक्षाक्रेडेंशियल, निजी प्रमाण, या परिनियोजन रहस्य कमिट न करें।
उत्पन्न कलाकृतियाँकैश, निर्माण आउटपुट, कवरेज रिपोर्ट, प्रयोग आउटपुट, व चेकपॉइंट को Git के बाहर रखें जब तक कोई रिपॉज़िटरी नीति उन्हें ट्रैक किए स्रोत के रूप में न नामित करे।

🤝 समुदाय व समर्थन

समुदाय चैनल, issue फ़ॉर्म, व चर्चा श्रेणियाँ समुदाय पृष्ठ पर सारांशित हैं। योगदान जीवनचक्र — प्रस्ताव, संरेखण, कार्यान्वयन, समीक्षा, विलय — GOVERNANCE.md में दर्ज है।