Проект WordPress Core Fields API ищет нового лидера
Опубликовано: 2018-07-26В 2014 году ведущий разработчик Pods Скотт Кингсли Кларк взял на себя основную ведущую роль в проекте пользовательского интерфейса метаданных. В 2015 году проект пользовательского интерфейса метаданных переродился в Fields API.
Fields API был разработан, чтобы позволить регистрировать поля на разных экранах в административной области через единый API. Новые мета-блоки и поля внутри них можно было добавлять к сообщениям, а новые разделы и поля можно было добавлять на экран профиля.
Целью API является интеграция со всеми различными экранами администрирования, включая «Сообщения», «Условия», «Пользователи», «Медиа» и «Комментарии», и обеспечение стандартизации.
Кларк руководил проектом в течение трех лет и, несмотря на возобновление интереса в прошлом году, объявил в Slack-канале проекта, что уходит в отставку.
С тяжелым сердцем я должен передать эстафету этому проекту. После сотен часов своего времени я больше не верю, что могу внести изменения в ядро WordPress.
Видение Fields API было слишком масштабным, слишком сложным для одного человека. Я глубоко убежден, что WordPress нуждается в Fields API, но путь к тому, где мы находимся с Fields API, был долгим и трудным.
Правда в том, что я перегорел много лет назад, строя первый и второй прототипы. Не все согласились с тем, как спроектировать код, он претерпел множество изменений на основе отзывов основных участников. Я просто не мог заинтересовать этим достаточное количество людей, я не мог привлечь достаточное количество компаний и людей, заинтересованных в его поддержке.
Мне нужно дать шанс кому-то еще, я его тяну. Если кто-то возьмет на себя руководство в будущем, я буду рад помочь, где смогу. Но я не могу продолжать руководить предложением/проектом Fields API. Прошу прощения, пожалуйста, примите мои извинения, и я надеюсь, что вы простите меня за то, что я не довел этот проект до конца. Я все еще верю, что это жизненно важная часть будущего успеха WordPress.
Скотт Кингсли Кларк
Испытания и невзгоды руководства проектом с открытым исходным кодом
В следующем интервью Кларк объясняет, почему он чувствует личную ответственность за отсутствие прогресса в проекте, почему API важен для будущего WordPress, и размышляет о том, что он мог бы сделать по-другому.
Вы хотите передать эстафету кому-то конкретному?
Нет, я не уверен, у кого хватит драйва и влияния, чтобы довести проект до конца. Это крупномасштабный проект, к которому следует подходить с долгосрочным видением, но с достаточно небольшими шагами, чтобы превратить его в ядро WordPress. Это очень много, чтобы просить кого-то, это также не является приоритетом для людей сейчас, так как они отвлекаются на выход Гутенберга в ближайшем будущем.
Почему Fields API является жизненно важной частью будущего WordPress?
Сегодня люди смотрят на WordPress и удивляются, как они раньше выживали без REST API. Ну, по крайней мере, я знаю, что знаю! То же самое можно сказать и об API Fields, хотя его еще нет. Есть так много случаев, когда создание решений для WordPress с использованием всех различных хуков вызывает разочарование.
Для последовательности, это дикий запад там. Вы регистрируете мета-бокс и заполняете его всем, чем хотите. Вам нужен собственный CSS для стилизации полей формы, и у каждого свое представление о том, как должен выглядеть этот интерфейс. Вы отвечаете за свои собственные адаптивные макеты, удобные для мобильных устройств, так много всего, что вам нужно сделать самостоятельно. Вы должны иметь возможность настраивать внешний вид, но каждое место, куда вы хотите добавить поле или форму, должно действительно иметь правильный API.
В долгосрочной перспективе представьте, что вы регистрируете поля в WordPress так же, как вы регистрируете типы сообщений. Представьте, что поля и их конфигурации доступны для REST API и доступны через приложение WordPress или другие пользовательские приложения.
Весь мир открывается, потому что у вас есть согласованный API, весь мир имеет смысл, потому что у вас есть согласованный интерфейс для этих полей на различных экранах редактирования. Сообщения, термины, комментарии, пользователи, медиа и даже настройщик будут иметь один и тот же базовый API для добавления групп, панелей и полей на свои экраны.
Если бы Gutenberg был реализован после появления Fields API, миграция для людей была бы не такой сложной. Гутенберг мог бы автоматически показать все интерфейсы API полей, как это делается для обратной совместимости метабокса. Это бы тоже выглядело намного красивее.
Потратив некоторое время на размышления, что вы могли бы сделать по-другому, чтобы привлечь больше основных участников к участию в проекте и сделать его более приоритетным?
Я не уверен, это тонкий баланс между участием и уверенностью в конечном результате. Сначала обратная связь была о том, что API был чужим для WordPress, они спрашивали, может ли он быть похож по структуре на другие API, такие как Customizer.

