Remove support for Ubuntu 20.04 and Debian 11.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
This commit is contained in:
Anders Kaseorg
2024-03-25 14:31:39 -07:00
parent ce075fec6c
commit 70914b0475
30 changed files with 49 additions and 204 deletions

View File

@@ -135,11 +135,6 @@ jobs:
include:
# Docker images are built from 'tools/ci/Dockerfile'; the comments at
# the top explain how to build and upload these images.
- docker_image: zulip/ci:focal
name: Ubuntu 20.04 production install
os: focal
extra-args: ""
- docker_image: zulip/ci:jammy
name: Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga
os: jammy
@@ -150,11 +145,6 @@ jobs:
os: noble
extra-args: ""
- docker_image: zulip/ci:bullseye
name: Debian 11 production install
os: bullseye
extra-args: ""
- docker_image: zulip/ci:bookworm
name: Debian 12 production install with custom db name and user
os: bookworm
@@ -247,15 +237,6 @@ jobs:
include:
# Docker images are built from 'tools/ci/Dockerfile.prod'; the comments at
# the top explain how to build and upload these images.
- docker_image: zulip/ci:focal-3.2
name: 3.2 Version Upgrade
os: focal
- docker_image: zulip/ci:bullseye-4.2
name: 4.2 Version Upgrade
os: bullseye
- docker_image: zulip/ci:bullseye-5.0
name: 5.0 Version Upgrade
os: bullseye
- docker_image: zulip/ci:jammy-6.0
name: 6.0 Version Upgrade
os: jammy

View File

@@ -30,18 +30,6 @@ jobs:
include:
# Base images are built using `tools/ci/Dockerfile.prod.template`.
# The comments at the top explain how to build and upload these images.
# Ubuntu 20.04 ships with Python 3.8.10.
- docker_image: zulip/ci:focal
name: Ubuntu 20.04 (Python 3.8, backend)
os: focal
include_documentation_tests: false
include_frontend_tests: false
# Debian 11 ships with Python 3.9.2.
- docker_image: zulip/ci:bullseye
name: Debian 11 (Python 3.9, backend)
os: bullseye
include_documentation_tests: false
include_frontend_tests: false
# Ubuntu 22.04 ships with Python 3.10.12.
- docker_image: zulip/ci:jammy
name: Ubuntu 22.04 (Python 3.10, backend + frontend)
@@ -227,7 +215,7 @@ jobs:
fi
- name: Test locked requirements
if: ${{ matrix.os == 'focal' }}
if: ${{ matrix.os == 'jammy' }}
run: |
. /srv/zulip-py3-venv/bin/activate && \
./tools/test-locked-requirements

View File

@@ -19,8 +19,8 @@ One can install the Zulip development environment directly on a Linux
host by following these instructions. Currently supported platforms
are:
- Ubuntu 20.04, 22.04, 24.04
- Debian 11, 12
- Ubuntu 22.04, 24.04
- Debian 12
- CentOS 7 (beta)
- Fedora 38 (beta)
- RHEL 7 (beta)

View File

@@ -71,8 +71,8 @@ the internet.)
:::{tab-item} Ubuntu/Debian
:sync: os-ubuntu
- Ubuntu 20.04, 22.04, or 24.04
- Debian 11 or 12
- Ubuntu 22.04, or 24.04
- Debian 12
:::
:::{tab-item} Fedora

View File

