인기 플러그인을 Discourse 코어에 번들링

앞으로 몇 주 동안, 인기 있는 Discourse 플러그인 중 일부를 코어 저장소로 이동할 예정입니다. 이는 Discourse가 기본적으로 더 많은 플러그인을 포함하게 되며, 모든 플러그인의 테스트 및 최신 상태를 유지하는 것이 더 쉬워진다는 것을 의미합니다.

이 모든 플러그인은 기본적으로 비활성화 상태로 유지되므로, 기존 커뮤니티에는 눈에 띄는 영향을 미치지 않습니다. discourse.org와 같은 관리형 호스팅 서비스를 사용 중이라면 아무 조치도 필요하지 않습니다.

자체 호스팅 커뮤니티

Discourse를 자체 호스팅 중이고 이미 이 플러그인 중 하나를 사용 중이라면, 다음 재빌드 전에 app.yml 파일에서 관련 줄을 제거하도록 안내받게 됩니다.

개발 환경

이미 로컬에 플러그인 중 하나가 설치되어 있고 최신 버전의 Discourse 코어를 가져온 경우, 다음 두 가지 중 하나가 발생합니다.

  1. 플러그인에 심볼릭 링크를 사용하는 경우, git pull 실행 중 오류가 발생합니다. 문제를 해결하려면 심볼릭 링크를 삭제한 후 git pull을 다시 실행하십시오.

  2. 플러그인을 직접 클론한 경우, 코어의 git pull은 성공하지만 중첩된 git 저장소로 인해 예상치 못한 'unstaged changes’가 발생할 수 있습니다. 가장 좋은 진행 방법은 영향을 받은 디렉토리를 삭제한 후 main에서 restore하는 것입니다. 예를 들어:

    rm -rf plugins/discourse-reactions
    git restore plugins/discourse-reactions
    

대상 플러그인

69개의 좋아요
How plugins moving to core is communicated
Core plugins added to my updated site today
What happens next?
Bootstrap failed with exit code 128
Discourse Patreon
Discourse User Notes
Discourse Post Voting
最新版更新出错
Discourse AI
Discourse Templates
Discourse Affiliate
Discourse Topic Voting
Discourse Gamification
Self-Hosting Discourse Just Got a Whole Lot Easier
Unboxing Discourse 3.5
Discourse Birthdays & Anniversaries Today (Banner)
Sudden Sidekiq trend change & anomaly
Discourse Assign
What happens next?
How plugins moving to core is communicated
How plugins moving to core is communicated
How plugins moving to core is communicated
Discourse Captcha
Discourse Data Explorer
Discourse Login with Amazon
Discourse Graphviz
Discourse Learning Management System Integration (LTI 1.3 Authentication)
Microsoft Authentication
Discourse OAuth2 Basic
Discourse OpenID Connect (OIDC)
Discourse Reactions
RSS Polling
Discourse Subscriptions Plugin
Discourse Zendesk
Discourse Apple Authentication
Discourse Chatbot :robot:
Discourse AI Topic Summary :robot:
‘Preinstalled’ plugin label on hosted sites
Discourse Solved
Discourse Advertising Plugin (Ads)
Discourse GitHub
Discourse Policy
Discourse Docker Manager
3.5.0.beta8: Bundled plugins, a new theme, better color management, powerful filtering, and advanced image controls
Discourse Solved
Discourse Assign
Discourse Graphviz
Install plugins on a self-hosted site
How do I remove the Anniversaries option from the burger menu?
Add-on suggestions for humor focused community
[Admin Notice] One of your themes or plugins contains code which needs updating. (id:discourse.user.userOptions)
Discourse Chat Integrations
Discourse Events
Suggested improvements to plugin page now that more plugins are bundled
Error 500 when moving posts
Math and AI workarounds

Thanks for providing the full HINT line in the first post here, this helped me diagnose a failed rebuild this morning :blush:

17개의 좋아요

Thanks. With my poor knowledge of development and programming, I would still like to ask you a question. Can these plugins, which are originally components intended to be added to a basic installation may one day lose their plug-in character and become a complete part of a basic installation, without being called plug-ins at all?

3개의 좋아요

They might do, yes. In particular, the authentication plugins (e.g. apple-auth) are quite likely to be absorbed into core eventually, just like our other builtin authentication methods (e.g. Google, Facebook, etc.).

