Проект GNOME планирует изменить метод разработки GTK+ и выпустить GTK+ 4

2016-06-13

Разработчики из проекта GNOME объявили о намерении воплотить в жизнь новый план разработки тулкита GTK+, который даст возможность добиться оптимального баланса между развитием функциональности и поддержанием стабильного API. Суть плана, который ещё находится в обсуждении и не утверждён официально, в создании экспериментальной ветки GTK+ 4, в которой будет развиваться порция новых возможностей, постепенно стабилизируясь. Через некоторое время ветка GTK+ 4 перейдёт в фазу стабилизации API, а новшества начнут развиваться в новой экспериментальной ветке GTK+ 5.

Ветка GTK+ 3 демонстрирует бурное наращивание функциональности, но, к сожалению, ценой низкого уровня стабильности API, что требует от разработчиков приложений постоянной адаптации программ под меняющийся API. Для исправления ситуации предлагается увеличить интенсивность выпуска новых значительных веток (GTK+ 4, GTK+ 5, GTK+ 6 и т.п.), которые планируют формировать раз в два года, что соответствует циклу поддержки многих дистрибутивов Linux. Кроме того, будет обеспечена возможность параллельной установки старых и новых значительных веток т.е. GTK+ 4 и GTK+ 3 (а также GTK+ 5, GTK+ 6 и т.п.) будут иметь разные имена библиотеки и отдельные директории заголовочных файлов, что позволит установить их одновременно по аналогии с тем как могут сосуществовать GTK+ 3 и GTK+ 2.

Первый выпуск новой ветки, например, GTK+ 4.0, не будет содержать финальный стабильный API - ветка будет развиваться и каждые 6 месяцев будет выпускаться новый промежуточный релиз (GTK+ 4.2, GTK+ 4.4, GTK+ 4.6), который может содержать несовместимости на уровне API и ABI (как это сейчас происходит в ветке 3.x). Соответственно, разные промежуточные релизы одной ветки не смогут быть установлены параллельно и будут замещать друг друга. Последний промежуточный выпуск перед выходом следующей значительной ветки будет помечаться как стабильный и фиксирующий API для данной ветки. В дальнейшем, после достижения стабилизации, все обновления в ветке не будут приводить к нарушению совместимости API.

Например, для ветки GTK+ 4 стабильным API будет объявлен при выходе GTK+ 4.6. Т.е. выпуски GTK+ 4.0-4.4 будут позиционироваться как экспериментальные, а стабилизация будет произведена только спустя 18 месяцев. Так как после стабилизации API каждой ветки будет полностью заморожен, приложения смогут полагаться на него и не бояться нарушения поведения до тех пор, пока заданная ветка GTK+ продолжает поставляться в дистрибутивах. В свою очередь дистрибутивы могут поддерживать ветки GTK+ до тех пор, пока имеются зависящие от них приложения. Приложения, которым необходимы новые возможности, например, приложения GNOME, смогут использовать экспериментальные выпуски, но должны будут отслеживать совместимость с последующими промежуточными выпусками.