Gutenberg에서 WordPress Core로 실험적 API 병합을 중단하기 위한 기여자에 대한 새로운 제안 요청

게시 됨: 2022-08-11

Gutenberg의 실험적 API를 WordPress 코어로 병합하는 관행이 곧 끝날 수 있습니다. Automattic이 후원하는 기고자 Adam Zielinski가 게시한 새로운 제안에서는 기고자들에게 API를 코어에 병합하기 전에 안정화할 것을 요청합니다.

수년에 걸쳐 약 280개의 실험적 API가 Gutenberg 플러그인에서 병합되었으며 Zielinski는 4월에 이 문제에 대해 공개한 티켓에서 감사했습니다. 이전 버전과의 호환성에 대한 WordPress의 약속에 대해 편집기를 반복하면서 빠르게 이동하려는 드라이브의 균형을 맞추기 위해 실험적인 API의 수가 유지될 수 없게 되었고 이를 코어에 병합하는 관행이 현재 적극적으로 재고되고 있습니다.

공식적으로 실험용 API는 변경될 것으로 예상되므로 타사 사용을 방지하기 위해 플래그가 지정됩니다. 실제로, 블록 편집기용으로 빌드하는 사람들은 핵심에 있고 이러한 API가 가능하게 하는 기능을 확장하기를 원하기 때문에 어쨌든 사용하고 있습니다.

Zielinski는 "플러그인 및 테마 작성자는 언제든지 이전 버전과 호환되지 않는 방식으로 제거되거나 변경될 수 있는 __experimental 기능에 의존해야 합니다."라고 말했습니다. “심각한 유지 보수 부담입니다. 모든 새로운 Gutenberg/WordPress 릴리스는 잠재적으로 주요 변경 사항을 의미합니다.”

WordPress 코어 커미터 Peter Wilson은 실험적 API를 최첨단 제품으로 제한하는 데 찬성한다고 이 티켓에 대해 언급했습니다. 그는 이러한 변화의 필요성을 강조하면서 이러한 핵심 실험 API가 생태계에 미친 여러 가지 부정적인 영향을 언급했습니다.

  • 핵심 커미터는 신뢰성을 신뢰하지 않기 때문에 핵심 작업을 더 쉽게 만들기 위해 특정 라이브러리 기능을 사용하기를 꺼립니다.
  • 개발자는 더 이상 WP 클라이언트 사이트를 업그레이드하지 않습니다. 수년 동안 이전 버전과의 호환성을 유지하기 위해 노력한 핵심 커미터로서 이것은 저를 실망시킵니다. 보안 팀 구성원으로서 매우 우려되는 사항입니다.
  • 개발자는 wp.* 전역에 의존하기보다 테마 및 플러그인에 패키지 사본을 포함하기로 결정했습니다. 다시 한 번 이것은 보안 관점에서 우려되지만 이전 버전과의 호환성을 유지하는 것보다 JavaScript 페이로드를 훨씬 더 많이 증가시킵니다.
  • 마이너 버전에서 이전 버전과의 호환성 중단에 대한 보고서: "5.9.1 릴리스가 블록 편집기 외부의 사이트에 있는 많은 이미지의 응답성을 손상시킬 것으로 기대하지 않습니다."
  • 너무 불안정하기 때문에 코어 블록을 사용하지 않는 것을 고려하는 개발자: 부서지다. UI가 코어 블록만큼 좋지는 않지만 언제든지 블록을 깨는 것보다 안정성을 확보할 것입니다.”

Gutenberg 플러그인은 이전 버전과의 호환성이 중단될 것으로 예상되는 기능 플러그인으로 기능하는 반면 기여자는 기능을 코어에 병합하기 전에 다듬습니다. 이 접근 방식의 근본으로 돌아가서 편집자를 덜 실험적으로 만드는 것이 이 제안의 핵심입니다.

윌슨은 "버전 간의 불안정성은 이미 블록에디터의 가장 큰 외부 옹호자들을 소외시키기 시작했다"고 말했다.

이 수준의 불안정성을 유지하면 사람들이 WordPress를 기반으로 구축하지 못하게 되어 다른 방식으로 관리되는 보다 간단한 다른 프로젝트로 밀려날 수 있습니다. 실험적인 API에 의존해야 하는 필요성 때문에 개발자가 더 많은 제품을 빌드하지 못하게 되어 블록 편집기 채택이 느려질 수 있습니다.