3개의 좋아요

Interesting move that gears up discourse by default even more and facilitates new installs.

One question regarding :

you’ll be prompted to remove the relevant line from your app.yml file before your next rebuild.

Will there also be a prompt or a warning message before/when you click on the upgrade button from the admin upgrade page?

3개의 좋아요

If I recall correctly from my experience, you will only be able to update docker at first. Once you’ve updated docker, you will be shown a message in the update UI explaining that you have to update via the command line, and how to do it.

Then when you update on the ocmmand line you’ll see the HINT for each plugin you need to remove from app.yml as explained in the first post above.

4개의 좋아요

This is a good update but was this really necessary? Giving a rebuild failure seems a little bit harsh to me.. a UI warning or automated update (or just ignoring them entirely) would have been nicer than putting a gun to my head and saying “remove these now”

6개의 좋아요

This caught me out last week when I tried to update via cmd line and it failed (reactions plugin).

It caught me out again when my cmd line update failed again this morning (data explorer plugin).

I would very much welcome a warning on the cmd line before the update process starts, and then inevitably fails.

Twice in two weeks now my updates have failed and this has meant my Discourse is offline for the duration of time it takes me to debug the issue, edit configs, try again, etc - all while in a mild state of panic because everything is broken.

8개의 좋아요

There’s another problem.

Gem dependencies.

It’s not just a case of deleting redundant core plugin clones.

We also have the issue of gem version clashes as it significantly increases the amount of dependencies.

I’m just going through a process of downgrading a specific dependency in a couple of my own plugins because a core plugin is well behind.

So this move introduces some unnecessary extra dependencies imho and makes rebuilding more fragile.

In my particular case you are using multipart-post-2.2.3 where my plugins were already on multipart-post-2.4.0

That was two failed rebuilds and far more downtime than comfortable.

3개의 좋아요

2 posts were split to a new topic: Suggested improvements to plugin page, now that more plugins are bundled with core,

A move we will follow up on shortly is getting rid of gem lines in core plugins and moving to the monolith gem file

3개의 좋아요

I’m curious, did you get this list of plugins from Discourse installations in the wild? It matches almost 50% of my own main install!

2개의 좋아요

I’m wondering, would having all these plugins bundled in core bloat forums? As in, there’ll probably be a few plugins that admins don’t want on their forum (e.g. Discourse AI), but have no choice but to have it added. It can be disabled, of course, but I’m wondering if the added files and stuff will slow down forums?

2개의 좋아요

On the client side, Discourse does not serve any javascript assets for disabled plugins, so there won’t be any impact there.

On the server side, for properly implemented plugins (which all of these are), customizations from plugins are bypassed when they’re disabled. So yes technically there might be a slight overhead to check for enabled/disabled state, but it should be miniscule.

The plugins we’re merging here are the ones which we run on every single instance of Discourse on our discourse.org hosting. So they’re all very well-tested at scale.

16개의 좋아요

Got it. Thanks for clarifying!

2개의 좋아요

Is there a reason why you are doing all this at once shortly before the release? For translators who do this in their spare time, 3,000 additional strings within two weeks is a lot. And even in languages where the plugins were previously translated, all 3,000 texts have to be proofread again. Every now and then, 300 would probably be more manageable than 1,500 each week.

6개의 좋아요

For self-hosted communities already running one or more of these plugins, will the plugins lose config data when removed from app.yml and folded into core?

I’ve got the AI plugin set up exactly how I want it; if I need to reconfigure it (or at least write down the config options so I can re-add them), it’d be nice to know now. :+1:

7개의 좋아요

We’ve been trying to make this as smooth as possible for translators by making use of the translation memory in crowdin, so that translations don’t have to be re-made from scratch. But still, I agree, there are a lot to proofread.

I wonder if there’s more we can automate here, e.g. maybe we can “auto approve” any strings from these plugins, instead of requiring a proofread :eyes:

All config/data will be maintained

11개의 좋아요

A message in the UI prompting a rebuild that is destined to fail felt really inelegant.

Was there no way to at least flag this topic for sites running a minimum docker manager version?

2개의 좋아요

This meta topic isn’t really what you would want to see though.

The difficulty lies with knowing which plugins you should remove from your app.yml and which plugins you should not remove.