mirror of https://github.com/zulip/zulip.git
Remove Ubuntu 18.04 support.
As a consequence: • Bump minimum supported Python version to 3.7. • Move Vagrant environment to Debian 10, which has Python 3.7. • Move CI frontend tests to Debian 10. • Move production build test to Debian 10. Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
parent
d035efd467
commit
a58a71ef43
|
@ -30,13 +30,13 @@ jobs:
|
||||||
production_build:
|
production_build:
|
||||||
# This job builds a release tarball from the current commit, which
|
# This job builds a release tarball from the current commit, which
|
||||||
# will be used for all of the following install/upgrade tests.
|
# will be used for all of the following install/upgrade tests.
|
||||||
name: Bionic production build
|
name: Debian 10 production build
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
# Docker images are built from 'tools/ci/Dockerfile'; the comments at
|
# Docker images are built from 'tools/ci/Dockerfile'; the comments at
|
||||||
# the top explain how to build and upload these images.
|
# the top explain how to build and upload these images.
|
||||||
# Bionic ships with Python 3.6.
|
# Debian 10 ships with Python 3.7.3.
|
||||||
container: zulip/ci:bionic
|
container: zulip/ci:buster
|
||||||
steps:
|
steps:
|
||||||
- name: Add required permissions
|
- name: Add required permissions
|
||||||
run: |
|
run: |
|
||||||
|
@ -83,12 +83,6 @@ jobs:
|
||||||
key: v1-emoji-${{ github.job }}-${{ hashFiles('tools/setup/emoji/emoji_map.json') }}-${{ hashFiles('tools/setup/emoji/build_emoji') }}-${{ hashFiles('tools/setup/emoji/emoji_setup_utils.py') }}-${{ hashFiles('tools/setup/emoji/emoji_names.py') }}-${{ hashFiles('package.json') }}
|
key: v1-emoji-${{ github.job }}-${{ hashFiles('tools/setup/emoji/emoji_map.json') }}-${{ hashFiles('tools/setup/emoji/build_emoji') }}-${{ hashFiles('tools/setup/emoji/emoji_setup_utils.py') }}-${{ hashFiles('tools/setup/emoji/emoji_names.py') }}-${{ hashFiles('package.json') }}
|
||||||
restore-keys: v1-emoji-${{ github.job }}
|
restore-keys: v1-emoji-${{ github.job }}
|
||||||
|
|
||||||
- name: Do Bionic hack
|
|
||||||
run: |
|
|
||||||
# Temporary hack till `sudo service redis-server start` gets fixes in Bionic. See
|
|
||||||
# https://chat.zulip.org/#narrow/stream/3-backend/topic/Ubuntu.20bionic.20CircleCI
|
|
||||||
sudo sed -i '/^bind/s/bind.*/bind 0.0.0.0/' /etc/redis/redis.conf
|
|
||||||
|
|
||||||
- name: Build production tarball
|
- name: Build production tarball
|
||||||
run: ./tools/ci/production-build
|
run: ./tools/ci/production-build
|
||||||
|
|
||||||
|
@ -115,27 +109,18 @@ jobs:
|
||||||
include:
|
include:
|
||||||
# Docker images are built from 'tools/ci/Dockerfile'; the comments at
|
# Docker images are built from 'tools/ci/Dockerfile'; the comments at
|
||||||
# the top explain how to build and upload these images.
|
# the top explain how to build and upload these images.
|
||||||
- docker_image: zulip/ci:bionic
|
|
||||||
name: Bionic production install with custom db name and user
|
|
||||||
is_bionic: true
|
|
||||||
os: bionic
|
|
||||||
extra_args: --test-custom-db
|
|
||||||
|
|
||||||
- docker_image: zulip/ci:focal
|
- docker_image: zulip/ci:focal
|
||||||
name: Focal production install
|
name: Focal production install
|
||||||
is_focal: true
|
|
||||||
os: focal
|
os: focal
|
||||||
extra_args: ""
|
extra_args: ""
|
||||||
|
|
||||||
- docker_image: zulip/ci:buster
|
- docker_image: zulip/ci:buster
|
||||||
name: Buster production install
|
name: Buster production install with custom db name and user
|
||||||
is_buster: true
|
|
||||||
os: buster
|
os: buster
|
||||||
extra_args: ""
|
extra_args: --test-custom-db
|
||||||
|
|
||||||
- docker_image: zulip/ci:bullseye
|
- docker_image: zulip/ci:bullseye
|
||||||
name: Bullseye production install
|
name: Bullseye production install
|
||||||
is_bullseye: true
|
|
||||||
os: bullseye
|
os: bullseye
|
||||||
extra_args: ""
|
extra_args: ""
|
||||||
|
|
||||||
|
@ -181,13 +166,6 @@ jobs:
|
||||||
key: v1-yarn-deps-${{ matrix.os }}-${{ hashFiles('/tmp/package.json') }}-${{ hashFiles('/tmp/yarn.lock') }}
|
key: v1-yarn-deps-${{ matrix.os }}-${{ hashFiles('/tmp/package.json') }}-${{ hashFiles('/tmp/yarn.lock') }}
|
||||||
restore-keys: v1-yarn-deps-${{ matrix.os }}
|
restore-keys: v1-yarn-deps-${{ matrix.os }}
|
||||||
|
|
||||||
- name: Do Bionic hack
|
|
||||||
if: ${{ matrix.is_bionic }}
|
|
||||||
run: |
|
|
||||||
# Temporary hack till `sudo service redis-server start` gets fixes in Bionic. See
|
|
||||||
# https://chat.zulip.org/#narrow/stream/3-backend/topic/Ubuntu.20bionic.20CircleCI
|
|
||||||
sudo sed -i '/^bind/s/bind.*/bind 0.0.0.0/' /etc/redis/redis.conf
|
|
||||||
|
|
||||||
- name: Install production
|
- name: Install production
|
||||||
run: |
|
run: |
|
||||||
sudo service rabbitmq-server restart
|
sudo service rabbitmq-server restart
|
||||||
|
|
|
@ -18,11 +18,10 @@ jobs:
|
||||||
include:
|
include:
|
||||||
# Base images are built using `tools/ci/Dockerfile.prod.template`.
|
# Base images are built using `tools/ci/Dockerfile.prod.template`.
|
||||||
# The comments at the top explain how to build and upload these images.
|
# The comments at the top explain how to build and upload these images.
|
||||||
# Bionic ships with Python 3.6.
|
# Debian 10 ships with Python 3.7.3.
|
||||||
- docker_image: zulip/ci:bionic
|
- docker_image: zulip/ci:buster
|
||||||
name: Ubuntu 18.04 Bionic (Python 3.6, backend + frontend)
|
name: Debian 10 Buster (Python 3.7, backend + frontend)
|
||||||
os: bionic
|
os: buster
|
||||||
is_bionic: true
|
|
||||||
include_frontend_tests: true
|
include_frontend_tests: true
|
||||||
# Focal ships with Python 3.8.2.
|
# Focal ships with Python 3.8.2.
|
||||||
- docker_image: zulip/ci:focal
|
- docker_image: zulip/ci:focal
|
||||||
|
@ -79,13 +78,6 @@ jobs:
|
||||||
key: v1-emoji-${{ matrix.os }}-${{ hashFiles('tools/setup/emoji/emoji_map.json') }}-${{ hashFiles('tools/setup/emoji/build_emoji') }}-${{ hashFiles('tools/setup/emoji/emoji_setup_utils.py') }}-${{ hashFiles('tools/setup/emoji/emoji_names.py') }}-${{ hashFiles('package.json') }}
|
key: v1-emoji-${{ matrix.os }}-${{ hashFiles('tools/setup/emoji/emoji_map.json') }}-${{ hashFiles('tools/setup/emoji/build_emoji') }}-${{ hashFiles('tools/setup/emoji/emoji_setup_utils.py') }}-${{ hashFiles('tools/setup/emoji/emoji_names.py') }}-${{ hashFiles('package.json') }}
|
||||||
restore-keys: v1-emoji-${{ matrix.os }}
|
restore-keys: v1-emoji-${{ matrix.os }}
|
||||||
|
|
||||||
- name: Do Bionic hack
|
|
||||||
if: ${{ matrix.is_bionic }}
|
|
||||||
run: |
|
|
||||||
# Temporary hack till `sudo service redis-server start` gets fixes in Bionic. See
|
|
||||||
# https://chat.zulip.org/#narrow/stream/3-backend/topic/Ubuntu.20bionic.20CircleCI
|
|
||||||
sudo sed -i '/^bind/s/bind.*/bind 0.0.0.0/' /etc/redis/redis.conf
|
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
# This is the main setup job for the test suite
|
# This is the main setup job for the test suite
|
||||||
|
@ -135,7 +127,7 @@ jobs:
|
||||||
source tools/ci/activate-venv
|
source tools/ci/activate-venv
|
||||||
|
|
||||||
# Currently our compiled requirements files will differ for different python versions
|
# Currently our compiled requirements files will differ for different python versions
|
||||||
# so we will run test-locked-requirements only for Bionic.
|
# so we will run test-locked-requirements only for Debian 10.
|
||||||
# ./tools/test-locked-requirements
|
# ./tools/test-locked-requirements
|
||||||
# ./tools/test-run-dev # https://github.com/zulip/zulip/pull/14233
|
# ./tools/test-run-dev # https://github.com/zulip/zulip/pull/14233
|
||||||
#
|
#
|
||||||
|
@ -195,7 +187,7 @@ jobs:
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: Test locked requirements
|
- name: Test locked requirements
|
||||||
if: ${{ matrix.is_bionic }}
|
if: ${{ matrix.os == 'buster' }}
|
||||||
run: |
|
run: |
|
||||||
. /srv/zulip-py3-venv/bin/activate && \
|
. /srv/zulip-py3-venv/bin/activate && \
|
||||||
./tools/test-locked-requirements
|
./tools/test-locked-requirements
|
||||||
|
|
|
@ -12,7 +12,7 @@ Vagrant.configure("2") do |config|
|
||||||
vm_num_cpus = "2"
|
vm_num_cpus = "2"
|
||||||
vm_memory = "2048"
|
vm_memory = "2048"
|
||||||
|
|
||||||
ubuntu_mirror = ""
|
debian_mirror = ""
|
||||||
vboxadd_version = nil
|
vboxadd_version = nil
|
||||||
|
|
||||||
config.vm.synced_folder ".", "/vagrant", disabled: true
|
config.vm.synced_folder ".", "/vagrant", disabled: true
|
||||||
|
@ -32,7 +32,7 @@ Vagrant.configure("2") do |config|
|
||||||
when "HOST_IP_ADDR"; host_ip_addr = value
|
when "HOST_IP_ADDR"; host_ip_addr = value
|
||||||
when "GUEST_CPUS"; vm_num_cpus = value
|
when "GUEST_CPUS"; vm_num_cpus = value
|
||||||
when "GUEST_MEMORY_MB"; vm_memory = value
|
when "GUEST_MEMORY_MB"; vm_memory = value
|
||||||
when "UBUNTU_MIRROR"; ubuntu_mirror = value
|
when "DEBIAN_MIRROR"; debian_mirror = value
|
||||||
when "VBOXADD_VERSION"; vboxadd_version = value
|
when "VBOXADD_VERSION"; vboxadd_version = value
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -63,21 +63,21 @@ Vagrant.configure("2") do |config|
|
||||||
config.vm.provider "docker" do |d, override|
|
config.vm.provider "docker" do |d, override|
|
||||||
d.build_dir = File.join(__dir__, "tools", "setup", "dev-vagrant-docker")
|
d.build_dir = File.join(__dir__, "tools", "setup", "dev-vagrant-docker")
|
||||||
d.build_args = ["--build-arg", "VAGRANT_UID=#{Process.uid}"]
|
d.build_args = ["--build-arg", "VAGRANT_UID=#{Process.uid}"]
|
||||||
if !ubuntu_mirror.empty?
|
if !debian_mirror.empty?
|
||||||
d.build_args += ["--build-arg", "UBUNTU_MIRROR=#{ubuntu_mirror}"]
|
d.build_args += ["--build-arg", "DEBIAN_MIRROR=#{debian_mirror}"]
|
||||||
end
|
end
|
||||||
d.has_ssh = true
|
d.has_ssh = true
|
||||||
d.create_args = ["--ulimit", "nofile=1024:65536"]
|
d.create_args = ["--ulimit", "nofile=1024:65536"]
|
||||||
end
|
end
|
||||||
|
|
||||||
config.vm.provider "virtualbox" do |vb, override|
|
config.vm.provider "virtualbox" do |vb, override|
|
||||||
override.vm.box = "hashicorp/bionic64"
|
override.vm.box = "bento/debian-10"
|
||||||
# It's possible we can get away with just 1.5GB; more testing needed
|
# It's possible we can get away with just 1.5GB; more testing needed
|
||||||
vb.memory = vm_memory
|
vb.memory = vm_memory
|
||||||
vb.cpus = vm_num_cpus
|
vb.cpus = vm_num_cpus
|
||||||
|
|
||||||
if !vboxadd_version.nil?
|
if !vboxadd_version.nil?
|
||||||
override.vbguest.installer = Class.new(VagrantVbguest::Installers::Ubuntu) do
|
override.vbguest.installer = Class.new(VagrantVbguest::Installers::Debian) do
|
||||||
define_method(:host_version) do |reload = false|
|
define_method(:host_version) do |reload = false|
|
||||||
VagrantVbguest::Version(vboxadd_version)
|
VagrantVbguest::Version(vboxadd_version)
|
||||||
end
|
end
|
||||||
|
@ -88,15 +88,14 @@ Vagrant.configure("2") do |config|
|
||||||
end
|
end
|
||||||
|
|
||||||
config.vm.provider "hyperv" do |h, override|
|
config.vm.provider "hyperv" do |h, override|
|
||||||
override.vm.box = "bento/ubuntu-18.04"
|
override.vm.box = "bento/debian-10"
|
||||||
h.memory = vm_memory
|
h.memory = vm_memory
|
||||||
h.maxmemory = vm_memory
|
h.maxmemory = vm_memory
|
||||||
h.cpus = vm_num_cpus
|
h.cpus = vm_num_cpus
|
||||||
end
|
end
|
||||||
|
|
||||||
config.vm.provider "parallels" do |prl, override|
|
config.vm.provider "parallels" do |prl, override|
|
||||||
override.vm.box = "bento/ubuntu-18.04"
|
override.vm.box = "bento/debian-10"
|
||||||
override.vm.box_version = "202005.21.0"
|
|
||||||
prl.memory = vm_memory
|
prl.memory = vm_memory
|
||||||
prl.cpus = vm_num_cpus
|
prl.cpus = vm_num_cpus
|
||||||
end
|
end
|
||||||
|
@ -105,5 +104,5 @@ Vagrant.configure("2") do |config|
|
||||||
# We want provision to be run with the permissions of the vagrant user.
|
# We want provision to be run with the permissions of the vagrant user.
|
||||||
privileged: false,
|
privileged: false,
|
||||||
path: "tools/setup/vagrant-provision",
|
path: "tools/setup/vagrant-provision",
|
||||||
env: { "UBUNTU_MIRROR" => ubuntu_mirror }
|
env: { "DEBIAN_MIRROR" => debian_mirror }
|
||||||
end
|
end
|
||||||
|
|
|
@ -117,7 +117,7 @@ sooner is better.
|
||||||
the job to fail by clicking on the failed job. This will open
|
the job to fail by clicking on the failed job. This will open
|
||||||
up a page in the CI that has more details on why the job failed.
|
up a page in the CI that has more details on why the job failed.
|
||||||
For example [this](https://github.com/zulip/zulip/runs/2092955762)
|
For example [this](https://github.com/zulip/zulip/runs/2092955762)
|
||||||
is the page of the `Ubuntu 18.04 Bionic (Python 3.6, backend + frontend)` job.
|
is the page of the "Debian 10 Buster (Python 3.7, backend + frontend)" job.
|
||||||
See our docs on [continuous integration](../testing/continuous-integration.md)
|
See our docs on [continuous integration](../testing/continuous-integration.md)
|
||||||
to learn more.
|
to learn more.
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ Contents:
|
||||||
If you'd like to install a Zulip development environment on a computer
|
If you'd like to install a Zulip development environment on a computer
|
||||||
that's running one of:
|
that's running one of:
|
||||||
|
|
||||||
- Ubuntu 20.04 Focal, 18.04 Bionic
|
- Ubuntu 20.04 Focal
|
||||||
- Debian 10 Buster, 11 Bullseye (beta)
|
- Debian 10 Buster, 11 Bullseye (beta)
|
||||||
- CentOS 7 (beta)
|
- CentOS 7 (beta)
|
||||||
- Fedora 33 and 34 (beta)
|
- Fedora 33 and 34 (beta)
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
## Vagrant environment setup tutorial
|
## Vagrant environment setup tutorial
|
||||||
|
|
||||||
This section guides first-time contributors through installing the
|
This section guides first-time contributors through installing the
|
||||||
Zulip development environment on Windows, macOS, Ubuntu and Debian.
|
Zulip development environment on Windows, macOS, and Linux.
|
||||||
|
|
||||||
The recommended method for installing the Zulip development environment is to use
|
The recommended method for installing the Zulip development environment is to use
|
||||||
Vagrant with VirtualBox on Windows, and Vagrant with Docker on
|
Vagrant with VirtualBox on Windows, and Vagrant with Docker on
|
||||||
macOS and Ubuntu. This method creates a virtual machine (for Windows)
|
macOS and Linux. This method creates a virtual machine (for Windows)
|
||||||
or a Linux container (for macOS and Ubuntu) inside which the Zulip server and
|
or a Linux container (for macOS and Linux) inside which the Zulip server and
|
||||||
all related services will run.
|
all related services will run.
|
||||||
|
|
||||||
Contents:
|
Contents:
|
||||||
|
@ -18,7 +18,7 @@ Contents:
|
||||||
- [Step 3: Start the development environment](#step-3-start-the-development-environment)
|
- [Step 3: Start the development environment](#step-3-start-the-development-environment)
|
||||||
- [Step 4: Developing](#step-4-developing)
|
- [Step 4: Developing](#step-4-developing)
|
||||||
- [Troubleshooting and common errors](#troubleshooting-and-common-errors)
|
- [Troubleshooting and common errors](#troubleshooting-and-common-errors)
|
||||||
- [Specifying an Ubuntu mirror](#specifying-an-ubuntu-mirror)
|
- [Specifying a Debian mirror](#specifying-a-debian-mirror)
|
||||||
- [Specifying a proxy](#specifying-a-proxy)
|
- [Specifying a proxy](#specifying-a-proxy)
|
||||||
- [Customizing CPU and RAM allocation](#customizing-cpu-and-ram-allocation)
|
- [Customizing CPU and RAM allocation](#customizing-cpu-and-ram-allocation)
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ a proxy to access the internet.)
|
||||||
|
|
||||||
- **All**: 2GB available RAM, Active broadband internet connection, [GitHub account][set-up-git].
|
- **All**: 2GB available RAM, Active broadband internet connection, [GitHub account][set-up-git].
|
||||||
- **macOS**: macOS (10.11 El Capitan or newer recommended)
|
- **macOS**: macOS (10.11 El Capitan or newer recommended)
|
||||||
- **Ubuntu LTS**: 20.04 or 18.04
|
- **Ubuntu LTS**: 20.04
|
||||||
- or **Debian**: 10 "buster" or 11 "bullseye"
|
- or **Debian**: 10 "buster" or 11 "bullseye"
|
||||||
- **Windows**: Windows 64-bit (Win 10 recommended), hardware
|
- **Windows**: Windows 64-bit (Win 10 recommended), hardware
|
||||||
virtualization enabled (VT-x or AMD-V), administrator access.
|
virtualization enabled (VT-x or AMD-V), administrator access.
|
||||||
|
@ -233,7 +233,7 @@ projects and to instead follow these instructions exactly.)
|
||||||
1. In your browser, visit <https://github.com/zulip/zulip>
|
1. In your browser, visit <https://github.com/zulip/zulip>
|
||||||
and click the `fork` button. You will need to be logged in to GitHub to
|
and click the `fork` button. You will need to be logged in to GitHub to
|
||||||
do this.
|
do this.
|
||||||
2. Open Terminal (macOS/Ubuntu) or Git BASH (Windows; must
|
2. Open Terminal (macOS/Linux) or Git BASH (Windows; must
|
||||||
**run as an Administrator**).
|
**run as an Administrator**).
|
||||||
3. In Terminal/Git BASH,
|
3. In Terminal/Git BASH,
|
||||||
[clone your fork of the Zulip repository](../git/cloning.html#step-1b-clone-to-your-machine) and
|
[clone your fork of the Zulip repository](../git/cloning.html#step-1b-clone-to-your-machine) and
|
||||||
|
@ -285,8 +285,8 @@ vagrant up --provider=docker
|
||||||
The first time you run this command it will take some time because vagrant
|
The first time you run this command it will take some time because vagrant
|
||||||
does the following:
|
does the following:
|
||||||
|
|
||||||
- downloads the base Ubuntu 18.04 virtual machine image (for macOS and Windows)
|
- downloads the base Debian 10 virtual machine image (for macOS and Windows)
|
||||||
or container (for Ubuntu)
|
or container (for Linux)
|
||||||
- configures this virtual machine/container for use with Zulip,
|
- configures this virtual machine/container for use with Zulip,
|
||||||
- creates a shared directory mapping your clone of the Zulip code inside the
|
- creates a shared directory mapping your clone of the Zulip code inside the
|
||||||
virtual machine/container at `~/zulip`
|
virtual machine/container at `~/zulip`
|
||||||
|
@ -324,7 +324,7 @@ $ vagrant ssh
|
||||||
You should see output that starts like this:
|
You should see output that starts like this:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
Welcome to Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-54-generic x86_64)
|
Linux debian-10 4.19.0-18-amd64 #1 SMP Debian 4.19.208-1 (2021-09-29) x86_64
|
||||||
```
|
```
|
||||||
|
|
||||||
Congrats, you're now inside the Zulip development environment!
|
Congrats, you're now inside the Zulip development environment!
|
||||||
|
@ -337,7 +337,7 @@ provisioning failed and you should look at the
|
||||||
Next, start the Zulip server:
|
Next, start the Zulip server:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
(zulip-py3-venv) vagrant@ubuntu-bionic:/srv/zulip
|
(zulip-py3-venv) vagrant@debian-10:/srv/zulip
|
||||||
$ ./tools/run-dev.py
|
$ ./tools/run-dev.py
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -425,7 +425,7 @@ output.
|
||||||
#### Committing and pushing changes with Git
|
#### Committing and pushing changes with Git
|
||||||
|
|
||||||
When you're ready to commit or push changes via Git, you will do this by
|
When you're ready to commit or push changes via Git, you will do this by
|
||||||
running Git commands in Terminal (macOS/Ubuntu) or Git BASH (Windows) in the
|
running Git commands in Terminal (macOS/Linux) or Git BASH (Windows) in the
|
||||||
directory where you cloned Zulip on your main machine.
|
directory where you cloned Zulip on your main machine.
|
||||||
|
|
||||||
If you're new to working with Git/GitHub, check out our [Git & GitHub
|
If you're new to working with Git/GitHub, check out our [Git & GitHub
|
||||||
|
@ -485,7 +485,7 @@ From the window where run-dev.py is running:
|
||||||
2016-05-04 18:33:13,330 INFO 127.0.0.1 GET 200 92ms /register/ (unauth@zulip via ?)
|
2016-05-04 18:33:13,330 INFO 127.0.0.1 GET 200 92ms /register/ (unauth@zulip via ?)
|
||||||
^C
|
^C
|
||||||
KeyboardInterrupt
|
KeyboardInterrupt
|
||||||
(zulip-py3-venv) vagrant@ubuntu-bionic:/srv/zulip$ exit
|
(zulip-py3-venv) vagrant@debian-10:/srv/zulip$ exit
|
||||||
logout
|
logout
|
||||||
Connection to 127.0.0.1 closed.
|
Connection to 127.0.0.1 closed.
|
||||||
christie@win10 ~/zulip
|
christie@win10 ~/zulip
|
||||||
|
@ -523,7 +523,7 @@ christie@win10 ~/zulip
|
||||||
$ vagrant up
|
$ vagrant up
|
||||||
$ vagrant ssh
|
$ vagrant ssh
|
||||||
|
|
||||||
(zulip-py3-venv) vagrant@ubuntu-bionic:/srv/zulip
|
(zulip-py3-venv) vagrant@debian-10:/srv/zulip
|
||||||
$ ./tools/run-dev.py
|
$ ./tools/run-dev.py
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -788,8 +788,8 @@ by rebooting the guest via `vagrant halt; vagrant up`.
|
||||||
|
|
||||||
The `vagrant up` command basically does the following:
|
The `vagrant up` command basically does the following:
|
||||||
|
|
||||||
- Downloads an Ubuntu image and starts it using a Vagrant provider.
|
- Downloads a Debian image and starts it using a Vagrant provider.
|
||||||
- Uses `vagrant ssh` to connect to that Ubuntu guest, and then runs
|
- Uses `vagrant ssh` to connect to that Debian guest, and then runs
|
||||||
`tools/provision`, which has a lot of subcommands that are
|
`tools/provision`, which has a lot of subcommands that are
|
||||||
executed via Python's `subprocess` module. These errors mean that
|
executed via Python's `subprocess` module. These errors mean that
|
||||||
one of those subcommands failed.
|
one of those subcommands failed.
|
||||||
|
@ -823,7 +823,7 @@ Finally, if you encounter any issues that weren't caused by your
|
||||||
Internet connection, please report them! We try hard to keep Zulip
|
Internet connection, please report them! We try hard to keep Zulip
|
||||||
development environment provisioning free of bugs.
|
development environment provisioning free of bugs.
|
||||||
|
|
||||||
##### `pip install` fails during `vagrant up` on Ubuntu
|
##### `pip install` fails during `vagrant up` on Linux
|
||||||
|
|
||||||
Likely causes are:
|
Likely causes are:
|
||||||
|
|
||||||
|
@ -918,18 +918,18 @@ vagrant reload
|
||||||
vagrant reload --provision
|
vagrant reload --provision
|
||||||
```
|
```
|
||||||
|
|
||||||
### Specifying an Ubuntu mirror
|
### Specifying a Debian mirror
|
||||||
|
|
||||||
Bringing up a development environment for the first time involves
|
Bringing up a development environment for the first time involves
|
||||||
downloading many packages from the Ubuntu archive. The Ubuntu cloud
|
downloading many packages from the Debian archive. The Debian cloud
|
||||||
images use the global mirror `http://archive.ubuntu.com/ubuntu/` by
|
images use the global mirror `http://deb.debian.org/debian` by
|
||||||
default, but you may find that you can speed up the download by using
|
default, but you may find that you can speed up the download by using
|
||||||
a local mirror closer to your location. To do this, create
|
a local mirror closer to your location. To do this, create
|
||||||
`~/.zulip-vagrant-config` and add a line like this, replacing the URL
|
`~/.zulip-vagrant-config` and add a line like this, replacing the URL
|
||||||
as appropriate:
|
as appropriate:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
UBUNTU_MIRROR http://us.archive.ubuntu.com/ubuntu/
|
DEBIAN_MIRROR http://ftp.us.debian.org/debian
|
||||||
```
|
```
|
||||||
|
|
||||||
### Specifying a proxy
|
### Specifying a proxy
|
||||||
|
|
|
@ -62,7 +62,7 @@ branch, or a significant time has passed since you last used it.
|
||||||
### Test an install
|
### Test an install
|
||||||
|
|
||||||
The `test-install` tooling takes a distribution release name
|
The `test-install` tooling takes a distribution release name
|
||||||
(e.g. "focal" or "bionic"), the path to an unpacked release directory
|
(e.g. "focal"), the path to an unpacked release directory
|
||||||
or tarball, and then any of the normal options you want to pass down
|
or tarball, and then any of the normal options you want to pass down
|
||||||
into the installer.
|
into the installer.
|
||||||
|
|
||||||
|
|
|
@ -6,10 +6,9 @@ PostgreSQL 10, 11, 12, and 13 are all supported.
|
||||||
|
|
||||||
Previous versions of Zulip used whatever version of PostgreSQL was
|
Previous versions of Zulip used whatever version of PostgreSQL was
|
||||||
included with the base operating system (E.g. PostgreSQL 12 on Ubuntu
|
included with the base operating system (E.g. PostgreSQL 12 on Ubuntu
|
||||||
Focal, 10 on Ubuntu Bionic, and 9.6 on Ubuntu Xenial). We recommend
|
20.04). We recommend that installations currently using older
|
||||||
that installations currently using older PostgreSQL releases [upgrade
|
PostgreSQL releases [upgrade to PostgreSQL 14][upgrade-postgresql], as
|
||||||
to PostgreSQL 14][upgrade-postgresql], as we may drop support for
|
we may drop support for older PostgreSQL in a future release.
|
||||||
older PostgreSQL in a future release.
|
|
||||||
|
|
||||||
[upgrade-postgresql]: ../production/upgrade-or-modify.html#upgrading-postgresql
|
[upgrade-postgresql]: ../production/upgrade-or-modify.html#upgrading-postgresql
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,6 @@ To run a Zulip server, you will need:
|
||||||
- A dedicated machine or VM
|
- A dedicated machine or VM
|
||||||
- A supported OS:
|
- A supported OS:
|
||||||
- Ubuntu 20.04 Focal
|
- Ubuntu 20.04 Focal
|
||||||
- Ubuntu 18.04 Bionic
|
|
||||||
- Debian 11 Bullseye
|
- Debian 11 Bullseye
|
||||||
- Debian 10 Buster
|
- Debian 10 Buster
|
||||||
- At least 2GB RAM, and 10GB disk space
|
- At least 2GB RAM, and 10GB disk space
|
||||||
|
@ -34,7 +33,7 @@ on issues you'll encounter](install-existing-server.md).
|
||||||
|
|
||||||
#### Operating system
|
#### Operating system
|
||||||
|
|
||||||
Ubuntu 20.04 Focal, 18.04 Bionic, Debian 11 Bullseye, and Debian 10
|
Ubuntu 20.04 Focal, Debian 11 Bullseye, and Debian 10
|
||||||
Buster are supported for running Zulip in production. You can also
|
Buster are supported for running Zulip in production. You can also
|
||||||
run Zulip on other platforms that support Docker using
|
run Zulip on other platforms that support Docker using
|
||||||
[docker-zulip][docker-zulip-homepage].
|
[docker-zulip][docker-zulip-homepage].
|
||||||
|
|
|
@ -257,8 +257,10 @@ instructions for other supported platforms.
|
||||||
|
|
||||||
### Upgrading from Ubuntu 18.04 Bionic to 20.04 Focal
|
### Upgrading from Ubuntu 18.04 Bionic to 20.04 Focal
|
||||||
|
|
||||||
1. Upgrade your server to the latest Zulip release (at least 3.0,
|
1. Upgrade your server to the latest Zulip `3.x` or `4.x` release (at
|
||||||
which adds support for Ubuntu Focal).
|
least 3.0, which adds support for Ubuntu 20.04). You can only
|
||||||
|
upgrade to Zulip 5.0 and newer after completing this process, since
|
||||||
|
newer releases don't support Ubuntu 18.04.
|
||||||
|
|
||||||
2. As the Zulip user, stop the Zulip server and run the following
|
2. As the Zulip user, stop the Zulip server and run the following
|
||||||
to back up the system:
|
to back up the system:
|
||||||
|
@ -354,15 +356,18 @@ instructions for other supported platforms.
|
||||||
be able to navigate to its URL and confirm everything is working
|
be able to navigate to its URL and confirm everything is working
|
||||||
correctly.
|
correctly.
|
||||||
|
|
||||||
6. [Upgrade to the latest Zulip release](#upgrading-to-a-release), now
|
6. [Upgrade to the latest `4.x` release](#upgrading-to-a-release).
|
||||||
that your server is running a supported operating system.
|
|
||||||
|
|
||||||
7. As root, finish by verifying the contents of the full-text indexes:
|
7. As root, verify the contents of the full-text indexes:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
/home/zulip/deployments/current/manage.py audit_fts_indexes
|
/home/zulip/deployments/current/manage.py audit_fts_indexes
|
||||||
```
|
```
|
||||||
|
|
||||||
|
8. [Upgrade from Bionic to
|
||||||
|
Focal](#upgrading-from-ubuntu-18-04-bionic-to-20-04-focal), so that
|
||||||
|
you are running a supported operating system.
|
||||||
|
|
||||||
### Upgrading from Ubuntu 14.04 Trusty to 16.04 Xenial
|
### Upgrading from Ubuntu 14.04 Trusty to 16.04 Xenial
|
||||||
|
|
||||||
1. Upgrade your server to the latest Zulip `2.0.x` release. You can
|
1. Upgrade your server to the latest Zulip `2.0.x` release. You can
|
||||||
|
@ -544,7 +549,7 @@ Starting with Zulip 3.0, we use the latest available version of
|
||||||
PostgreSQL at installation time (currently version 14). Upgrades to
|
PostgreSQL at installation time (currently version 14). Upgrades to
|
||||||
the version of PostgreSQL are no longer linked to upgrades of the
|
the version of PostgreSQL are no longer linked to upgrades of the
|
||||||
distribution; that is, you may opt to upgrade to PostgreSQL 14 while
|
distribution; that is, you may opt to upgrade to PostgreSQL 14 while
|
||||||
running Ubuntu 18.04 Bionic.
|
running Ubuntu 20.04.
|
||||||
|
|
||||||
To upgrade the version of PostgreSQL on the Zulip server:
|
To upgrade the version of PostgreSQL on the Zulip server:
|
||||||
|
|
||||||
|
|
|
@ -120,8 +120,8 @@ extension, used by our [full-text search](full-text-search.md).
|
||||||
## Python packages
|
## Python packages
|
||||||
|
|
||||||
Zulip uses the version of Python itself provided by the host OS for
|
Zulip uses the version of Python itself provided by the host OS for
|
||||||
the Zulip server. We currently support Python 3.6 and newer, with
|
the Zulip server. We currently support Python 3.7 and newer, with
|
||||||
Ubuntu Bionic being the platform requiring 3.6 support. The comments
|
Debian 10 being the platform requiring 3.7 support. The comments
|
||||||
in `.github/workflows/zulip-ci.yml` document the Python versions used
|
in `.github/workflows/zulip-ci.yml` document the Python versions used
|
||||||
by each supported platform.
|
by each supported platform.
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ preparing a new release.
|
||||||
Transifex and commit them.
|
Transifex and commit them.
|
||||||
- Use `build-release-tarball` to generate a release tarball.
|
- Use `build-release-tarball` to generate a release tarball.
|
||||||
- Test the new tarball extensively, both new install and upgrade from last
|
- Test the new tarball extensively, both new install and upgrade from last
|
||||||
release, on both Bionic and Focal.
|
release, on Ubuntu 20.04.
|
||||||
- Repeat until release is ready.
|
- Repeat until release is ready.
|
||||||
- Send around the Paper blog post draft for review.
|
- Send around the Paper blog post draft for review.
|
||||||
- Move the blog post draft to Ghost. (For a draft in Dropbox Paper,
|
- Move the blog post draft to Ghost. (For a draft in Dropbox Paper,
|
||||||
|
|
|
@ -34,17 +34,11 @@ define zulip::external_dep(
|
||||||
require => Zulip::Sha256_Tarball_To[$title],
|
require => Zulip::Sha256_Tarball_To[$title],
|
||||||
}
|
}
|
||||||
|
|
||||||
unless $::operatingsystem == 'Ubuntu' and $::operatingsystemrelease == '18.04' {
|
tidy { "/srv/zulip-${title}-*":
|
||||||
# Puppet 5.5.0 and below make this always-noisy, as they spout out
|
path => '/srv/',
|
||||||
# a notify line about tidying the managed directory above. Skip
|
recurse => 1,
|
||||||
# on Bionic, which has that old version; they'll get tidied upon
|
rmdirs => true,
|
||||||
# upgrade to 20.04.
|
matches => "zulip-${title}-*",
|
||||||
tidy { "/srv/zulip-${title}-*":
|
require => File[$dir],
|
||||||
path => '/srv/',
|
|
||||||
recurse => 1,
|
|
||||||
rmdirs => true,
|
|
||||||
matches => "zulip-${title}-*",
|
|
||||||
require => File[$dir],
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,17 +29,11 @@ class zulip::smokescreen {
|
||||||
ensure => file,
|
ensure => file,
|
||||||
require => Exec['compile smokescreen'],
|
require => Exec['compile smokescreen'],
|
||||||
}
|
}
|
||||||
unless $::operatingsystem == 'Ubuntu' and $::operatingsystemrelease == '18.04' {
|
tidy { '/usr/local/bin/smokescreen-*':
|
||||||
# Puppet 5.5.0 and below make this always-noisy, as they spout out
|
path => '/usr/local/bin',
|
||||||
# a notify line about tidying the managed file above. Skip
|
recurse => 1,
|
||||||
# on Bionic, which has that old version; they'll get tidied upon
|
matches => 'smokescreen-*',
|
||||||
# upgrade to 20.04.
|
require => Exec['compile smokescreen'],
|
||||||
tidy { '/usr/local/bin/smokescreen-*':
|
|
||||||
path => '/usr/local/bin',
|
|
||||||
recurse => 1,
|
|
||||||
matches => 'smokescreen-*',
|
|
||||||
require => Exec['compile smokescreen'],
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$listen_address = zulipconf('http_proxy', 'listen_address', '127.0.0.1')
|
$listen_address = zulipconf('http_proxy', 'listen_address', '127.0.0.1')
|
||||||
|
|
|
@ -8,9 +8,6 @@ Django[argon2]==3.2.*
|
||||||
# needed for Literal, TypedDict
|
# needed for Literal, TypedDict
|
||||||
typing-extensions
|
typing-extensions
|
||||||
|
|
||||||
# Backport of @dataclass
|
|
||||||
dataclasses;python_version<"3.7"
|
|
||||||
|
|
||||||
# Needed for rendering backend templates
|
# Needed for rendering backend templates
|
||||||
Jinja2
|
Jinja2
|
||||||
|
|
||||||
|
|
|
@ -355,18 +355,6 @@ cssutils==2.3.0 \
|
||||||
--hash=sha256:0cf1f6086b020dee18048ff3999339499f725934017ef9ae2cd5bb77f9ab5f46 \
|
--hash=sha256:0cf1f6086b020dee18048ff3999339499f725934017ef9ae2cd5bb77f9ab5f46 \
|
||||||
--hash=sha256:b2d3b16047caae82e5c590036935bafa1b621cf45c2f38885af4be4838f0fd00
|
--hash=sha256:b2d3b16047caae82e5c590036935bafa1b621cf45c2f38885af4be4838f0fd00
|
||||||
# via premailer
|
# via premailer
|
||||||
dataclasses==0.8 ; python_version < "3.7" \
|
|
||||||
--hash=sha256:0201d89fa866f68c8ebd9d08ee6ff50c0b255f8ec63a71c16fda7af82bb887bf \
|
|
||||||
--hash=sha256:8479067f342acf957dc82ec415d355ab5edb7e7646b90dc6e2fd1d96ad084c97
|
|
||||||
# via
|
|
||||||
# -r requirements/common.in
|
|
||||||
# argon2-cffi
|
|
||||||
# black
|
|
||||||
# dataclasses-json
|
|
||||||
# libcst
|
|
||||||
# pyre-check
|
|
||||||
# testslide
|
|
||||||
# werkzeug
|
|
||||||
dataclasses-json==0.5.6 \
|
dataclasses-json==0.5.6 \
|
||||||
--hash=sha256:1d7f3a284a49d350ddbabde0e7d0c5ffa34a144aaf1bcb5b9f2c87673ff0c76e \
|
--hash=sha256:1d7f3a284a49d350ddbabde0e7d0c5ffa34a144aaf1bcb5b9f2c87673ff0c76e \
|
||||||
--hash=sha256:1f60be3405dee30b86ffbf6a436db8ba5efaeeb676bfda358e516a97aa7dfce4
|
--hash=sha256:1f60be3405dee30b86ffbf6a436db8ba5efaeeb676bfda358e516a97aa7dfce4
|
||||||
|
|
|
@ -217,13 +217,6 @@ cssutils==2.3.0 \
|
||||||
--hash=sha256:0cf1f6086b020dee18048ff3999339499f725934017ef9ae2cd5bb77f9ab5f46 \
|
--hash=sha256:0cf1f6086b020dee18048ff3999339499f725934017ef9ae2cd5bb77f9ab5f46 \
|
||||||
--hash=sha256:b2d3b16047caae82e5c590036935bafa1b621cf45c2f38885af4be4838f0fd00
|
--hash=sha256:b2d3b16047caae82e5c590036935bafa1b621cf45c2f38885af4be4838f0fd00
|
||||||
# via premailer
|
# via premailer
|
||||||
dataclasses==0.8 ; python_version < "3.7" \
|
|
||||||
--hash=sha256:0201d89fa866f68c8ebd9d08ee6ff50c0b255f8ec63a71c16fda7af82bb887bf \
|
|
||||||
--hash=sha256:8479067f342acf957dc82ec415d355ab5edb7e7646b90dc6e2fd1d96ad084c97
|
|
||||||
# via
|
|
||||||
# -r requirements/common.in
|
|
||||||
# argon2-cffi
|
|
||||||
# werkzeug
|
|
||||||
decorator==5.1.0 \
|
decorator==5.1.0 \
|
||||||
--hash=sha256:7b12e7c3c6ab203a29e157335e9122cb03de9ab7264b137594103fd4a683b374 \
|
--hash=sha256:7b12e7c3c6ab203a29e157335e9122cb03de9ab7264b137594103fd4a683b374 \
|
||||||
--hash=sha256:e59913af105b9860aa2c8d3272d9de5a56a4e608db9a2f167a8480b323d529a7
|
--hash=sha256:e59913af105b9860aa2c8d3272d9de5a56a4e608db9a2f167a8480b323d529a7
|
||||||
|
|
|
@ -212,7 +212,7 @@ if [ -f /etc/os-release ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case "$os_id$os_version_id" in
|
case "$os_id$os_version_id" in
|
||||||
debian10 | debian11 | ubuntu18.04 | ubuntu20.04) ;;
|
debian10 | debian11 | ubuntu20.04) ;;
|
||||||
*)
|
*)
|
||||||
set +x
|
set +x
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
|
@ -222,7 +222,6 @@ Unsupported OS release: $os_id $os_version_id
|
||||||
Zulip in production is supported only on:
|
Zulip in production is supported only on:
|
||||||
- Debian 10 "buster"
|
- Debian 10 "buster"
|
||||||
- Debian 11 "bullseye"
|
- Debian 11 "bullseye"
|
||||||
- Ubuntu 18.04 LTS "bionic"
|
|
||||||
- Ubuntu 20.04 LTS "focal"
|
- Ubuntu 20.04 LTS "focal"
|
||||||
|
|
||||||
For more information, see:
|
For more information, see:
|
||||||
|
|
|
@ -61,6 +61,7 @@ def error_desupported_os(vendor: str, os_version: str) -> "NoReturn":
|
||||||
UNSUPPORTED_DISTROS = [
|
UNSUPPORTED_DISTROS = [
|
||||||
("ubuntu", "14.04"),
|
("ubuntu", "14.04"),
|
||||||
("ubuntu", "16.04"),
|
("ubuntu", "16.04"),
|
||||||
|
("ubuntu", "18.04"),
|
||||||
("debian", "9"),
|
("debian", "9"),
|
||||||
]
|
]
|
||||||
distro_info = parse_os_release()
|
distro_info = parse_os_release()
|
||||||
|
@ -127,7 +128,6 @@ if os.path.exists("/etc/init.d/postgresql"):
|
||||||
if not postgresql_version:
|
if not postgresql_version:
|
||||||
default_postgresql_version = {
|
default_postgresql_version = {
|
||||||
("debian", "10"): "11",
|
("debian", "10"): "11",
|
||||||
("ubuntu", "18.04"): "10",
|
|
||||||
("ubuntu", "20.04"): "12",
|
("ubuntu", "20.04"): "12",
|
||||||
("centos", "7"): "11",
|
("centos", "7"): "11",
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
deb http://www.ksplice.com/apt bionic ksplice
|
|
||||||
deb-src http://www.ksplice.com/apt bionic ksplice
|
|
|
@ -1 +0,0 @@
|
||||||
deb https://deb.releases.teleport.dev/ stable main
|
|
|
@ -1,5 +0,0 @@
|
||||||
deb http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main
|
|
||||||
deb-src http://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main
|
|
||||||
|
|
||||||
deb http://ppa.launchpad.net/groonga/ppa/ubuntu bionic main
|
|
||||||
deb-src http://ppa.launchpad.net/groonga/ppa/ubuntu bionic main
|
|
|
@ -1,5 +0,0 @@
|
||||||
deb http://apt.postgresql.org/pub/repos/apt/ cosmic-pgdg main
|
|
||||||
deb-src http://apt.postgresql.org/pub/repos/apt/ cosmic-pgdg main
|
|
||||||
|
|
||||||
deb http://ppa.launchpad.net/groonga/ppa/ubuntu cosmic main
|
|
||||||
deb-src http://ppa.launchpad.net/groonga/ppa/ubuntu cosmic main
|
|
|
@ -1,5 +0,0 @@
|
||||||
deb http://apt.postgresql.org/pub/repos/apt/ disco-pgdg main
|
|
||||||
deb-src http://apt.postgresql.org/pub/repos/apt/ disco-pgdg main
|
|
||||||
|
|
||||||
deb http://ppa.launchpad.net/groonga/ppa/ubuntu disco main
|
|
||||||
deb-src http://ppa.launchpad.net/groonga/ppa/ubuntu disco main
|
|
|
@ -1,5 +0,0 @@
|
||||||
deb http://apt.postgresql.org/pub/repos/apt/ eoan-pgdg main
|
|
||||||
deb-src http://apt.postgresql.org/pub/repos/apt/ eoan-pgdg main
|
|
||||||
|
|
||||||
deb http://ppa.launchpad.net/groonga/ppa/ubuntu eoan main
|
|
||||||
deb-src http://ppa.launchpad.net/groonga/ppa/ubuntu eoan main
|
|
|
@ -258,7 +258,7 @@ After running the above command, you should see something similar to:
|
||||||
Using `manage.py` from within the Zulip development environment:
|
Using `manage.py` from within the Zulip development environment:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
(zulip-py3-venv) vagrant@ubuntu-bionic:/srv/zulip$
|
(zulip-py3-venv) vagrant@debian-10:/srv/zulip$
|
||||||
./manage.py send_webhook_fixture_message \
|
./manage.py send_webhook_fixture_message \
|
||||||
--fixture=zerver/webhooks/helloworld/fixtures/hello.json \
|
--fixture=zerver/webhooks/helloworld/fixtures/hello.json \
|
||||||
'--url=http://localhost:9991/api/v1/external/helloworld?api_key=<api_key>'
|
'--url=http://localhost:9991/api/v1/external/helloworld?api_key=<api_key>'
|
||||||
|
@ -384,7 +384,7 @@ Once you have written some tests, you can run just these new tests from within
|
||||||
the Zulip development environment with this command:
|
the Zulip development environment with this command:
|
||||||
|
|
||||||
```console
|
```console
|
||||||
(zulip-py3-venv) vagrant@ubuntu-bionic:/srv/zulip$
|
(zulip-py3-venv) vagrant@debian-10:/srv/zulip$
|
||||||
./tools/test-backend zerver/webhooks/helloworld
|
./tools/test-backend zerver/webhooks/helloworld
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -433,7 +433,7 @@ stream name:
|
||||||
To trigger a notification using this webhook, use
|
To trigger a notification using this webhook, use
|
||||||
`send_webhook_fixture_message` from the Zulip command line:
|
`send_webhook_fixture_message` from the Zulip command line:
|
||||||
|
|
||||||
(zulip-py3-venv) vagrant@ubuntu-bionic:/srv/zulip$
|
(zulip-py3-venv) vagrant@debian-10:/srv/zulip$
|
||||||
./manage.py send_webhook_fixture_message \
|
./manage.py send_webhook_fixture_message \
|
||||||
--fixture=zerver/tests/fixtures/helloworld/hello.json \
|
--fixture=zerver/tests/fixtures/helloworld/hello.json \
|
||||||
'--url=http://localhost:9991/api/v1/external/helloworld?api_key=<api_key>'
|
'--url=http://localhost:9991/api/v1/external/helloworld?api_key=<api_key>'
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
# Dockerfile for a generic Ubuntu image with just the basics we need
|
# Dockerfile for a generic Debian/Ubuntu image with just the basics we
|
||||||
# to make it suitable for CI. In particular:
|
# need to make it suitable for CI. In particular:
|
||||||
# * a non-root user to run as (a pain to try to do in setup,
|
# * a non-root user to run as (a pain to try to do in setup,
|
||||||
# because by then we've already cloned the repo);
|
# because by then we've already cloned the repo);
|
||||||
# * Git and other basic utilities.
|
# * Git and other basic utilities.
|
||||||
|
|
||||||
# To rebuild from this file for a given release, say Ubuntu 18.04 bionic:
|
# To rebuild from this file for a given release, say Ubuntu 20.04 focal:
|
||||||
# docker build . --build-arg=BASE_IMAGE=ubuntu:18.04 --pull --tag=zulip/ci:bionic
|
# docker build . --build-arg=BASE_IMAGE=ubuntu:20.04 --pull --tag=zulip/ci:focal
|
||||||
# docker push zulip/ci:bionic
|
# docker push zulip/ci:focal
|
||||||
#
|
#
|
||||||
# tools/ci/build-docker-images will rebuild all images, but not push them.
|
# tools/ci/build-docker-images will rebuild all images, but not push them.
|
||||||
|
|
||||||
|
@ -18,16 +18,6 @@ RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime
|
||||||
# Set the locale.
|
# Set the locale.
|
||||||
ENV LC_ALL C.UTF-8
|
ENV LC_ALL C.UTF-8
|
||||||
|
|
||||||
# Upgrade git if it is less than v2.18 because GitHub Actions'
|
|
||||||
# checkout installs source code using Rest API as an optimization
|
|
||||||
# if the version is less than v2.18, which causes failure in provision
|
|
||||||
# and tests because of the lack of git being initialized.
|
|
||||||
RUN if (. /etc/os-release && [ "$ID $VERSION_ID" = 'ubuntu 18.04' ]); then \
|
|
||||||
apt-get update && \
|
|
||||||
apt-get -y install software-properties-common && \
|
|
||||||
add-apt-repository -y ppa:git-core/ppa; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Extra packages used by Zulip.
|
# Extra packages used by Zulip.
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& apt-get -y install --no-install-recommends \
|
&& apt-get -y install --no-install-recommends \
|
||||||
|
|
|
@ -9,11 +9,6 @@ FROM $BASE_IMAGE
|
||||||
# Remove already existing rabbitmq mnesia directory files
|
# Remove already existing rabbitmq mnesia directory files
|
||||||
RUN sudo rm -rf /var/lib/rabbitmq/mnesia/*
|
RUN sudo rm -rf /var/lib/rabbitmq/mnesia/*
|
||||||
|
|
||||||
# The bionic hack used in production suite
|
|
||||||
RUN if (. /etc/os-release && [ "$ID $VERSION_ID" = 'ubuntu 18.04' ]); then \
|
|
||||||
sudo sed -i '/^bind/s/bind.*/bind 0.0.0.0/' /etc/redis/redis.conf; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Download the release tarball, start rabbitmq server and install the server
|
# Download the release tarball, start rabbitmq server and install the server
|
||||||
ARG VERSION
|
ARG VERSION
|
||||||
RUN cd $(mktemp -d) \
|
RUN cd $(mktemp -d) \
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -eux
|
set -eux
|
||||||
cd "$(dirname "${BASH_SOURCE[0]}")"
|
cd "$(dirname "${BASH_SOURCE[0]}")"
|
||||||
docker build . --build-arg=BASE_IMAGE=ubuntu:18.04 --pull --tag=zulip/ci:bionic
|
|
||||||
docker build . --build-arg=BASE_IMAGE=ubuntu:20.04 --pull --tag=zulip/ci:focal
|
docker build . --build-arg=BASE_IMAGE=ubuntu:20.04 --pull --tag=zulip/ci:focal
|
||||||
docker build . --build-arg=BASE_IMAGE=debian:10 --pull --tag=zulip/ci:buster
|
docker build . --build-arg=BASE_IMAGE=debian:10 --pull --tag=zulip/ci:buster
|
||||||
docker build . --build-arg=BASE_IMAGE=debian:bullseye --pull --tag=zulip/ci:bullseye
|
docker build . --build-arg=BASE_IMAGE=debian:11 --pull --tag=zulip/ci:bullseye
|
||||||
docker build . -f Dockerfile.prod --build-arg=BASE_IMAGE=zulip/ci:buster --build-arg=VERSION=3.4 --tag=zulip/ci:buster-3.4
|
docker build . -f Dockerfile.prod --build-arg=BASE_IMAGE=zulip/ci:buster --build-arg=VERSION=3.4 --tag=zulip/ci:buster-3.4
|
||||||
docker build . -f Dockerfile.prod --build-arg=BASE_IMAGE=zulip/ci:bullseye --build-arg=VERSION=4.7 --tag=zulip/ci:bullseye-4.7
|
docker build . -f Dockerfile.prod --build-arg=BASE_IMAGE=zulip/ci:bullseye --build-arg=VERSION=4.7 --tag=zulip/ci:bullseye-4.7
|
||||||
|
|
|
@ -3,3 +3,4 @@
|
||||||
Consider using the “h1” element as a top-level heading only \(all “h1” elements are treated as top-level headings by many screen readers and other tools\)\.
|
Consider using the “h1” element as a top-level heading only \(all “h1” elements are treated as top-level headings by many screen readers and other tools\)\.
|
||||||
Document uses the Unicode Private Use Area\(s\), which should not be used in publicly exchanged documents\. \(Charmod C073\)
|
Document uses the Unicode Private Use Area\(s\), which should not be used in publicly exchanged documents\. \(Charmod C073\)
|
||||||
Section lacks heading\. Consider using “h2”-“h6” elements to add identifying headings to all sections\.
|
Section lacks heading\. Consider using “h2”-“h6” elements to add identifying headings to all sections\.
|
||||||
|
Document uses the Unicode Private Use Area\(s\), which should not be used in publicly exchanged documents\. \(Charmod C073\)
|
||||||
|
|
|
@ -83,8 +83,6 @@ if vendor == "debian" and os_version == "10": # buster
|
||||||
POSTGRESQL_VERSION = "11"
|
POSTGRESQL_VERSION = "11"
|
||||||
elif vendor == "debian" and os_version == "11": # bullseye
|
elif vendor == "debian" and os_version == "11": # bullseye
|
||||||
POSTGRESQL_VERSION = "13"
|
POSTGRESQL_VERSION = "13"
|
||||||
elif vendor == "ubuntu" and os_version == "18.04": # bionic
|
|
||||||
POSTGRESQL_VERSION = "10"
|
|
||||||
elif vendor == "ubuntu" and os_version == "20.04": # focal
|
elif vendor == "ubuntu" and os_version == "20.04": # focal
|
||||||
POSTGRESQL_VERSION = "12"
|
POSTGRESQL_VERSION = "12"
|
||||||
elif vendor == "ubuntu" and os_version == "21.10": # impish
|
elif vendor == "ubuntu" and os_version == "21.10": # impish
|
||||||
|
|
|
@ -19,7 +19,7 @@ fi
|
||||||
|
|
||||||
os="$(. /etc/os-release && echo "$ID $VERSION_ID")"
|
os="$(. /etc/os-release && echo "$ID $VERSION_ID")"
|
||||||
case "$os" in
|
case "$os" in
|
||||||
'ubuntu 14.04' | 'ubuntu 16.04')
|
'ubuntu 14.04' | 'ubuntu 16.04' | 'ubuntu 18.04')
|
||||||
echo "Error: $os is no longer a supported platform for Zulip." >&2
|
echo "Error: $os is no longer a supported platform for Zulip." >&2
|
||||||
if [ -e /home/vagrant ]; then
|
if [ -e /home/vagrant ]; then
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
|
@ -32,8 +32,8 @@ esac
|
||||||
|
|
||||||
python_version="$(python3 --version)"
|
python_version="$(python3 --version)"
|
||||||
case "$python_version" in
|
case "$python_version" in
|
||||||
Python\ 3.[0-5].*)
|
Python\ 3.[0-6].*)
|
||||||
echo 'Error: Zulip requires an OS with Python 3.6 or later.' >&2
|
echo 'Error: Zulip requires an OS with Python 3.7 or later.' >&2
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
|
@ -1,18 +1,12 @@
|
||||||
FROM ubuntu:18.04
|
FROM debian:10
|
||||||
|
|
||||||
ARG UBUNTU_MIRROR
|
ARG DEBIAN_MIRROR
|
||||||
|
|
||||||
# Basic packages and dependencies of docker-systemctl-replacement
|
# Basic packages and dependencies of docker-systemctl-replacement
|
||||||
RUN echo locales locales/default_environment_locale select C.UTF-8 | debconf-set-selections \
|
RUN echo locales locales/default_environment_locale select C.UTF-8 | debconf-set-selections \
|
||||||
&& echo locales locales/locales_to_be_generated select "C.UTF-8 UTF-8" | debconf-set-selections \
|
&& echo locales locales/locales_to_be_generated select "C.UTF-8 UTF-8" | debconf-set-selections \
|
||||||
&& { [ ! "$UBUNTU_MIRROR" ] || sed -i "s|http://\(\w*\.\)*archive\.ubuntu\.com/ubuntu/\? |$UBUNTU_MIRROR |" /etc/apt/sources.list; } \
|
&& { [ ! "$DEBIAN_MIRROR" ] || sed -i "s|http://\(\w*\.\)*\.debian\.org/debian |$DEBIAN_MIRROR |" /etc/apt/sources.list; } \
|
||||||
# This restores man pages and other documentation that have been
|
&& apt-get update \
|
||||||
# stripped from the default Ubuntu cloud image and installs
|
|
||||||
# ubuntu-minimal and ubuntu-standard.
|
|
||||||
#
|
|
||||||
# This makes sense to do because we're using this image as a
|
|
||||||
# development environment, not a minimal production system.
|
|
||||||
&& printf 'y\n\n' | unminimize \
|
|
||||||
&& apt-get install --no-install-recommends -y \
|
&& apt-get install --no-install-recommends -y \
|
||||||
ca-certificates \
|
ca-certificates \
|
||||||
curl \
|
curl \
|
||||||
|
@ -39,7 +33,7 @@ RUN \
|
||||||
&& mkdir -p /run/sshd \
|
&& mkdir -p /run/sshd \
|
||||||
# docker-systemctl-replacement doesn’t work with template units yet:
|
# docker-systemctl-replacement doesn’t work with template units yet:
|
||||||
# https://github.com/gdraheim/docker-systemctl-replacement/issues/62
|
# https://github.com/gdraheim/docker-systemctl-replacement/issues/62
|
||||||
&& ln -ns /lib/systemd/system/postgresql@.service /etc/systemd/system/multi-user.target.wants/postgresql@10-main.service \
|
&& ln -ns /lib/systemd/system/postgresql@.service /etc/systemd/system/multi-user.target.wants/postgresql@11-main.service \
|
||||||
# redis fails to start with the default configuration if IPv6 is disabled:
|
# redis fails to start with the default configuration if IPv6 is disabled:
|
||||||
# https://github.com/antirez/redis/pull/5598
|
# https://github.com/antirez/redis/pull/5598
|
||||||
&& dpkg-divert --add --rename /etc/default/redis-server \
|
&& dpkg-divert --add --rename /etc/default/redis-server \
|
||||||
|
|
|
@ -10,9 +10,6 @@ RELEASE="$1"
|
||||||
ARCH=amd64 # TODO: maybe i686 too
|
ARCH=amd64 # TODO: maybe i686 too
|
||||||
|
|
||||||
case "$RELEASE" in
|
case "$RELEASE" in
|
||||||
bionic)
|
|
||||||
extra_packages=(python-pip)
|
|
||||||
;;
|
|
||||||
focal)
|
focal)
|
||||||
extra_packages=(python3-pip)
|
extra_packages=(python3-pip)
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -48,4 +48,4 @@ API_FEATURE_LEVEL = 113
|
||||||
# historical commits sharing the same major version, in which case a
|
# historical commits sharing the same major version, in which case a
|
||||||
# minor version bump suffices.
|
# minor version bump suffices.
|
||||||
|
|
||||||
PROVISION_VERSION = "169.2"
|
PROVISION_VERSION = "169.3"
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
import inspect
|
import inspect
|
||||||
import os
|
import os
|
||||||
import sys
|
|
||||||
from collections import abc
|
from collections import abc
|
||||||
from typing import Any, Callable, Dict, List, Mapping, Optional, Sequence, Set, Tuple, Union
|
from typing import Any, Callable, Dict, List, Optional, Sequence, Set, Tuple, Union
|
||||||
from unittest.mock import MagicMock, patch
|
from unittest.mock import MagicMock, patch
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
@ -328,15 +327,6 @@ so maybe we shouldn't mark it as intentionally undocumented in the URLs.
|
||||||
needs to be mapped to list."""
|
needs to be mapped to list."""
|
||||||
|
|
||||||
origin = getattr(t, "__origin__", None)
|
origin = getattr(t, "__origin__", None)
|
||||||
if sys.version_info < (3, 7): # nocoverage
|
|
||||||
if origin == List:
|
|
||||||
origin = list
|
|
||||||
elif origin == Dict:
|
|
||||||
origin = dict
|
|
||||||
elif origin == Mapping:
|
|
||||||
origin = abc.Mapping
|
|
||||||
elif origin == Sequence:
|
|
||||||
origin = abc.Sequence
|
|
||||||
|
|
||||||
if not origin:
|
if not origin:
|
||||||
# Then it's most likely one of the fundamental data types
|
# Then it's most likely one of the fundamental data types
|
||||||
|
|
|
@ -17,7 +17,7 @@ integration](/api/incoming-webhooks-walkthrough).
|
||||||
`send_webhook_fixture_message` from a [Zulip development
|
`send_webhook_fixture_message` from a [Zulip development
|
||||||
environment](https://zulip.readthedocs.io/en/latest/development/overview.html):
|
environment](https://zulip.readthedocs.io/en/latest/development/overview.html):
|
||||||
|
|
||||||
(zulip-py3-venv) vagrant@ubuntu-bionic:/srv/zulip$
|
(zulip-py3-venv) vagrant@debian-10:/srv/zulip$
|
||||||
./manage.py send_webhook_fixture_message \
|
./manage.py send_webhook_fixture_message \
|
||||||
> --fixture=zerver/tests/fixtures/helloworld/hello.json \
|
> --fixture=zerver/tests/fixtures/helloworld/hello.json \
|
||||||
> '--url=http://localhost:9991/api/v1/external/helloworld?api_key=<api_key>'
|
> '--url=http://localhost:9991/api/v1/external/helloworld?api_key=<api_key>'
|
||||||
|
|
Loading…
Reference in New Issue