diff --git a/.github/workflows/production-suite.yml b/.github/workflows/production-suite.yml index 905073bb2d..41ad33390e 100644 --- a/.github/workflows/production-suite.yml +++ b/.github/workflows/production-suite.yml @@ -154,6 +154,11 @@ jobs: os: bookworm extra-args: --test-custom-db + - docker_image: zulip/ci:trixie + name: Debian 13 production install + os: trixie + extra-args: "" + name: ${{ matrix.name }} container: image: ${{ matrix.docker_image }} diff --git a/.github/workflows/zulip-ci.yml b/.github/workflows/zulip-ci.yml index 38eb252a8c..6069825e33 100644 --- a/.github/workflows/zulip-ci.yml +++ b/.github/workflows/zulip-ci.yml @@ -28,7 +28,7 @@ jobs: fail-fast: false matrix: include: - # Base images are built using `tools/ci/Dockerfile.prod.template`. + # Base images are built using `tools/ci/Dockerfile`. # The comments at the top explain how to build and upload these images. # Ubuntu 22.04 ships with Python 3.10.12. - docker_image: zulip/ci:jammy @@ -48,6 +48,12 @@ jobs: os: noble include_documentation_tests: false include_frontend_tests: false + # Debian 13 ships with Python 3.13.5. + - docker_image: zulip/ci:trixie + name: Debian 13 (Python 3.13, backend) + os: trixie + include_documentation_tests: false + include_frontend_tests: false runs-on: ubuntu-latest name: ${{ matrix.name }} diff --git a/docs/development/setup-advanced.md b/docs/development/setup-advanced.md index a031161f3d..05107815c2 100644 --- a/docs/development/setup-advanced.md +++ b/docs/development/setup-advanced.md @@ -20,7 +20,7 @@ host by following these instructions. Currently supported platforms are: - Ubuntu 22.04, 24.04 -- Debian 12 +- Debian 12, 13 - CentOS 7 (beta) - Fedora 38 (beta) - RHEL 7 (beta) diff --git a/docs/development/setup-recommended.md b/docs/development/setup-recommended.md index 235700b8f2..51a140ee78 100644 --- a/docs/development/setup-recommended.md +++ b/docs/development/setup-recommended.md @@ -60,8 +60,8 @@ the internet.) :::{tab-item} Ubuntu/Debian :sync: os-ubuntu -- Ubuntu 22.04, or 24.04 -- Debian 12 +- Ubuntu 22.04 or 24.04 +- Debian 12 or 13 ::: :::{tab-item} Fedora diff --git a/docs/production/requirements.md b/docs/production/requirements.md index 3467598ada..335f1ea450 100644 --- a/docs/production/requirements.md +++ b/docs/production/requirements.md @@ -7,6 +7,7 @@ To run a Zulip server, you will need: - Ubuntu 22.04 - Ubuntu 24.04 - Debian 12 + - Debian 13 - A supported CPU architecture: - x86-64 - aarch64 @@ -37,7 +38,7 @@ on issues you'll encounter](install-existing-server.md). #### Operating system -Ubuntu 22.04, Ubuntu 24.04, and Debian 12 +Ubuntu 22.04, Ubuntu 24.04, Debian 12, and Debian 13 are supported for running Zulip in production. You can also run Zulip on other platforms that support Docker using [docker-zulip][docker-zulip-homepage]. diff --git a/scripts/lib/install b/scripts/lib/install index a6badd4756..72878a13dd 100755 --- a/scripts/lib/install +++ b/scripts/lib/install @@ -361,6 +361,7 @@ Unsupported OS release: $os_id $os_version_id Zulip in production is supported only on: - Debian 12 + - Debian 13 - Ubuntu 22.04 LTS - Ubuntu 24.04 LTS EOF diff --git a/scripts/lib/supported-os b/scripts/lib/supported-os index 8582400f62..6d6802591d 100755 --- a/scripts/lib/supported-os +++ b/scripts/lib/supported-os @@ -16,7 +16,7 @@ if [ -f /etc/os-release ]; then fi case "$os_id $os_version_id" in - 'debian 12' | 'ubuntu 22.04' | 'ubuntu 24.04') + 'debian 12' | 'debian 13' | 'ubuntu 22.04' | 'ubuntu 24.04') exit 0 ;; *) diff --git a/scripts/setup/apt-repos/zulip/trixie.list b/scripts/setup/apt-repos/zulip/trixie.list new file mode 100644 index 0000000000..882a15f230 --- /dev/null +++ b/scripts/setup/apt-repos/zulip/trixie.list @@ -0,0 +1,2 @@ +deb [signed-by=/etc/apt/keyrings/pgdg.asc] http://apt.postgresql.org/pub/repos/apt/ trixie-pgdg main +deb-src [signed-by=/etc/apt/keyrings/pgdg.asc] http://apt.postgresql.org/pub/repos/apt/ trixie-pgdg main diff --git a/tools/ci/build-docker-images b/tools/ci/build-docker-images index 6c25e01e8d..3ad2f12e97 100755 --- a/tools/ci/build-docker-images +++ b/tools/ci/build-docker-images @@ -4,3 +4,4 @@ cd "$(dirname "${BASH_SOURCE[0]}")" docker build . --build-arg=BASE_IMAGE=ubuntu:22.04 --pull --tag=zulip/ci:jammy docker build . --build-arg=BASE_IMAGE=ubuntu:24.04 --pull --tag=zulip/ci:noble docker build . --build-arg=BASE_IMAGE=debian:12 --pull --tag=zulip/ci:bookworm +docker build . --build-arg=BASE_IMAGE=debian:13 --pull --tag=zulip/ci:trixie diff --git a/tools/lib/provision.py b/tools/lib/provision.py index 04de87d087..72eeca4f09 100755 --- a/tools/lib/provision.py +++ b/tools/lib/provision.py @@ -77,6 +77,8 @@ vendor = distro_info["ID"] os_version = distro_info["VERSION_ID"] if vendor == "debian" and os_version == "12": # bookworm POSTGRESQL_VERSION = "15" +elif vendor == "debian" and os_version == "13": # trixie + POSTGRESQL_VERSION = "17" elif vendor == "ubuntu" and os_version == "22.04": # jammy POSTGRESQL_VERSION = "14" elif vendor == "ubuntu" and os_version == "24.04": # noble @@ -150,7 +152,7 @@ COMMON_YUM_DEPENDENCIES = [ BUILD_GROONGA_FROM_SOURCE = False BUILD_PGROONGA_FROM_SOURCE = False -if (vendor == "debian" and os_version in []) or (vendor == "ubuntu" and os_version in []): +if (vendor == "debian" and os_version in ["13"]) or (vendor == "ubuntu" and os_version in []): # For platforms without a PGroonga release, we need to build it # from source. BUILD_PGROONGA_FROM_SOURCE = True