Semgrep выпустил версию v1.163.0 — минорное обновление, сфокусированное на производительности и безопасности, доступное с 15 мая 2026 года. Эта версия, следующая за v1.162.0, предлагает ключевые оптимизации и улучшения поддержки языков. Для получения полной информации обратитесь к официальному changelog.

Ключевые Изменения

Улучшения Производительности: Этот релиз включает множество оптимизаций, направленных на значительное сокращение времени запуска сканирования и общего использования памяти. semgrep ci теперь запускается быстрее за счет интеллектуального исключения дублирующей валидации правил semgrep-core при загрузке правил CLI, при этом сохраняя сбои в стиле конфигурации для недействительных правил. Правила “dependency-aware” теперь валидируются исключительно на стороне ядра, что дополнительно оптимизирует процесс запуска. Для больших наборов правил валидация правил теперь выполняется параллельно на нескольких ядрах, распределяя рабочую нагрузку и ускоряя начальные проверки. Аналогично, парсинг правил теперь выполняется параллельно на шардах на многоядерных машинах, резко сокращая время обработки. Дополнительные оптимизации включают улучшенную предварительную фильтрацию и парсинг правил, а также критическое исправление производительности парсинга правил “transitive reachability” путем исправления проблемы с суффиксом файла. Эти совместные усилия также способствуют снижению пикового потребления памяти при сканировании репозиториев с обширными наборами правил.

Поддержка Языков: Парсинг PHP обновлен для полной поддержки грамматических изменений, введенных в версиях PHP с 8.1 по 8.5. Это обеспечивает более широкий и точный статический анализ для современных PHP-приложений, позволяя QA-командам уверенно сканировать новые кодовые базы.

Исправления Ошибок: Значительно улучшено разрешение имен для полностью квалифицированных имен в Java, Kotlin и Scala. Это улучшение напрямую приводит к уменьшению количества ложных срабатываний и увеличению количества истинных срабатываний, обеспечивая более точные результаты анализа безопасности и качества за счет правильной идентификации элементов кода. Также была исправлена специфическая ошибка разрешения имен в Java (актуально для пользователей Semgrep Pro), что дополнительно повысило точность.

Влияние на QA-команды

QA-команды получат выгоду от значительно более быстрой обратной связи благодаря сокращению времени запуска сканирования, что позволит быстрее интегрировать его в CI/CD-пайплайны и ускорить итерации. Улучшенная точность в Java, Kotlin и Scala, наряду с расширенной поддержкой PHP, означает более надежные результаты статического анализа. Это помогает выявлять критические проблемы безопасности и качества на более ранних этапах цикла разработки, снижая затраты на исправление и улучшая общее качество кода.

Частые Вопросы

В: На чем сосредоточено основное внимание в Semgrep v1.163.0? О: Основное внимание уделено значительным улучшениям производительности при запуске сканирования и обработке правил, а также расширенной поддержке языков PHP и Java.

В: Как это обновление поможет пользователям semgrep ci? О: Пользователи semgrep ci ощутят значительно более быстрое время запуска благодаря оптимизированной валидации правил, параллельной обработке правил и снижению накладных расходов.

В: Есть ли изменения для проектов на Java, Kotlin или Scala? О: Да, улучшено разрешение имен для полностью квалифицированных имен, что приводит к более точным результатам с меньшим количеством ложных и большим количеством истинных срабатываний в этих языках.