Разработчики старшего поколения знают, что основная проблема программирования сегодня не в написании кода, а в соблюдении лицензий на базовый открытый код. FOSSA позволяет решить эту проблему, пишет Стивен Воан-Николс на портале ZDNet.

В 2015 г. провайдер логистики открытого ПО и юридических решений Black Duck Software и фирма North Bridge обнаружили, что 66% компаний создают открытое ПО, которое распространяется на основе самых различных лицензий.

Давно уже существуют корпоративные программы, например разработанные компаниями Black Duck Software, White Source Software и Sonatype, для сканирования программного кода и управления открытыми лицензиями. Они выполняют большую работу. По данным Sonatype, приложения содержат в среднем 106 компонентов с открытым кодом.

У учредителя и генерального директора компании FOSSA 22-летнего Кевина Вана другой подход. Он говорит: «Сканирования кода уже недостаточно. Подход FOSSA к выявлению зависимостей использует как статический, так и динамический анализ кода. Динамический анализ позволяет FOSSA получить точное, живое представление об имеющихся в сборках зависимостях. Статический анализ дополняет его метаданными о том, как включены зависимости, и является основой глубокого изучения функций и выдачи рекомендаций. Оба эти подхода применяются для создания наиболее точной, мощной и интеллектуальной инфраструктуры для управления открытым кодом».

Метод FOSSA использует открытый код для автоматического управления лицензиями. Программа поддерживает свыше 15 языков и сред, включая JavaScript, Java, Ruby, Golang и PHP. Сегодня FOSSA представляет собой написанный на Go веб-сервис на сайте GitHub.

FOSSA дает гораздо более точные сведения о зависимостях, чем чтение файлов манифеста пакета. Сервис указывает на возникающие при этом трудности:

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

Таким образом, вместо того, чтобы пытаться предугадать поведение сборки, FOSSA запускается локально, применяя ваши инструменты сборки для точного определения зависимостей, используемых двоичным кодом.

В этом есть реальная потребность. Несмотря на наличие коммерческих инструментов, сказал Ван, большинство людей по-прежнему применяют таблицы для отслеживания требований лицензирования вручную. Он пояснил: «В конце концов, каждый использует открытый код по-своему. Хотя во многих языках для зависимостей имеются определенные соглашения и структура, всегда будет множество пограничных случаев ввиду разнообразия способов использования кода. Поэтому важно, что речь идет об открытом и основанном на сотрудничестве проекте».

FOSSA распространяется по лицензии Mozilla Public License 2.0. Как сказал Ван, версия с интерфейсом командной строки является открытой и бесплатной, а за приборную панель и техническую поддержку необходимо платить.

Воан-Николс называет управление лицензиями на открытый код неизбежным злом. Возможно, FOSSA, решающая эту проблему также с помощью открытого кода, это именно то, что необходимо для наведения порядка в этом деле.