Меню

Главная
Случайная статья
Настройки
Форк
Материал из https://ru.wikipedia.org

Форк (fork с англ.«развилка, вилка») или «ответвление» — ситуация, когда существующий код проекта копируется и дальше развивается независимо от оригинала. Часто форк используется как точка начала новой разработки: основной проект может продолжить существование, либо прекратить обновления.[1]

Юридически право создания форка в случае со свободным ПО вытекает из самой природы открытой лицензии — она разрешает копирование, модификацию и распространение кода без необходимости разрешения от первоначальных разработчиков.[2]

Форк может поддерживать обмен частью кода с оригиналом или развиваться независимо — порой даже полностью утрачивая общность. Примеры: разделение X Window System на XFree86 и X.Org Server; OpenOffice.org LibreOffice и Apache OpenOffice.

Стоит отличать форк от «дистрибутива» — последний представляет собой упаковку уже существующего проекта без изменения кода. Форк подразумевает собственную ветку развития с изменениями и автономной историей.[3]

Ответвлённый проект или форк может поддерживать и обмениваться частью содержимого с основным проектом, а может и приобрести абсолютно другие свойства, перестав иметь с базовым проектом что-то общее. Пример: разделение проекта X Window System на XFree86 и X.Org, разделение проекта OpenOffice.org на LibreOffice и Apache OpenOffice. Разделения были и среди несвободного программного обеспечения. Пример: Windows NT, которая по мере развития разделилась на две ветви: Windows 2000 и Windows Server.

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

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

Дальнейшее развитие может происходить разными путями: сосуществование и активный обмен общим (разделяемым) кодом, независимое существование (возможна даже полная потеря общих свойств), «миграция» разработчиков из исходной ветки в другую, адаптация проекта к новым технологиям или слияние ответвлений в единый проект. Иногда «ответвление» при возврате в основной проект получает ведущую роль. Например, от GNU Compiler Collection (GCC) в своё время откололся проект Experimental/Enhanced GNU Compiler System (EGCS). Через два года произошло воссоединение проектов, причём результат был основан на EGCS и даже наследовал его гораздо более открытый процесс разработки.

В случае свободного ПО юридически возможность создания форка напрямую следует из факта распространения программы по свободной лицензии. Однако форки крупных проектов сравнительно редки и негативно воспринимаются в сообществе, поскольку уменьшают количество разработчиков каждой из ветвей и замедляют их развитие. Тем не менее значение «права на форк» достаточно велико, даже несмотря на то, что на практике оно используется редко: это некоторый сдерживающий фактор в отношениях между ключевыми разработчиками (имеющими возможность вносить изменения в код проекта напрямую, апстрим[англ.]) и сообществом.

См. также

Примечания
  1. Fork (software development) — Wikipedia. Дата обращения: 20 августа 2025.
  2. What does the “right to fork” mean? — Open Source Stack Exchange. Дата обращения: 20 августа 2025.
  3. What's the difference between a fork and a distribution? — OpenSource.com. Дата обращения: 20 августа 2025.



Downgrade Counter