Home Explore Blog Models CI



nixpkgs

1st chunk of `pkgs/servers/web-apps/discourse/how_to_update.md`
9ec346903bfc6a9d6d647952a5f3f8e37706e621086b1065000000010000048c
To update discourse, do the following:

1. Switch to and work from the `master` branch and the directory this
   file is in.
2. Run `./update.py print-diffs` and update the nginx settings and
   backend settings accordingly. If you don't know how to, ask for
   help - do not skip this step!
3. Run `./update.py update`.
4. Run `nix build -L -f ../../../../ discourse.tests` to make sure the
   update works. Also test manually, if possible.
5. If the update works, commit it. If not, apply necessary fixes and
   commit. No manual fixes that would be overwritten by the
   `./update.py` script should be committed - the script should be
   fixed instead.
6. Run `./update.py update-mail-receiver`. If there's an update, do
   step 4 and 5 again.
7. Run `./update.py update-plugins`.
8. Run `nix build -L -f ../../../../ discourseAllPlugins.tests` to
   make sure the plugins build and discourse starts with them. Also
   test manually, if possible.
9. If the update works, commit it. If not, apply necessary fixes and
   commit. No manual fixes that would be overwritten by the
   `./update.py` script should be committed - the script should be
   fixed instead.

Title: Discourse Update Procedure
Summary
This document outlines the step-by-step process for updating 'discourse.' The procedure involves switching to the `master` branch, running `./update.py` scripts to print diffs, update the core, update the mail receiver, and update plugins. Crucially, it emphasizes updating nginx and backend settings, building and testing updates (using `nix build` and manual checks) for both the main discourse and its plugins, and committing changes only after successful verification. Any necessary fixes should be applied to the update script itself rather than committing manual changes that would be overwritten.