@@ -62,16 +62,16 @@ branch, or a significant time has passed since you last used it.
### Test an install
The `test-install` tooling takes a distribution release name
(e.g. "focal"), the path to an unpacked release directory
(e.g. "jammy"), the path to an unpacked release directory
or tarball, and then any of the normal options you want to pass down
into the installer.
For example, to test an install onto Ubuntu 20.04 "Focal", we might
For example, to test an install onto Ubuntu 22.04 "Jammy", we might
call:
```bash
sudo ./tools/test-install/install \
-r focal \
-r jammy \
./zulip-test-installer/ \
--hostname=zulip.example.net \
--email=username@example.net
@@ -97,7 +97,7 @@ After using `lxc-ls` to list containers, you can choose one of them
and connect to its terminal:
```bash
sudo lxc-attach --clear-env -n zulip-install-focal-PUvff
sudo lxc-attach --clear-env -n zulip-install-jammy-PUvff
```
### Stopping and destroying containers
@@ -112,7 +112,7 @@ sudo ./tools/test-install/destroy-all -f
To destroy just one container:
```bash
sudo lxc-destroy -f -n zulip-install-focal-PUvff
sudo lxc-destroy -f -n zulip-install-jammy-PUvff
```
### Iterating on the installer
@@ -126,7 +126,7 @@ which will start up a new container. Here, we update just the
rsync -az scripts puppet zulip-test-installer/zulip-server/
sudo ./tools/test-install/install \
-r focal \
-r jammy \
./zulip-test-installer/ \
--hostname=zulip.example.net \
--email=username@example.net

View File

@@ -5,8 +5,8 @@ versions. PostgreSQL 16 is the current default for new installations;
PostgreSQL 12, 13, 14, 15, and 16 are all supported.
Previous versions of Zulip used whatever version of PostgreSQL was
included with the base operating system (E.g. PostgreSQL 12 on Ubuntu
20.04). We recommend that installations currently using older
included with the base operating system (E.g. PostgreSQL 14 on Ubuntu
22.04). We recommend that installations currently using older
PostgreSQL releases [upgrade to PostgreSQL 15][upgrade-postgresql], as
we may drop support for older PostgreSQL in a future release.

View File

@@ -4,10 +4,8 @@ To run a Zulip server, you will need:
- A dedicated machine or VM
- A supported OS:
- Ubuntu 20.04
- Ubuntu 22.04
- Ubuntu 24.04
- Debian 11
- Debian 12
- A supported CPU architecture:
- x86-64
@@ -38,7 +36,7 @@ on issues you'll encounter](install-existing-server.md).
#### Operating system
Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04, Debian 11, and Debian 12
Ubuntu 22.04, Ubuntu 24.04, and Debian 12
are supported for running Zulip in production. You can also
run Zulip on other platforms that support Docker using
[docker-zulip][docker-zulip-homepage].

View File

@@ -413,10 +413,9 @@ instructions for other supported platforms.
/home/zulip/deployments/current/scripts/setup/reindex-textual-data --force
```
7. We recommend that you now [upgrade from Ubuntu 20.04 to
22.04](#upgrading-from-ubuntu-2004-focal-to-2204-jammy). Although
Ubuntu 20.04 is still supported at this time, Ubuntu 22.04 will be
supported farther into the future.
7. [Upgrade from Ubuntu 20.04 to
22.04](#upgrading-from-ubuntu-2004-focal-to-2204-jammy), so that
you are running a supported operating system.
### Upgrading from Ubuntu 16.04 Xenial to 18.04 Bionic
@@ -466,8 +465,8 @@ instructions for other supported platforms.
```
8. [Upgrade from Ubuntu 18.04 to
20.04](#upgrading-from-ubuntu-1804-bionic-to-2004-focal), so that
you are running a supported operating system.
20.04](#upgrading-from-ubuntu-1804-bionic-to-2004-focal), the next
in chain of upgrades leading to a supported operating system.
### Upgrading from Ubuntu 14.04 Trusty to 16.04 Xenial
@@ -509,8 +508,8 @@ instructions for other supported platforms.
correctly.
6. [Upgrade from Ubuntu 16.04 to
18.04](#upgrading-from-ubuntu-1604-xenial-to-1804-bionic), so
that you are running a supported operating system.
18.04](#upgrading-from-ubuntu-1604-xenial-to-1804-bionic), the next
in chain of upgrades leading to a supported operating system.
### Upgrading from Debian 11 to 12
@@ -615,6 +614,9 @@ instructions for other supported platforms.
7. As an additional step, you can also [upgrade the PostgreSQL version](#upgrading-postgresql).
8. [Upgrade from Debian 11 to 12](#upgrading-from-debian-11-to-12),
so that you are running a supported operating system.
### Upgrading from Debian 9 to 10
1. Upgrade your server to the latest Zulip `2.1.x` release. You can
@@ -686,8 +688,9 @@ instructions for other supported platforms.
/home/zulip/deployments/current/manage.py audit_fts_indexes
```
9. [Upgrading from Debian 10 to 11](#upgrading-from-debian-10-to-11),
so that you are running a supported operating system.
9. [Upgrade from Debian 10 to 11](#upgrading-from-debian-10-to-11),
the next in chain of upgrades leading to a supported operating
system.
## Upgrading PostgreSQL
@@ -695,7 +698,7 @@ Starting with Zulip 3.0, we use the latest available version of
PostgreSQL at installation time (currently version 15). Upgrades to
the version of PostgreSQL are no longer linked to upgrades of the
distribution; that is, you may opt to upgrade to PostgreSQL 15 while
running Ubuntu 20.04.
running Ubuntu 22.04.
Not all versions of Zulip Server support all versions of PostgreSQL, however:

View File

@@ -120,8 +120,8 @@ extension, used by our [full-text search](full-text-search.md).
## Python packages
Zulip uses the version of Python itself provided by the host OS for
the Zulip server. We currently support Python 3.8 and newer, with
Ubuntu 20.04 being the platform requiring 3.8 support. The comments
the Zulip server. We currently support Python 3.10 and newer, with
Ubuntu 22.04 being the platform requiring 3.10 support. The comments
in `.github/workflows/zulip-ci.yml` document the Python versions used
by each supported platform.

View File

@@ -36,7 +36,7 @@ preparing a new release.
them. Use the `--branch 6.x` parameter for maintenance releases.
- Use `build-release-tarball` to generate a pre-release tarball.
- Test the new tarball extensively, both new install and upgrade from last
release, on Ubuntu 20.04 or 22.04.
release, on Ubuntu 22.04.
- Repeat until release is ready.
- Send around the Paper blog post draft for review.
- Move the blog post draft to Astro:
@@ -109,7 +109,7 @@ preparing a new release.
resources and archive the previous release branch's resources with
the "Translations can't translate this resource" setting.
- Add a new CI production upgrade target:
- Build a docker image: `cd tools/ci && docker build . -f Dockerfile.prod --build-arg=BASE_IMAGE=zulip/ci:bullseye --build-arg=VERSION=5.0 --tag=zulip/ci:bullseye-5.0 && docker push zulip/ci:bullseye-5.0`
- Build a docker image: `cd tools/ci && docker build . -f Dockerfile.prod --build-arg=BASE_IMAGE=zulip/ci:bookworm --build-arg=VERSION=7.0 --tag=zulip/ci:bookworm-7.0 && docker push zulip/ci:bookworm-7.0`
- Add a new line to the `production_upgrade` matrix in
`.github/workflows/production-suite.yml`.
- _Minor releases only (e.g. 3.2):_

View File

@@ -20,7 +20,6 @@ Jinja2
# Needed for Markdown processing
Markdown
importlib-metadata ; python_version < "3.10" # for Markdown
Pygments
jsx-lexer
uri-template
@@ -85,9 +84,6 @@ django-bmemcached
# Needed for zerver/tests/test_timestamp.py
python-dateutil
# Needed for time zone work
https://github.com/zulip/zoneinfo/archive/f9687abaea8453be1c8d0e21544bd557d65af933.zip#egg=backports.zoneinfo==0.2.1+git ; python_version < "3.9" # https://github.com/pganssle/zoneinfo/pull/126
# Needed for Redis
redis
@@ -165,7 +161,6 @@ requests-oauthlib
# For OpenAPI schema validation.
openapi-core
importlib-resources ; python_version < "3.9"
# For reporting errors to sentry.io
sentry-sdk

View File

@@ -185,11 +185,6 @@ backoff==2.2.1 \
--hash=sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba \
--hash=sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8
# via -r requirements/common.in
https://github.com/zulip/zoneinfo/archive/f9687abaea8453be1c8d0e21544bd557d65af933.zip#egg=backports.zoneinfo==0.2.1+git ; python_version < "3.9" \
--hash=sha256:23938590401ee45d88f37a5caa538b410ffa827169965a0bcf387da13b695450
# via
# -r requirements/common.in
# django
beautifulsoup4==4.12.3 \
--hash=sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051 \
--hash=sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed
@@ -1148,23 +1143,6 @@ imagesize==1.4.1 \
--hash=sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b \
--hash=sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a
# via sphinx
importlib-metadata==7.1.0 ; python_version < "3.10" \
--hash=sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570 \
--hash=sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2
# via
# -r requirements/common.in
# -r requirements/mypy.in
# markdown
# sphinx
# zulip-bots
importlib-resources==6.3.2 ; python_version < "3.9" \
--hash=sha256:963eb79649252b0160c1afcfe5a1d3fe3ad66edd0a8b114beacffb70c0674223 \
--hash=sha256:f41f4098b16cd140a97d256137cfd943d958219007990b2afb00439fc623f580
# via
# -r requirements/common.in
# jsonschema
# jsonschema-specifications
# openapi-spec-validator
incremental==22.10.0 \
--hash=sha256:912feeb5e0f7e0188e6f42241d2f450002e11bbc0937c65865045854c24c0bd0 \
--hash=sha256:b864a1f30885ee72c5ac2835a761b8fe8aa9c28b9395cacf27286602688d3e51
@@ -1933,10 +1911,6 @@ pip-tools==6.2.0 \
--hash=sha256:77727ef7457d1865e61fe34c2b1439f9b971b570cc232616a22ce82ab89d357d \
--hash=sha256:9ed38c73da4993e531694ea151f77048b4dbf2ba7b94c4a569daa39568cc6564
# via -r requirements/dev.in
pkgutil-resolve-name==1.3.10 \
--hash=sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174 \
--hash=sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e
# via jsonschema
platformdirs==4.2.0 \
--hash=sha256:0614df2a2f37e1a662acbd8e2b25b92ccf8632929bc6d43467e17fe89c75e068 \
--hash=sha256:ef0cc731df711022c174543cb70a9b5bd22e5a9337c8624ef2c2ceb8ddad8768
@@ -2319,10 +2293,6 @@ python3-saml==1.16.0 \
# via
# -r requirements/common.in
# social-auth-core
pytz==2024.1 \
--hash=sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812 \
--hash=sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319
# via babel
pyuca==1.2 \
--hash=sha256:8a382fe74627f08c0d18908c0713ca4a20aad5385f077579e56208beea2893b2 \
--hash=sha256:abaa12e1bd2c7c68ca8396ff8383bc0654a739cef3ae68fd7af58bf29af0a91e
@@ -3160,14 +3130,11 @@ typing-extensions==4.10.0 \
--hash=sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb
# via
# -r requirements/common.in
# annotated-types
# asgiref
# black
# boto3-stubs
# botocore-stubs
# django-stubs
# django-stubs-ext
# ipython
# libcst
# mypy
# mypy-boto3-s3
@@ -3180,7 +3147,6 @@ typing-extensions==4.10.0 \
# pyre-extensions
# qrcode
# returns
# rich
# semgrep
# sqlalchemy2-stubs
# stripe
@@ -3366,12 +3332,6 @@ yarl==1.9.4 \
--hash=sha256:f3bc6af6e2b8f92eced34ef6a96ffb248e863af20ef4fde9448cc8c9b858b749 \
--hash=sha256:f7d6b36dd2e029b6bcb8a13cf19664c7b8e19ab3a58e0fefbb5b8461447ed5ec
# via aiohttp
zipp==3.18.1 \
--hash=sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b \
--hash=sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715
# via
# importlib-metadata
# importlib-resources
zope-interface==6.2 \
--hash=sha256:02adbab560683c4eca3789cc0ac487dcc5f5a81cc48695ec247f00803cafe2fe \
--hash=sha256:14e02a6fc1772b458ebb6be1c276528b362041217b9ca37e52ecea2cbdce9fac \

View File

@@ -126,10 +126,6 @@ imagesize==1.4.1 \
--hash=sha256:0d8d18d08f840c19d0ee7ca1fd82490fdc3729b7ac93f49870406ddde8ef8d8b \
--hash=sha256:69150444affb9cb0d5cc5a92b3676f0b2fb7cd9ae39e947a5e11a36b4497cd4a
# via sphinx
importlib-metadata==7.1.0 \
--hash=sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570 \
--hash=sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2
# via sphinx
jinja2==3.1.3 \
--hash=sha256:7d6d50dd97d52cbc355597bd845fabfbac3f551e1f99619e39a35ce8c370b5fa \
--hash=sha256:ac8bd6544d4bb2c9792bf3a159e80bba8fda7f07e81bc3aed565432d5925ba90
@@ -224,10 +220,6 @@ pygments==2.17.2 \
--hash=sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c \
--hash=sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367
# via sphinx
pytz==2024.1 \
--hash=sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812 \
--hash=sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319
# via babel
pyyaml==6.0.1 \
--hash=sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5 \
--hash=sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc \
@@ -338,7 +330,3 @@ urllib3==1.26.18 \
--hash=sha256:34b97092d7e0a3a8cf7cd10e386f401b3737364026c45e622aa02903dffe0f07 \
--hash=sha256:f8ecc1bba5667413457c529ab955bf8c67b45db799d159066261719e328580a0
# via requests
zipp==3.18.1 \
--hash=sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b \
--hash=sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715
# via importlib-metadata

View File

@@ -26,6 +26,4 @@ types-regex
types-requests<2.31.0.7 # https://github.com/python/typeshed/issues/10825
types-zxcvbn
importlib-metadata ; python_version < "3.10" # for SQLAlchemy
django-stubs

View File

@@ -163,11 +163,6 @@ backoff==2.2.1 \
--hash=sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba \
--hash=sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8
# via -r requirements/common.in
https://github.com/zulip/zoneinfo/archive/f9687abaea8453be1c8d0e21544bd557d65af933.zip#egg=backports.zoneinfo==0.2.1+git ; python_version < "3.9" \
--hash=sha256:23938590401ee45d88f37a5caa538b410ffa827169965a0bcf387da13b695450
# via
# -r requirements/common.in
# django
beautifulsoup4==4.12.3 \
--hash=sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051 \
--hash=sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed
@@ -928,21 +923,6 @@ idna==3.6 \
# via
# requests
# yarl
importlib-metadata==7.1.0 ; python_version < "3.10" \
--hash=sha256:30962b96c0c223483ed6cc7280e7f0199feb01a0e40cfae4d4450fc6fab1f570 \
--hash=sha256:b78938b926ee8d5f020fc4772d487045805a55ddbad2ecf21c6d60938dc7fcd2
# via
# -r requirements/common.in
# markdown
# zulip-bots
importlib-resources==6.3.2 ; python_version < "3.9" \
--hash=sha256:963eb79649252b0160c1afcfe5a1d3fe3ad66edd0a8b114beacffb70c0674223 \
--hash=sha256:f41f4098b16cd140a97d256137cfd943d958219007990b2afb00439fc623f580
# via
# -r requirements/common.in
# jsonschema
# jsonschema-specifications
# openapi-spec-validator
ipython==8.12.3 \
--hash=sha256:3910c4b54543c2ad73d06579aa771041b7d5707b033bd488669b4cf544e3b363 \
--hash=sha256:b0340d46a933d27c657b211a329d0be23793c36595acf9e6ef4164bc01a1804c
@@ -1479,10 +1459,6 @@ pillow==10.2.0 \
--hash=sha256:f379abd2f1e3dddb2b61bc67977a6b5a0a3f7485538bcc6f39ec76163891ee48 \
--hash=sha256:fe4c15f6c9285dc54ce6553a3ce908ed37c8f3825b5a51a15c91442bb955b868
# via -r requirements/common.in
pkgutil-resolve-name==1.3.10 \
--hash=sha256:357d6c9e6a755653cfd78893817c0853af365dd51ec97f3d358a819373bbd174 \
--hash=sha256:ca27cc078d25c5ad71a9de0a7a330146c4e014c2462d9af19c6b828280649c5e
# via jsonschema
polib==1.2.0 \
--hash=sha256:1c77ee1b81feb31df9bca258cbc58db1bbb32d10214b173882452c73af06d62d \
--hash=sha256:f3ef94aefed6e183e342a8a269ae1fc4742ba193186ad76f175938621dbfc26b
@@ -2237,10 +2213,8 @@ typing-extensions==4.10.0 \
--hash=sha256:b0abd7c89e8fb96f98db18d86106ff1d90ab692004eb746cf6eda2682f91b3cb
# via
# -r requirements/common.in
# annotated-types
# asgiref
# django-stubs-ext
# ipython
# mypy-boto3-s3
# mypy-boto3-ses
# mypy-boto3-sns
@@ -2397,12 +2371,6 @@ yarl==1.9.4 \
--hash=sha256:f3bc6af6e2b8f92eced34ef6a96ffb248e863af20ef4fde9448cc8c9b858b749 \
--hash=sha256:f7d6b36dd2e029b6bcb8a13cf19664c7b8e19ab3a58e0fefbb5b8461447ed5ec
# via aiohttp
zipp==3.18.1 \
--hash=sha256:206f5a15f2af3dbaee80769fb7dc6f249695e940acca08dfb2a4769fe61e538b \
--hash=sha256:2884ed22e7d8961de1c9a05142eb69a247f120291bc0206a00a7642f09b5b715
# via
# importlib-metadata
# importlib-resources
https://github.com/zulip/python-zulip-api/archive/0.9.0.zip#egg=zulip==0.9.0+git&subdirectory=zulip \
--hash=sha256:71ea94192f1a0de1c45fd177e827b65fe4970c4fc8565991fd066b4de77eaccb
# via

View File

@@ -231,15 +231,13 @@ if [ -f /etc/os-release ]; then
fi
case "$os_id $os_version_id" in
'debian 11' | 'debian 12' | 'ubuntu 20.04' | 'ubuntu 22.04' | 'ubuntu 24.04') ;;
'debian 12' | 'ubuntu 22.04' | 'ubuntu 24.04') ;;
*)
system_requirements_failure <<EOF
Unsupported OS release: $os_id $os_version_id
Zulip in production is supported only on:
- Debian 11
- Debian 12
- Ubuntu 20.04 LTS
- Ubuntu 22.04 LTS
- Ubuntu 24.04 LTS
EOF

View File

@@ -8,7 +8,7 @@ from urllib.request import urlopen
import yaml
from .zulip_tools import parse_os_release, run
from .zulip_tools import run
ZULIP_PATH = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
ZULIP_SRV_PATH = "/srv"
@@ -89,11 +89,6 @@ def install_puppet_module(
tarball.write(tarball_content)
tarball.flush()
# This is to suppress Puppet warnings with ruby 2.7.
distro_info = parse_os_release()
puppet_env = os.environ.copy()
if (distro_info["ID"], distro_info["VERSION_ID"]) in [("ubuntu", "20.04")]:
puppet_env["RUBYOPT"] = "-W0"
run(
[
"puppet",
@@ -104,5 +99,4 @@ def install_puppet_module(
tarball.name,
"--ignore-dependencies",
],
env=puppet_env,
)

View File

@@ -112,7 +112,7 @@ try:
).splitlines()
# We can't use `git worktree list --porcelain -z` here because
# Ubuntu 20.04 Focal only has git 2.25.1, and -z was
# Ubuntu 22.04 only has git 2.34.1, and -z was
# introduced in 2.36
worktree_data = subprocess.check_output(
["git", "worktree", "list", "--porcelain"],

View File

@@ -1,2 +0,0 @@
deb http://www.ksplice.com/apt focal ksplice
deb-src http://www.ksplice.com/apt focal ksplice

View File

@@ -1 +0,0 @@
deb https://apt.releases.teleport.dev/ubuntu focal stable/v14

View File

@@ -1,2 +0,0 @@
deb http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main
deb-src http://apt.postgresql.org/pub/repos/apt/ bullseye-pgdg main

View File

@@ -1,5 +0,0 @@
deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main
deb-src http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main
deb http://ppa.launchpad.net/groonga/ppa/ubuntu focal main
deb-src http://ppa.launchpad.net/groonga/ppa/ubuntu focal main

View File

@@ -63,10 +63,6 @@ puppet_env = os.environ.copy()
puppet_env["FACTER_zulip_conf_path"] = args.config
puppet_env["FACTER_zulip_scripts_path"] = scripts_path
# This is to suppress Puppet warnings with ruby 2.7.
if (distro_info["ID"], distro_info["VERSION_ID"]) in [("ubuntu", "20.04")]:
puppet_env["RUBYOPT"] = "-W0"
def noop_would_change(puppet_cmd: List[str]) -> bool:
# --noop does not work with --detailed-exitcodes; see

View File

@@ -4,9 +4,9 @@
# because by then we've already cloned the repo);
# * Git and other basic utilities.
# To rebuild from this file for a given release, say Ubuntu 20.04 focal:
# docker build . --build-arg=BASE_IMAGE=ubuntu:20.04 --pull --tag=zulip/ci:focal
# docker push zulip/ci:focal
# To rebuild from this file for a given release, say Ubuntu 22.04 jammy:
# docker build . --build-arg=BASE_IMAGE=ubuntu:22.04 --pull --tag=zulip/ci:jammy
# docker push zulip/ci:jammy
#
# tools/ci/build-docker-images will rebuild all images, but not push them.

View File

@@ -1,10 +1,10 @@
# To build these production upgrade test images, say an Debian 11 Bullseye system
# preinstalled with Zulip 5.0:
# To build these production upgrade test images, say an Debian 12 Bookworm system
# preinstalled with Zulip 7.0:
# docker build . -f Dockerfile.prod \
# --build-arg=BASE_IMAGE=zulip/ci:bullseye \
# --build-arg=VERSION=5.0 \
# --tag=zulip/ci:focal-5.0
# docker push zulip/ci:focal-5.0
# --build-arg=BASE_IMAGE=zulip/ci:bookworm \
# --build-arg=VERSION=7.0 \
# --tag=zulip/ci:bookworm-7.0
# docker push zulip/ci:bookworm-7.0
ARG BASE_IMAGE
FROM $BASE_IMAGE
@@ -14,8 +14,6 @@ ARG VERSION
RUN cd $(mktemp -d) \
&& curl -fLO --retry 3 "https://download.zulip.com/server/zulip-server-$VERSION.tar.gz" \
&& tar -xf "zulip-server-$VERSION.tar.gz" \
# Version 3.4 predates ddb9d16132a6336b384bf674c4c950cd75d83e5c and 9d57fa97597ec176a8357d6620ab9e670ee19f4e
&& perl -pi -e 's/pgrep -f epmd/which pgrep && pgrep -x epmd/' zulip-server-$VERSION/puppet/zulip/manifests/rabbit.pp \
&& sudo -s "./zulip-server-$VERSION/scripts/setup/install" --self-signed-cert --hostname 127.0.0.1 --email ci@example.com \
&& sudo service rabbitmq-server stop

View File

@@ -1,8 +1,6 @@
#!/usr/bin/env bash
set -eux
cd "$(dirname "${BASH_SOURCE[0]}")"
docker build . --build-arg=BASE_IMAGE=ubuntu:20.04 --pull --tag=zulip/ci:focal
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:11 --pull --tag=zulip/ci:bullseye
docker build . --build-arg=BASE_IMAGE=debian:12 --pull --tag=zulip/ci:bookworm

View File

@@ -74,20 +74,12 @@ except OSError:
distro_info = parse_os_release()
vendor = distro_info["ID"]
os_version = distro_info["VERSION_ID"]
if vendor == "debian" and os_version == "11": # bullseye
POSTGRESQL_VERSION = "13"
elif vendor == "debian" and os_version == "12": # bookworm
if vendor == "debian" and os_version == "12": # bookworm
POSTGRESQL_VERSION = "15"
elif vendor == "ubuntu" and os_version == "20.04": # focal
POSTGRESQL_VERSION = "12"
elif vendor == "ubuntu" and os_version == "21.10": # impish
POSTGRESQL_VERSION = "13"
elif vendor == "ubuntu" and os_version == "22.04": # jammy
POSTGRESQL_VERSION = "14"
elif vendor == "ubuntu" and os_version == "24.04": # noble
POSTGRESQL_VERSION = "16"
elif vendor == "neon" and os_version == "20.04": # KDE Neon
POSTGRESQL_VERSION = "12"
elif vendor == "fedora" and os_version == "38":
POSTGRESQL_VERSION = "15"
elif vendor == "rhel" and os_version.startswith("7."):

View File

@@ -32,8 +32,8 @@ esac
python_version="$(python3 --version)"
case "$python_version" in
Python\ 3.[0-7].*)
echo 'Error: Zulip requires an OS with Python 3.8 or later.' >&2
Python\ 3.[0-9].*)
echo 'Error: Zulip requires an OS with Python 3.10 or later.' >&2
exit 1
;;
esac

View File

@@ -10,7 +10,7 @@ RELEASE="$1"
ARCH=amd64 # TODO: maybe i686 too
case "$RELEASE" in
focal | jammy)
jammy)
extra_packages=(python3-pip)
;;
*)

View File

@@ -48,4 +48,4 @@ API_FEATURE_LEVEL = 245
# historical commits sharing the same major version, in which case a
# minor version bump suffices.
PROVISION_VERSION = (266, 2)
PROVISION_VERSION = (267, 0)