저는 더 이상 어떤 Discourse 플러그인 작업도 하지 않을 것입니다. 정말로 그럴 가치가 없기 때문입니다.
다른 사람들이 제 플러그인 중 두 개를 사용하고 있는데, 다른 사람에게 문제를 일으키지 않고 삭제하는 절차가 무엇인가요?
몇 달에 한 번씩, 대개는 전혀 이해할 수 없는 이유로 플러그인이 깨지는 것을 견디다 못했습니다. 그리고 포럼이 정상적으로 작동하도록 유지하는 데만 얼마나 많은 시간과 노력이 드는지 모릅니다.
저는 "최신 트렌드를 따라가는 것"을 원하지 않습니다. 그저 작동하고 안정적인 웹 포럼을 원할 뿐입니다.
보안 업데이트가 필요하기 때문에 "업데이트하지 않는 것"도 선택지가 아닙니다. 제가 마지막으로 불만을 제기했을 때 누군가 그걸 제안한 건 정말 터무니없는 일이었습니다.
Discourse 팀은 호환성에 더 신경 쓰고 기존 포럼이나 코드를 깨뜨리지 않도록 해야 합니다. 그들은 이에 대해 전혀 생각하지 않는 것 같습니다. 자기들 쪽에서 조금 더 깔끔하게 정리하기 위해 호환성을 깨뜨리는 변경사항을 도입합니다. 다른 사람들이 사용하는 플랫폼과 API를 그렇게 관리하는 것은 아닙니다. 저는 더 이상 이 일에 관여하고 싶지 않습니다.
이 방향으로 진행하시길 원하신다면, README와 메타(Meta) 토픽에 주석을 달고 broken 태그를 붙인 뒤 GitHub 저장소를 아카이빙하는 것을 권장합니다. 이렇게 하면(라이선스가 충분히 허용적인 경우를 전제로) 다른 사람들이 포크를 할 수 있도록 계속 유지됩니다.
우리는 호환성과 시스템의 정상 작동에 대해 절대적으로 신경 쓰고 있습니다. 그래서 완전 자동화된 업그레이드 경로를 갖춘 긴 비추천(deprecation) 기간을 두고 있는 것입니다.
우리는 항상 커스터마이징의 유연성과 안정성 사이의 균형을 맞추려고 노력하고 있습니다. Discourse 테마와 플러그인이 강력한 이유는 브라우저/프레임워크의 기본 API에 직접 접근할 수 있기 때문입니다. 이러한 막대한 힘에는 기본 변경 사항에 발맞춰 최신 상태를 유지해야 하는 일정한 책임이 따릅니다.
그렇습니다 - 최신 상태를 유지하는 것은 중요합니다. 지난 몇 달간 우리는 릴리스 파이프라인에 대대적으로 투자하여 ESR(이전에는 'stable’로 불렸던) 사용자의 환경을 훨씬 더 좋게 만들었습니다. 자세한 내용은 여기에서 확인하실 수 있습니다. 여전히 업데이트가 필요하지만, 타이밍과 시급성에 훨씬 더 많은 유연성이 부여되었습니다.
이 특정 비추천(deprecation)에 대한 해결책은 완전히 자동화되어 있습니다. 플러그인 이름을 알려주시면, 대신 코드모드(codemod)를 실행하고 PR을 만들어 드리겠습니다. 우리가 유지 관리하는 600개 이상의 테마/플러그인에 대해 이미 이 작업을 수행했기 때문에, 이제는 매우 잘 오일링된 기계처럼 잘 돌아가고 있습니다.
그런데 왜 호환성을 해치면서까지, 여러분 쪽의 사소한 잔재들을 정리한다는 명목으로 계속 변경 사항을 적용하는 건가요?
그 레거시 잔재는 플랫폼이나 API를 유지보수하는 데 따르는 비용의 일부입니다. 실제로는 문제를 일으키지 않습니다. 하지만 여러분은 그것을 고집스럽게 변경하거나 제거해서, 다른 사람들이 추가로 일하고 테스트해야 하는 상황을 만들고 있습니다.
ESR은 고작 9개월밖에 지속되지 않습니다. 이는 장기 지원이라고 보기 어렵습니다.
그리고 그걸 사용하게 되면, 문제의 원인을 파악하기 위해 훨씬 더 많은 커밋 목록을 검색해야 하는 상황에서, 모든 깨지는 변경사항(breaking changes)을 한꺼번에 처리해야 합니다.
현재의 ESR은 이 문제를 더 악화시킬 뿐, 개선시키지 않습니다.
유일한 해결책은 API를 실제로 신경 쓰고 유지보수하는 것입니다. 깨지는 변경사항은 최후의 수단으로만 사용해야 하며, ‘있으면 좋겠다’는 수준의 사소한 정리 목적으로는 사용해선 안 됩니다. 또한 여러분이 다른 프레임워크를 사용하고 싶다는 이유, 혹은 그 어떤 이유든, 사람들이 사용 중인 프레임워크 전체를 폐기해서는 안 됩니다.