From 818742c62b3876620c5b6bce9d507c3b55f21bea Mon Sep 17 00:00:00 2001 From: Anders Kaseorg Date: Mon, 7 Apr 2025 13:37:53 -0700 Subject: [PATCH] install: Support PostgreSQL 17. Signed-off-by: Anders Kaseorg --- docs/overview/changelog.md | 21 ++++++++++++++------ docs/production/deployment.md | 2 +- docs/production/postgresql-support-table.md | 1 + docs/production/postgresql.md | 4 ++-- puppet/zulip/manifests/profile/postgresql.pp | 2 +- scripts/lib/install | 4 ++-- scripts/setup/upgrade-postgresql | 2 +- 7 files changed, 23 insertions(+), 13 deletions(-) diff --git a/docs/overview/changelog.md b/docs/overview/changelog.md index bf7421a9ab..7c4384a584 100644 --- a/docs/overview/changelog.md +++ b/docs/overview/changelog.md @@ -13,6 +13,12 @@ log][commit-log] for an up-to-date list of all changes. _Unreleased_ +- Added support for using PostgreSQL 17 as the database. See the + [PostgreSQL upgrade + documentation](../production/upgrade.md#upgrading-postgresql) if + you’re interested in upgrading an existing server to newer + PostgreSQL. + #### Upgrade notes for 11.0 - None yet. @@ -918,8 +924,10 @@ _Released 2024-01-24_ authentication could cause other queue workers to not progress properly on low-memory Zulip servers. - Added support for using PostgreSQL 16 as the database. See the - PostgreSQL upgrade documentation if you’re interested in upgrading - an existing server to newer Postgres. + [PostgreSQL upgrade + documentation](../production/upgrade.md#upgrading-postgresql) if + you’re interested in upgrading an existing server to newer + PostgreSQL. - Added support for explicitly deactivating a mobile push notifications registration. - Added support for a new class of custom authentication hook. @@ -1363,7 +1371,7 @@ _Released 2023-05-31_ - Added additional confirmation dialogs for actions deserving caution, including marking all messages as read, removing the last user from a private stream, and disabling all notifications for direct messages. -- Added support for Postgres 15, and removed support for Postgres 11. +- Added support for PostgreSQL 15, and removed support for PostgreSQL 11. - Added new `z` keyboard shortcut to view a message in context. - Added new `=` keyboard shortcut to upvote an existing emoji reaction. - Changed the `s` keyboard shortcut to be a toggle, replacing the @@ -1770,8 +1778,8 @@ _Released 2022-11-17_ #### Upgrade notes for 6.0 - Installations using [docker-zulip][docker-zulip] will need to [upgrade - Postgres][docker-zulip-upgrade-database] before upgrading to Zulip - 6.0, because the previous default of Postgres 10 is no longer + PostgreSQL][docker-zulip-upgrade-database] before upgrading to Zulip + 6.0, because the previous default of PostgreSQL 10 is no longer supported by this release. - Installations using the AzureAD authentication backend will need to update `/etc/zulip/zulip-secrets.conf` after upgrading. The @@ -2081,7 +2089,8 @@ _Released 2022-03-29_ - Improved various interaction and performance details in "Recent topics". - Improved styling for poll and todo list widgets. - Zulip now supports configuring the database name and username when - using a remote Postgres server. Previously, these were hardcoded to "zulip". + using a remote PostgreSQL server. Previously, these were hardcoded + to "zulip". - Migrated many tooltips to prettier tooltips powered by TippyJS. - Autocomplete is now available when editing topics. - Typeahead for choosing a topic now consistently fetches the full set diff --git a/docs/production/deployment.md b/docs/production/deployment.md index 608a67d375..ae3b8c024f 100644 --- a/docs/production/deployment.md +++ b/docs/production/deployment.md @@ -74,7 +74,7 @@ as well as those mentioned in the [install](install.md#installer-options) documentation: - `--postgresql-version`: Sets the version of PostgreSQL that will be - installed. We currently support PostgreSQL 13, 14, 15, and 16, with 16 + installed. We currently support PostgreSQL 13, 14, 15, 16, and 17, with 17 being the default. - `--postgresql-database-name=exampledbname`: With this option, you diff --git a/docs/production/postgresql-support-table.md b/docs/production/postgresql-support-table.md index e8639dc2b4..a1cb63467e 100644 --- a/docs/production/postgresql-support-table.md +++ b/docs/production/postgresql-support-table.md @@ -8,3 +8,4 @@ | 8.x | 12, 13, 14, 15, 16 | | 9.x | 12, 13, 14, 15, 16 | | 10.x | 13, 14, 15, 16 | +| 11.x | 13, 14, 15, 16, 17 | diff --git a/docs/production/postgresql.md b/docs/production/postgresql.md index 9ea3ed2d65..7ee7bddf8f 100644 --- a/docs/production/postgresql.md +++ b/docs/production/postgresql.md @@ -84,7 +84,7 @@ Set the remote server's PostgreSQL version in `/etc/zulip/zulip.conf`: ```ini [postgresql] # Set this to match the version running on your remote PostgreSQL server -version = 16 +version = 17 ``` Now complete the installation by running the following commands. @@ -154,7 +154,7 @@ Set the remote server's PostgreSQL version in `/etc/zulip/zulip.conf`: ```ini [postgresql] # Set this to match the version running on your remote PostgreSQL server -version = 16 +version = 17 ``` Now complete the installation by running the following commands. diff --git a/puppet/zulip/manifests/profile/postgresql.pp b/puppet/zulip/manifests/profile/postgresql.pp index 40d223a924..bafe1ef5f3 100644 --- a/puppet/zulip/manifests/profile/postgresql.pp +++ b/puppet/zulip/manifests/profile/postgresql.pp @@ -40,7 +40,7 @@ class zulip::profile::postgresql { mode => '0644', content => template("zulip/postgresql/${version}/postgresql.conf.template.erb"), } - } elsif $version in ['15', '16'] { + } elsif $version in ['15', '16', '17'] { $postgresql_conf_file = "${zulip::postgresql_base::postgresql_confdir}/conf.d/zulip.conf" file { $postgresql_conf_file: ensure => file, diff --git a/scripts/lib/install b/scripts/lib/install index 160739245d..91b0ee40f7 100755 --- a/scripts/lib/install +++ b/scripts/lib/install @@ -30,7 +30,7 @@ Options: Sets the PostgreSQL database name. --postgresql-database-user=zulip Sets the PostgreSQL database user. - --postgresql-version=16 + --postgresql-version=17 Sets the version of PostgreSQL that will be installed. --postgresql-missing-dictionaries Set postgresql.missing_dictionaries, which alters the initial database. Use with @@ -205,7 +205,7 @@ read -r -a ADDITIONAL_PACKAGES <<<"${ADDITIONAL_PACKAGES:-}" # zulip::profile::docker for Docker. Use # e.g. zulip::profile::app_frontend for a Zulip frontend server. PUPPET_CLASSES="${PUPPET_CLASSES:-zulip::profile::standalone}" -POSTGRESQL_VERSION="${POSTGRESQL_VERSION:-16}" +POSTGRESQL_VERSION="${POSTGRESQL_VERSION:-17}" if [ -n "$SELF_SIGNED_CERT" ] && [ -n "$USE_CERTBOT" ]; then set +x diff --git a/scripts/setup/upgrade-postgresql b/scripts/setup/upgrade-postgresql index e2d2c35949..c0c1766614 100755 --- a/scripts/setup/upgrade-postgresql +++ b/scripts/setup/upgrade-postgresql @@ -12,7 +12,7 @@ export LC_ALL=C.UTF-8 export LANG=C.UTF-8 export LANGUAGE=C.UTF-8 -LATEST_SUPPORTED_VERSION=16 +LATEST_SUPPORTED_VERSION=17 UPGRADE_TO=${1:-$LATEST_SUPPORTED_VERSION} UPGRADE_FROM=$(crudini --get /etc/zulip/zulip.conf postgresql version) ZULIP_PATH="$(dirname "$0")/../.."