Мы убрали код и перестроили его с нуля как ответвление настройщика, он даже поддерживал использование настройщиком Fields API. На пике разработки у нас были реализованы все области Fields API.
Релизы ядра продвигались довольно быстро, было много изменений кода от релиза к релизу WordPress, за которыми нам приходилось следить, потому что мы, по сути, создали проект, который был гигантским патчем для WordPress.
Не хватало хуков, чтобы делать то, что нам нужно, и многие разделы не расширялись из-за решений кода, которые помечали себя как «окончательные», что означает, что вы не можете расширить определенный класс, чтобы настроить его работу.
Хотел бы я участвовать во всех больших WordCamps в США и Европе, по сути лоббируя эту функцию. Сбор сторонников и тому подобное, это в некотором роде похоже на политику. Я торчал на собраниях разработчиков Core, пытаясь поднять эту тему. Я попытался узаконить эту функцию, создав специальный канал в официальном WordPress Slack, публикуя обновления на https://make.wordpress.org/core/ и проводя еженедельные встречи.
В конечном счете, я предпочел время для разработки времени, чтобы собрать войска. Это было падением, я начал быстро выгорать после первых нескольких переписываний, так как у меня было много других обязанностей помимо Fields API.
Не похоже, что компании легко захотят платить вам за работу над таким проектом на неопределенный срок, хотя и WebDevStudios, и 10up дали мне время, чтобы продвинуть его вперед. Это не был пустой чек, в какой-то момент мне пришлось вернуться к оплачиваемой работе. С тех пор все это было в моем свободном времени, и это было трудно совмещать во времена финансового стресса и продажи/покупки дома.
Есть спрос на Fields API в ядре, но не хватает рук для его создания. Как вы думаете, почему?
Все сосредоточены на чем-то другом. Есть много областей WordPress, которые требуют внимания людей. Есть такие вещи, как доступность, которые заслуживают гораздо большего внимания, чем получают. Но мне кажется, что основное внимание уделяется Gutenberg и REST API.
Гутенберг особенно был огромной тратой времени для людей, которые вносили свой вклад и реализовывали. Это действительно большая функция. Это определенно больше по масштабу, чем Fields API, это похоже на совершенно новое приложение, которое живет в WordPress. Интеграция с ним потребовала много обучения и проб/ошибок. Внимание людей находится там, где оно должно быть прямо сейчас. Жаль только, что Gutenberg предшествовал Fields API с точки зрения приоритета и уровня интереса.
Какой совет вы бы дали следующему руководителю проекта Fields API?
Это большой проект, каждый захочет сказать, что он должен быть определенным образом. Вы должны оценить варианты и предложить что-то небольшое для начала. Опирайтесь на это, но никогда не упускайте из виду долгосрочную цель интеграции на всех экранах WordPress. Даже внешние формы комментариев могут процветать с Fields API.
Почему вы чувствуете личную ответственность за то, что проект не является основным приоритетом?
В какой-то момент у нас был импульс. У нас было как минимум три-четыре активных человека. Он развалился, потому что у меня не хватило времени. Это моя близорукость, это моя вина. Я потратил сотни часов на разработку проекта за пару лет. Я должен был оставить себе гораздо больше времени для организации текста предложения по функциям и поддержания огня в сердцах наших участников.
Учитывая время и усилия, которые вы вложили в проект за последние несколько лет, чувствуете ли вы облегчение, передавая эстафету?
Если факел будет передан или поднят, я почувствую себя намного лучше. Главное облегчение в том, что официально я больше не должен нести эту ношу в одиночку. Это нормально — попытаться и потерпеть неудачу, хотя это все равно грустно.
Я надеюсь, что кто-то или какая-то компания примет меры и потратит на это время. Они могли даже вновь разжечь огонь в моем собственном сердце, которое сгорело само собой. На данный момент у меня на одно важное дело меньше. У меня все еще есть здоровенная тарелка, но она уже не такая тяжелая ноша.
Хотя ближайшее будущее проекта неясно, тем, кто заинтересован в том, чтобы взять его на себя, рекомендуется прочитать сообщения, отмеченные тегом Fields API на Make.WordPress.Core, чтобы узнать о его истории. Вы также можете посетить страницу проекта на Github.
Если вы заинтересованы в том, чтобы взять на себя управление проектом, вы можете связаться с Кларком в Twitter, Slack или через его веб-сайт.
