Перейти к содержимому
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).
Добавить исполняемый примерSmoke-масштабные, настраиваемые, безопасные-для-публики примеры.examples/ (его README перечисляет корзины примеров и правила).
Улучшить инструментарий качестваGates 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, если хотите локальные commit-хуки.

Локальные проверки

Выполните эти до открытия pull request — хостируемый CI прогоняет тот же набор gates через матрицу 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

Для smoke-проверок сборки пакетов:

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"

📦 Границы

Держите импорты внутри документированного направления зависимостей — см. обзор архитектуры для диаграммы и таблицы импортов по-пакетам. Краткая форма:

  • dispatchatlas.core — внутренняя доменная граница и не импортирует ни одного пакета DispatchAtlas.
  • dispatchatlas.bench и dispatchatlas.solve зависят только от core.
  • dispatchatlas.lab компонует пакеты core, benchmark, и solver.
  • dispatchatlas.analytica потребляет контракты core и стабильные манифесты.
  • site/ потребляет одобренные экспорты; tools/ и CI инспектируют каждый пакет, но не являются зависимостями времени выполнения продукта.

Граница обеспечивается tests/architecture/test_import_boundaries.py, так что пересекающий импорт проваливает набор тестов до проверки.

📋 Ожидания pull request

ОбластьОжидание
КодДержите импорты внутри документированного направления зависимостей.
ДанныеТрактуйте выводы кампаний как сгенерированное доказательство, не файлы исходников.
DocsИспользуйте язык DispatchAtlas первого-выпуска, держите smoke-доказательство помеченным, и обновляйте страницы, когда меняется пользовательское поведение.
ТестыДобавляйте поведенческие утверждения для новых публичных контрактов; описывайте ожидаемое поведение, а не воспроизводите внешнюю структуру.
БезопасностьНе коммитьте учётные данные, частное доказательство, или секреты развёртывания.
Сгенерированные артефактыДержите кэши, выводы сборки, отчёты покрытия, выводы экспериментов, и контрольные точки вне Git, если только политика репозитория не называет их отслеживаемым исходником.

🤝 Сообщество и поддержка

Каналы сообщества, формы issue, и категории обсуждений резюмированы на странице сообщества. Жизненный цикл вклада — предложить, согласовать, реализовать, проверить, слить — зафиксирован в GOVERNANCE.md.