플러그인이 만든 카테고리 설정을 저장할 수 없음

Custom Wizard Plugin :mage:에서 이어서 논의합니다:

저도 동일한 문제를 겪고 있으며, Locations와 Private Topics 같은 다른 플러그인에서도 발생하고 있습니다. ‘저장되지 않은 변경 사항이 있습니다’라는 메시지와 함께 저장 옵션이 표시되지 않습니다. 다른 설정을 변경해도 설정이 저장되지 않습니다.

공식 플러그인은 이 영향을 받지 않는 것 같으므로 #dev에 게시해야 할 수도 있지만, 반대로 이 문제는 Discourse 업데이트로 인해 발생했습니다. 이 문제는 두 개의 공식 플러그인(캘린더와 제한된 답글)에도 영향을 미칩니다.

5개의 좋아요

네, 이는 enable_simplified_category_creation이 활성화되었을 때 formkit과 관련된 구체적인 문제입니다. 플러그인들은 formkit과 새로운 데이터 구조를 사용하도록 마이그레이션해야 합니다.

핵심 플러그인 중 하나에 이 기능의 작동하는 예시가 있으며, 다음과 같이 마이그레이션되었습니다:

{{#if this.siteSettings.enable_simplified_category_creation}}를 사용하여 폼 구조가 어떻게 분기되는지, 그리고 formkit과 @outletArgs.form의 데이터를 사용하여 폼이 어떻게 구조화되는지 확인할 수 있습니다. 레거시 지원을 위해 {{else}} 이후에도 기존 폼 구조가 남아 있습니다.

2개의 좋아요

그 설명에 감사드립니다, Kris.

핵심 변경 사항으로 인해 플러그인을 업데이트해야 할 때 보통 저는 꽤 여유로운 편이고, 개발자들이 어떻게 안내를 받는지에도 만족하고 있습니다. 하지만 이번에는 Discourse 팀이 정말로 일을 제대로 처리하지 못했다고 생각합니다.

  • 공지 사항이 없었습니다 (적어도 저는 찾을 수 없으며, @moin 도 아직 제게 알려주지 않았습니다 ;))
  • 코어에 어떤 범용 코드를 추가하여 이를 완화하려는 시도가 없었습니다
  • 브라우저 개발 콘솔에서도 경고가 뜨지 않습니다

그저 갑자기 모든 기능이 작동하지 않게 되었습니다.

간단히 살펴본 결과(아마도 완전히 파악하지 못했을 수 있지만), 적어도 다음과 같은 플러그인들이 깨진 것으로 보입니다:

  • Discourse
    • calendar :white_check_mark: ← 공식 Discourse 플러그인
    • restricted replies :white_check_mark: ← 공식 Discourse 플러그인
  • (members of) Pavilion
    • category lockdown
    • custom wizard
    • locations
    • chatbot
  • Communiteq
    • private replies
    • private topics
    • category restrictor
    • always anonymous
    • 최소 10개의 비공개 플러그인
6개의 좋아요

맞습니다! 예정된 변경 사항 기능을 통해 진행 중인 동안 이 변경 사항에 대해 경고했어야 했습니다. 이는 저희에게 새로운 프로세스이며, 이를 정리하겠습니다. 당분간 /admin/config/upcoming-changes에서 enabled_simplified_category_creation을 비활성화하면 기존 플러그인 기능을 모두 복원할 수 있습니다.

4개의 좋아요

저희는 Simplified category setup 과 관리자 UI의 예정된 변경 사항(그리고 아마도 ‘새로운 기능’ 항목도)을 모두 가지고 있었습니다:

해당 변경 사항이 사용자의 사이트에 표시되었을 때와 자동으로 활성화되었을 때(이 경우 변경 사항이 Stable 상태로 이동한 이번 주일 가능성이 높습니다) 모두 알림을 받으셨어야 합니다.

Kris가 말했듯이, 완화 조치는 코어의 예정된 변경 사항으로, 이를 통해 이전 작업을 위한 시간을 확보할 수 있습니다:

이 경우 여러분에게 더 도움이 될 수 있는 것이 무엇이었을까요? 개발자가 준비를 위해 무엇을 해야 하는지에 대한 세부 정보를 포함하여, 연결된 예정된 변경 사항 주제에 추가적인 세부 정보를 추가할 수 있습니다.

개발자 경고와 관련하여, 다음에 더 나은 방법을 찾아볼 수 있는지 #dev-xp 팀과 상담해 보겠습니다.


오늘 이 문제를 수정할 것입니다. DEV: Move enable_simplified_category_creation to stable - Pull Request #39212 - discourse/discourse - GitHub 를 수행했을 때 이 플러그인 중 아무것도 실패하지 않았으므로, 여기에서 충분한 테스트 커버리지가 없었던 것 같습니다. 그러나 다른 플러그인들은 실패했습니다:

2개의 좋아요

@awesomerobot 님이 추가된 스펙 커버리지를 포함하여 두 가지 모두 병합되었습니다:

4개의 좋아요

네, 2월 3일에 받았습니다.

하지만 그 시점에는 플로팅 저장 버튼이 포함된 변경 사항은 아직 구현되지 않았습니다(2월 말이었을 것 같습니다). 해당 주제나 다른 곳에서 이러한 변경 사항을 반영하는 추가 업데이트도 없었습니다.

다음 중 하나였습니다:

  • 플러그인 개발자를 대상으로 한 시기적절한 기술 공지
  • 이전과 동일한 로직으로의 일시적 자동 폴백(예: 이전 버전의 플러그인 코드가 감지되면 자동으로 이전 로직으로 전환되도록 했던 토픽 목록과 유사하게)
  • 레거시 기능이 작동하도록 유지하는 일시적 폴백 코드(폼 외부의 입력을 감지하여 저장해야 하는 설정에 포함시키는 방식). 이렇게 했다면 {{#if this.siteSettings.enable_simplified_category_creation}} 분기들을 모두 작성하는 수고도 절약할 수 있었을 것입니다.
  • 레거시 코드가 감지될 때 브라우저 개발 콘솔에 경고 표시
  • 제가 어제 수행했던 것과 같은 알려진 플러그인에 대한 정적 스캔(10분밖에 걸리지 않았고, 놓쳤던 공식 플러그인 몇 개도 발견했습니다 :wink: )

그렇게 해 주시면 감사하겠습니다!

5개의 좋아요