Sorry for the meta-question about Discourse (pun intended..), but I have to know, how are you able to release dozens of version updates every day with such confidence??
I mean, the code is deployed live in tons of places and the risk of breaking a site that can have multiple third party plugins/themes/components is real.
You must have an incredible continues integration process - can you share some tips on how you manage to test it so well?
AI-generated summary
In response to a meta-question about Discourse’s frequent version updates, Alon1 expresses curiosity about how the team maintains confidence despite the risk of breaking live sites with third-party plugins and themes. nat explains that new changes are first deployed internally and to meta.discourse.org, allowing the team and community to catch bugs early. They clarify that not all sites are updated immediately, striking a balance between safety and keeping sites current. Testing is automated via GitHub Actions: core tests run on every commit, and similar processes exist for supported plugins and themes. They encourage third-party plugin developers to write tests but note that such plugins aren’t supported on Discourse-hosted sites due to compatibility and security concerns. nat also invites users to explore their public repositories for insight into their testing infrastructure.
It helps that we deploy all new changes first in our internal community – the one we use for work every day, and also meta.discourse.org.
The Discourse team gets the newest and shiniest changes … and bugs. Then you folks on meta get the brunt of it too.
Contrary to popular belief, we don’t deploy all changes all the time to all sites; we do deploy sites on a regular basis. You are right that breaking a site is a risk. We have to strike a good balance between keeping sites safe and updated vs never updating them due to worry of breakages.
For tests, you can take a look at our repositories. We also have additional internal build+test processes
It is an ideal scenario for a third-party plugin to have tests as well, and also good to note that we do not support them on our hosting due to not being able to manage incompatibility and security.