Спасибо за интерес к проекту. Этот документ служит точкой входа для контрибьюторов: здесь собраны ожидания по процессу, а профильные правила вынесены в отдельные документы.
Минимальное окружение:
- Rust 1.95+
- Git
Базовая подготовка репозитория:
git clone https://github.com/itrous/bsl-analyzer.git
cd bsl-analyzer
./scripts/setup-hooks.shПосле клонирования убедитесь, что проект собирается и тесты проходят:
cargo build
cargo test --allПолный список локальных проверок и правила по качеству кода описаны в
docs/contributing/DEVELOPMENT_RULES.md.
docs/README.md— карта документации проектаdocs/contributing/DEVELOPMENT_RULES.md— код-стайл, тесты, правила по диагностике и производительностиdocs/contributing/LOGGING.md—tracing, profiling и переменные окруженияdocs/contributing/VERSIONING.md— релизы, теги и обновление версийdocs/contributing/SALSA_GUIDE.md— практические заметки по Salsadocs/architecture/ARCHITECTURE.md— обзор слоёв и основных пайплайнов
- Создайте ветку от
develop. - Если изменение заметное по масштабу, сначала зафиксируйте задачу в issue или опишите её в Merge Request.
- Вносите изменения вместе с тестами и обновлением релевантной документации.
- Перед публикацией прогоните локальные проверки.
- Откройте Merge Request с кратким описанием, ссылками на связанные задачи и перечислением затронутых сценариев.
Типичная последовательность команд:
git checkout -b feature/my-change
cargo fmt --all
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all
git push -u origin feature/my-change- изменение сопровождается тестами или понятным объяснением, почему тест не нужен;
- документация обновляется вместе с кодом, если меняется поведение CLI, конфигов, диагностик или архитектурных ограничений;
- новые diagnostics оформлены полностью: код обработчика, metadata, тесты и
справка в
crates/ide-diagnostics/docs/; - локальные проверки проходят без warnings и случайного отладочного вывода.
Подробные правила и примеры остаются в
docs/contributing/DEVELOPMENT_RULES.md, чтобы не дублировать их здесь.
Для сообщений коммитов используем
Conventional Commits:
feat:, fix:, docs:, refactor:, test:, chore: и т.д.
Для Merge Request важно:
- понятно описать, что изменилось и зачем;
- указать влияние на пользователей, конфигурацию и документацию;
- приложить ссылки на issue или обсуждение, если они есть.
Политика версий, релизные шаги и правила работы с тегами вынесены в
docs/contributing/VERSIONING.md.
Минимальный маршрут почти всегда такой:
- добавить или обновить обработчик в
crates/ide-diagnostics/src/handlers/; - обновить metadata и регистрацию кода диагностики;
- добавить тесты;
- обновить справку в
crates/ide-diagnostics/docs/; - проверить результат через
bsl-analyzer rules listили профильные тесты.
За детальными шаблонами и критериями выбора между AST/HIR/CFG/Dataflow/SDBL
смотрите docs/contributing/DEVELOPMENT_RULES.md.
- Issues: https://github.com/itrous/bsl-analyzer/issues
- Pull Requests: https://github.com/itrous/bsl-analyzer/pulls
Отправляя изменения в репозиторий, вы соглашаетесь, что ваш вклад
распространяется на условиях лицензии MIT (см. LICENSE-MIT), если явно не
согласовано иное.