Skip to content

Contributing

DiskScope edited this page Oct 20, 2026 · 2 revisions

Contributing

Спасибо за интерес к DiskScope.

Issues

Перед созданием issue:

  • проверьте существующие issues;
  • укажите версию DiskScope, macOS и архитектуру;
  • опишите шаги воспроизведения;
  • не прикладывайте личные файлы и содержимое домашних папок.

Pull requests

  1. Сделайте fork и ветку от main.

  2. Внесите изменение.

  3. Добавьте или обновите тесты.

  4. Запустите:

    swift test
  5. Обновите CHANGELOG.md, если изменение заметное.

  6. Обновите скриншоты, если менялся UI:

    swift run DiskScopeSnapshots snapshots /Applications
    ./scripts/sync-docs-assets.sh
  7. Откройте PR с описанием и ссылкой на issue.

Стиль кода

  • Swift 6 toolchain, macOS 14+;
  • без сторонних зависимостей;
  • публичные API — с документацией, если это ядро;
  • UI — русский, светлая и тёмная темы;
  • не добавляйте сетевые запросы без явной необходимости и согласия пользователя.

Тесты

  • 42 XCTest;
  • покрывайте сканер, дерево, медиа, переносы, модель и защиту от повторного скана;
  • не делайте тесты зависимыми от сети.

Документация

  • docs/ — сайт MkDocs;
  • wiki/ — исходники GitHub wiki;
  • README.md — краткий обзор.

Wiki публикуется скриптом:

./scripts/publish-wiki.sh

Скрипт требует, чтобы GitHub wiki была инициализирована первой страницей.

Скриншоты

DiskScopeSnapshots рендерит UI без screen recording. После изменения интерфейса обновите snapshots/ и docs/assets/screenshots/.

CI

В проекте три независимых security/quality pipeline:

  • Static Analysis — SwiftLint и swift build; ошибки линтера валят job, предупреждения аннотируются.
  • CodeQL — security-and-quality запросы для Swift.
  • CVE Analysis — OSV-Scanner, Trivy и Dependency Review.

CVE-скан не блокирует статический анализ и наоборот; оба работают на push/PR и по недельному расписанию.

Релизы

Релиз делает мейнтейнер по тегу. См. Процесс релиза.

Безопасность

Не публикуйте уязвимости в открытых issue. Используйте private security advisory, если он доступен.

Лицензия

Отправляя PR, вы соглашаетесь, что вклад распространяется под MIT License.

Clone this wiki locally