"현재 많은 __experimental API를 사용하고 있는 플러그인 작성자로서 이러한 API가 안정화되기를 바랍니다."라고 WP Engine이 후원하는 기고자 Nick Diego가 말했습니다. “대부분은 중요한 기능을 제공하지만 __experimental API에 의존하는 제품을 구축하는 것은 항상 약간 당황스럽습니다. 프로세스가 매우 투명하고 잘 알려져 있고 플러그인/테마 작성자에게 안정적인 버전으로 마이그레이션하는 방법에 대한 가이드를 제공하는 한 이 이니셔티브가 마음에 듭니다.”

티켓에 대한 몇 달 간의 토론 후 Zielinski는 Make WordPress Core 블로그에 제안된 행동 계획에 기여자들의 우려 사항을 요약했습니다.

제안에 따르면 이미 코어에 병합된 기존 실험 API의 대부분은 안정적인 별칭을 갖게 됩니다.

Zielinski는 "이것은 이전 버전과의 호환성을 유지하고 번들 크기에 눈에 띄게 영향을 미치지 않아야 합니다."라고 말했습니다. “일부는 다른 치료가 필요할 것입니다. 사례별로 논의하자.” 그는 또한 기여자들에게 이미 핵심에 있는 기존 실험 API를 제거해야 하는지 여부를 고려할 것을 권장했습니다. 그는 이에 대한 많은 사례를 예상하지 않지만 플러그인 작성자에게 연락하고, 소프트 사용 중단을 사용하고, 핵심 게시물을 게시하는 확립된 관행을 사용할 것을 권장합니다.

"또한 여기서 두 가지가 작동하는 것을 봅니다. API 설계 중 실험적 API의 사용 및 남용(일반적으로 구텐베르크 플러그인에서 사용 및 테스트됨) 및 설계 기준을 충족할 때 이를 안정화하기 위한 부지런한 프로세스의 부족입니다." Gutenberg의 수석 건축가 Matias Ventura는 원래 티켓에 대해 언급했습니다. " 사실상 공개된 것으로 간주되어야 하는 것은 명명법에도 불구하고 많은 릴리스에 안정적인 형태로 존재했던 것입니다."

이전 버전과의 호환성 약속을 제공하는 WordPress의 기능을 유지하기 위해 제안에서는 실험용 API를 Gutenberg 플러그인으로 제한하고 코어에 병합하지 않을 것을 권장합니다. 안정적인 기능이 실험적인 API에 의존하는 경우 Zielinski는 간단한 답을 확인했습니다.

“그러면 실제로 안정적이지 않습니다. 먼저 종속성을 안정화합시다.”

이것은 본질적으로 WordPress의 API 및 업데이트에 대한 안정성과 신뢰도를 높여야 하는 새로운 전진 방법이지만 몇 가지 단점이 있습니다.

사용자와 기고자는 구텐베르크 기능이 주요 릴리스에서 황금 시간대 배포에 도달할 때 실험적 API에 의존할 수 없기 때문에 코어에 병합하는 속도가 느려질 수 있다고 예상할 수 있습니다. Zielinski는 또한 기여자가 이러한 API가 수백만 개의 WordPress 사이트에서 출시되고 사용되기 시작하면 리팩토링하는 데 어려움을 겪을 수 있다고 언급했습니다.

많은 사람들이 이러한 API가 아직 실험 단계에 있는 동안 처음부터 코어에 도달해서는 안 된다고 생각하기 때문에 제안은 압도적으로 긍정적인 지원을 받았습니다.

WordPress 개발자 Mark Root-Wiley는 "나는 이 접근 방식에 매우 찬성합니다. “저는 사용자 정의 테마를 만들고 몇 가지 간단한 플러그인을 가지고 있습니다. 두 경우 모두 실험 API를 통해서만 끄거나 조정하거나 확장할 수 있는 기능이 핵심에 포함될 때 실험적 API를 처리해야 하는 경우와 최신 상태를 유지하는 데 어려움을 겪는 경우가 많습니다."

WordPress 기고자 Dovid Levine은 제안에 대해 "코어에서 이러한 종류의 안정성으로 돌아가는 것은 개발자의 호의를 회복하는 데 큰 도움이 될 것입니다."라고 말했습니다.

제안에 대한 논평 마감일은 9월 7일이며 WordPress 6.1 베타 1이 예상되기 3주 전에 토론이 종료됩니다. 이를 통해 기여자는 다음 주요 릴리스에 앞서 실험적 API를 더 깊이 감사할 시간을 갖게 됩니다.