Who's Online 플러그인이 Discourse 2.3.10과 작동하지 않음

음, 오늘 새 버전 알림을 받고 재구축을 진행했어요.

https://www.mcrides.co.nz/

아니, 그냥 흰 화면만 뜨네요?

Uncaught TypeError: Cannot read property ‘trigger’ of undefined
at t.init (_plugin-third-party-cb09db834c49b1fa6dc58b470cffc55ebb62fb2a157688165cb211f1343ce435.js:3872)
at h (_ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:38572)
at Function.e.create (_ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:39100)
at e.t.create (_ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:11490)
at _ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:11294
at h (_ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:11226)
at e.t.lookup (_ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:11070)
at Object.initialize (_plugin-third-party-cb09db834c49b1fa6dc58b470cffc55ebb62fb2a157688165cb211f1343ce435.js:3959)
at Object.n.initialize (_application-4bbf4bf6518f7480549c54813a7fe09233841e43c49675ffe7fbda7ac187d247.js:8532)
at _ember_jquery-0ae86c6a7527a99c2b9b8a11521273bd9cb4f7d41bc546df081b7ee94f26d9c3.js:45916

어떤 플러그인을 사용 중이신가요?

안전을 위해 다시 빌드합니다

hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone GitHub - discourse/docker_manager: Plugin for use with discourse docker image · GitHub
- git clone GitHub - discourse/discourse-whos-online: A plugin for Discourse which uses the messagebus to display a live list of active users · GitHub
- git clone GitHub - discourse/discourse-spoiler-alert: A plugin for discourse to hide spoilers behind the spoiler-alert jQuery plugin · GitHub
- git clone GitHub - discourse/discourse-cakeday: Show a birthday cake emoji beside the names of members on their join anniversary, or their actual birthday -- and a browsable directory of upcoming anniversaries / birthdays. · GitHub
- git clone GitHub - angusmcleod/angus-events-plugin: Allows you to manage events in Discourse · GitHub
- git clone GitHub - discourse/discourse-tooltips: Show tooltips around Discourse on hover, including topic previews · GitHub
- git clone https://github.com/communiteq/discourse-sitemap.git

제3자 플러그인 하나가 페이지를 깨뜨리는 것 같습니다. 재구축 중이어서 어느 플러그인인지 진단할 수 없습니다.

저도 그렇게 생각합니다.
재구축을 완료했습니다.

어떤 플러그인이 문제를 일으키고 있는지 진단하려면 어떻게 해야 할까요? (전부 비활성화하는 것 말고요)

제 추측으로는 이벤트나 현재 접속 중인 사용자일 것 같습니다.

음, 하나씩 비활성화하는 방식으로 시작해볼게요 :confused:

여기 있는 이 풀 리퀘스트로 인해 whos-online 플러그인 때문인 것으로 보입니다:

기본값으로 tests-passed를 사용하고 오래된 브랜치를 실행하면 플러그인 호환성이 낮아진다는 증거 99999번째입니다.

플러그인을 이전 커밋으로 고정하는 것을 고려해 보세요.

응, 접속자 목록이 깨졌네

Who’s Online은 안정 버전(stable branch)을 사용하는 사이트에서 깨져 있습니다. 이 플러그인은 안정 버전의 Discourse에는 아직 없는 코드를 기반으로 작동하므로, 해당 사이트에서는 정상적으로 동작하지 않습니다. Falco가 언급했듯이, tests-passed를 실행하면 문제가 없을 것입니다.

플러그인(또는 모든 플러그인)에 안정 버전(stable branch)이 있어야 하지 않나요?
문제가 생기는 걸 "안정적"이라고 부르는 건 좀 어리석은 것 같습니다 …

어제까지는 이전 버전에서 잘 작동하고 있었는데 … :confused:

stable1
/ˈsteɪb(ə)l/

형용사

  1. (물체나 구조물에 대해) 무너지거나 넘어질 가능성이 없는; 단단히 고정된.

안정 버전이 버그가 전혀 없음을 약속한 적은 없습니다. 안정 버전이란 자주 변경되지 않는다는 의미입니다. 4개월 이상 간격으로 릴리스가 이루어지며, 그 사이에는 작은 보안 및 치명적 버그 수정만 적용됩니다. 플러그인은 훨씬 더 자주 업데이트되며, 테스트를 통과한 버전(tests-passed)과 발을 맞춰 업데이트됩니다.

이전에 이 문제에 대해 논의한 바 있으며, 현재로선 공식적인 계획은 없습니다. Falco가 이미 제안했듯이, 사용자가 그랬던 것처럼 기본 추적 브랜치를 수정하기로 선택했다면, 커밋을 고정(pinning)하기 위해 플러그인 설치 방식도 수정해야 할 가능성이 높습니다.