Открыть сервис

Инкубатор Apache

Инкубатор Apache — это программа начального этапа разработки и интеграции проектов в экосистему Apache Software Foundation (ASF), некоммерческой организации, занимающейся поддержкой открытого программного обеспечения. Инкубатор служит временной площадкой для новых проектов, которые ещё не соответствуют стандартам зрелого проекта Apache, но имеют потенциал для развития. Основная цель программы — обеспечить соблюдение принципов управления ASF, включая меритократию, прозрачность, совместную разработку и юридическую чистоту кода (лицензирование, отсутствие патентных претензий).

История

Программа инкубации была создана в 2002 году, через три года после основания ASF. Первоначально она возникла как ответ на необходимость формализовать процесс приёма сторонних проектов, которые хотели войти в состав фонда. До этого проекты принимались по упрощённой схеме, что приводило к юридическим и организационным рискам. В 2002 году ASF утвердила устав Инкубатора, который определил процедуры входа, проверки и выпуска проектов. Первым проектом, прошедшим инкубацию, стал Apache XML Graphics (2002 год). С тех пор через Инкубатор прошли сотни проектов, многие из которых стали ключевыми для экосистемы Apache (например, Apache Hadoop, Apache Spark, Apache Tomcat).

Процесс инкубации

Процесс инкубации состоит из нескольких этапов, каждый из которых контролируется комитетом Инкубатора (Incubator PMC — Project Management Committee). Комитет назначает наставника (mentor) из числа опытных участников ASF, который сопровождает проект на всех этапах.

Подача заявки

Проект может быть предложен любым участником сообщества или внешней организацией. Для этого необходимо подготовить предложение (proposal), которое включает:

  • название проекта и его краткое описание;
  • цели и предполагаемое применение;
  • список инициаторов (champion) и потенциальных участников;
  • обоснование необходимости инкубации (например, юридические риски, необходимость в управлении сообществом);
  • ссылки на исходный код (если проект уже существует).

Предложение обсуждается в списке рассылки Инкубатора, после чего проводится голосование. Для принятия требуется не менее трёх голосов «за» от членов комитета и отсутствие возражений.

Фаза инкубации

После одобрения проект получает статус «инкубируемый» (incubating). На этом этапе:

  • проект переводится в репозиторий ASF и получает инфраструктуру (почтовые списки, система отслеживания ошибок, система непрерывной интеграции);
  • проводится аудит кода на предмет соответствия лицензиям Apache (все файлы должны иметь заголовок с лицензией, сторонние зависимости — совместимые лицензии);
  • формируется сообщество разработчиков, которое должно придерживаться принципов меритократии (решения принимаются на основе заслуг, а не статуса);
  • проект публикует свои первые релизы (обычно альфа- или бета-версии) под управлением ASF.

Наставник регулярно отчитывается о прогрессе проекта перед комитетом Инкубатора. Если проект не демонстрирует активности или нарушает правила, он может быть закрыт (retired) до завершения инкубации.

Выпуск из инкубатора

Проект считается готовым к выпуску, когда он соответствует критериям зрелости ASF. Основные критерии включают:

  • стабильное сообщество (не менее трёх независимых разработчиков, активно участвующих в проекте);
  • соблюдение принципов управления (прозрачные решения, открытые обсуждения);
  • юридическая чистота (все права на код переданы ASF, отсутствуют спорные лицензии);
  • наличие как минимум одного стабильного релиза, выпущенного по процедурам ASF.

Для выпуска проводится голосование в комитете Инкубатора, а затем — в совете директоров ASF. После утверждения проект переходит в статус «зрелый» (top-level project) и получает собственный комитет управления (PMC).

Классификация проектов в инкубаторе

Проекты в Инкубаторе можно разделить на несколько категорий по происхождению и цели:

  • Внешние проекты — код, разработанный вне ASF (например, компаниями или университетами), который передаётся фонду. Пример: Apache Spark (изначально разработан в UC Berkeley).
  • Сплит-проектывыделение части функциональности из существующего проекта Apache в отдельный проект. Пример: Apache Hadoop YARN (выделен из Hadoop).
  • Новые проекты — создаются с нуля внутри ASF, но требуют инкубации для формирования сообщества. Пример: Apache Arrow.
  • Проекты-поглощения — проекты, которые ранее были частью других организаций и переходят под управление ASF. Пример: Apache OpenOffice (передан от Sun Microsystems).

Инфраструктура и инструменты

Инкубатор использует стандартную инфраструктуру ASF, но с некоторыми ограничениями:

  • репозиторий кода — Git (на платформе Apache GitBox);
  • система отслеживания ошибок — JIRA (с отдельным проектом для каждого инкубируемого проекта);
  • почтовые списки — создаются отдельные списки для разработчиков (dev@) и пользователей (user@);
  • система непрерывной интеграции — Jenkins (сборки и тесты);
  • веб-сайт — временный сайт на домене incubator.apache.org.

Для инкубируемых проектов также доступна техническая поддержка от инфраструктурной команды ASF, но приоритет ниже, чем у зрелых проектов.

Значение и критика

Инкубатор Apache играет ключевую роль в экосистеме открытого ПО, обеспечивая стандартизацию и юридическую защиту для новых проектов. Он позволяет компаниям и сообществам передавать код в ASF, не опасаясь патентных исков или нарушения лицензий. Кроме того, инкубация способствует формированию здорового сообщества, где решения принимаются коллегиально, а не единолично.

Однако программа подвергается критике по нескольким причинам:

  • Длительность процесса — инкубация может занимать от нескольких месяцев до нескольких лет, что замедляет выход проекта на рынок.
  • Бюрократизация — требования к документации и голосованиям могут отпугнуть небольшие проекты, не имеющие ресурсов для формальностей.
  • Неравномерное внимание — проекты от крупных компаний (например, Google, Facebook) получают больше ресурсов и внимания, чем проекты от независимых разработчиков.
  • Риск закрытия — многие проекты не завершают инкубацию и закрываются из-за потери интереса сообщества или конфликтов.

Примеры проектов, прошедших инкубацию

  • Apache Hadoop (2006–2008) — фреймворк для распределённой обработки данных, один из самых известных проектов ASF.
  • Apache Spark (2010–2013) — движок для обработки больших данных, вышедший из инкубатора и ставший самостоятельным проектом.
  • Apache Tomcat (1999–2005) — сервер приложений Java, прошедший инкубацию в ранние годы программы.
  • Apache OpenOffice (2011–2012) — офисный пакет, переданный Oracle и прошедший инкубацию.
  • Apache Kafka (2011–2012) — система обмена сообщениями, разработанная LinkedIn.

Текущее состояние

По состоянию на 2024 год в Инкубаторе Apache находится около 30 проектов на разных стадиях. Комитет Инкубатора состоит из 50–70 опытных участников ASF, которые регулярно проводят аудит и голосования. Программа продолжает развиваться: в 2023 году были обновлены критерии выпуска, упрощена процедура подачи заявок для малых проектов.

Источники

  • Официальный сайт Apache Incubator (incubator.apache.org)
  • Устав Apache Software Foundation (2002)
  • Документация ASF по процессу инкубации (Incubator Policy)
  • Статья «The Apache Way» (Apache Community Development)
  • История ASF (Apache Software Foundation: A Brief History)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →