mirror of https://github.com/zulip/zulip.git
docs: Convert .html#fragment links to .md#fragment.
This uses the myst_heading_anchors option to automatically generate header anchors and make Sphinx aware of them. See https://myst-parser.readthedocs.io/en/latest/syntax/optional.html#auto-generated-header-anchors. Note: to be compatible with GitHub, MyST-Parser uses a slightly different convention for .md fragment links than .html fragment links when punctuation is involved. This does not affect the generated fragment links in the HTML output. Fixes #13264. Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
parent
dacf136f21
commit
75525f5b53
|
@ -36,6 +36,7 @@ myst_enable_extensions = [
|
||||||
"colon_fence",
|
"colon_fence",
|
||||||
"substitution",
|
"substitution",
|
||||||
]
|
]
|
||||||
|
myst_heading_anchors = 6
|
||||||
myst_substitutions = {
|
myst_substitutions = {
|
||||||
"LATEST_RELEASE_VERSION": LATEST_RELEASE_VERSION,
|
"LATEST_RELEASE_VERSION": LATEST_RELEASE_VERSION,
|
||||||
}
|
}
|
||||||
|
|
|
@ -237,8 +237,8 @@ We also strongly recommend reviewers to go through the following resources.
|
||||||
- [Zulip code of conduct](../code-of-conduct.md)
|
- [Zulip code of conduct](../code-of-conduct.md)
|
||||||
|
|
||||||
[code-style]: code-style.md
|
[code-style]: code-style.md
|
||||||
[commit-messages]: version-control.html#commit-messages
|
[commit-messages]: version-control.md#commit-messages
|
||||||
[test-writing]: ../testing/testing.md
|
[test-writing]: ../testing/testing.md
|
||||||
[mypy]: ../testing/mypy.md
|
[mypy]: ../testing/mypy.md
|
||||||
[git tool]: ../git/zulip-tools.html#fetch-a-pull-request-and-rebase
|
[git tool]: ../git/zulip-tools.md#fetch-a-pull-request-and-rebase
|
||||||
[translation]: ../translating/translating.md
|
[translation]: ../translating/translating.md
|
||||||
|
|
|
@ -28,7 +28,7 @@ your GSoC experience with the Zulip project will be highly interactive.
|
||||||
|
|
||||||
As part of our commitment to mentorship, Zulip has over 160,000 words of
|
As part of our commitment to mentorship, Zulip has over 160,000 words of
|
||||||
[documentation for
|
[documentation for
|
||||||
developers](../index.html#welcome-to-the-zulip-documentation), much of it
|
developers](../index.md#welcome-to-the-zulip-documentation), much of it
|
||||||
designed to explain not just how Zulip works, but why Zulip works the way that
|
designed to explain not just how Zulip works, but why Zulip works the way that
|
||||||
it does. To learn more about our mission and values, check out [this blog
|
it does. To learn more about our mission and values, check out [this blog
|
||||||
post](https://blog.zulip.com/2021/04/28/why-zulip-is-on-github-sponsors/)!
|
post](https://blog.zulip.com/2021/04/28/why-zulip-is-on-github-sponsors/)!
|
||||||
|
@ -67,7 +67,7 @@ also give you a feel for what it's like to do GSoC with us.
|
||||||
|
|
||||||
We have an easy-to-set-up development environment, and a library of
|
We have an easy-to-set-up development environment, and a library of
|
||||||
tasks that are great for first-time contributors. Use
|
tasks that are great for first-time contributors. Use
|
||||||
[our first-time Zulip developer guide](../overview/contributing.html#your-first-codebase-contribution)
|
[our first-time Zulip developer guide](../overview/contributing.md#your-first-codebase-contribution)
|
||||||
to get your Zulip development environment set up and to find your first issue. If you have any
|
to get your Zulip development environment set up and to find your first issue. If you have any
|
||||||
trouble, please speak up in the
|
trouble, please speak up in the
|
||||||
[#GSoC](https://chat.zulip.org/#narrow/stream/14-GSoC) stream on the
|
[#GSoC](https://chat.zulip.org/#narrow/stream/14-GSoC) stream on the
|
||||||
|
@ -135,7 +135,7 @@ For the first time in 2022, being a student is not required in order to apply to
|
||||||
GSoC. We are happy to accept both student and non-student participants.
|
GSoC. We are happy to accept both student and non-student participants.
|
||||||
|
|
||||||
Our documentation on [what makes a great Zulip
|
Our documentation on [what makes a great Zulip
|
||||||
contributor](../overview/contributing.html#what-makes-a-great-zulip-contributor)
|
contributor](../overview/contributing.md#what-makes-a-great-zulip-contributor)
|
||||||
offers some additional helpful information. We also recommend reviewing the
|
offers some additional helpful information. We also recommend reviewing the
|
||||||
[official GSoC
|
[official GSoC
|
||||||
resources](https://developers.google.com/open-source/gsoc/resources/),
|
resources](https://developers.google.com/open-source/gsoc/resources/),
|
||||||
|
@ -169,7 +169,7 @@ other contributors learn from reading the conversation.
|
||||||
- [Try, Then Ask](https://www.mattringel.com/2013/09/30/you-must-try-and-then-you-must-ask/)
|
- [Try, Then Ask](https://www.mattringel.com/2013/09/30/you-must-try-and-then-you-must-ask/)
|
||||||
- [We Aren’t Just Making Code, We’re Making History](https://www.harihareswara.net/sumana/2016/10/12/0)
|
- [We Aren’t Just Making Code, We’re Making History](https://www.harihareswara.net/sumana/2016/10/12/0)
|
||||||
- [How to Ask Good Questions](https://jvns.ca/blog/good-questions/)
|
- [How to Ask Good Questions](https://jvns.ca/blog/good-questions/)
|
||||||
- Understand [what makes a great Zulip contributor](../overview/contributing.html#what-makes-a-great-zulip-contributor)
|
- Understand [what makes a great Zulip contributor](../overview/contributing.md#what-makes-a-great-zulip-contributor)
|
||||||
|
|
||||||
This is a typical question/response sequence:
|
This is a typical question/response sequence:
|
||||||
|
|
||||||
|
|
|
@ -139,7 +139,7 @@ commit message.
|
||||||
**Tip:** You can set up [Zulip's Git pre-commit hook][commit-hook] to
|
**Tip:** You can set up [Zulip's Git pre-commit hook][commit-hook] to
|
||||||
automatically catch common mistakes in the commit message itself.
|
automatically catch common mistakes in the commit message itself.
|
||||||
|
|
||||||
[commit-hook]: ../git/zulip-tools.html#set-up-git-repo-script
|
[commit-hook]: ../git/zulip-tools.md#set-up-git-repo-script
|
||||||
|
|
||||||
### Message body:
|
### Message body:
|
||||||
|
|
||||||
|
|
|
@ -140,14 +140,14 @@ URL they post back to, which isn't supported directly by the Zulip
|
||||||
development environment. If you run a
|
development environment. If you run a
|
||||||
[remote Zulip development server](remote.md), we have
|
[remote Zulip development server](remote.md), we have
|
||||||
instructions for
|
instructions for
|
||||||
[an nginx reverse proxy with SSL](remote.html#using-an-nginx-reverse-proxy)
|
[an nginx reverse proxy with SSL](remote.md#using-an-nginx-reverse-proxy)
|
||||||
that you can use for your development efforts.
|
that you can use for your development efforts.
|
||||||
|
|
||||||
## Testing LDAP in development
|
## Testing LDAP in development
|
||||||
|
|
||||||
Before Zulip 2.0, one of the more common classes of bug reports with
|
Before Zulip 2.0, one of the more common classes of bug reports with
|
||||||
Zulip's authentication was users having trouble getting [LDAP
|
Zulip's authentication was users having trouble getting [LDAP
|
||||||
authentication](../production/authentication-methods.html#ldap-including-active-directory)
|
authentication](../production/authentication-methods.md#ldap-including-active-directory)
|
||||||
working. The root cause was because setting up a local LDAP server
|
working. The root cause was because setting up a local LDAP server
|
||||||
for development was difficult, which meant most developers were unable
|
for development was difficult, which meant most developers were unable
|
||||||
to work on fixing even simple issues with it.
|
to work on fixing even simple issues with it.
|
||||||
|
@ -161,7 +161,7 @@ actual flows for LDAP configuration.
|
||||||
- To enable fakeldap, set `FAKE_LDAP_MODE` in
|
- To enable fakeldap, set `FAKE_LDAP_MODE` in
|
||||||
`zproject/dev_settings.py` to one of the following options. For more
|
`zproject/dev_settings.py` to one of the following options. For more
|
||||||
information on these modes, refer to
|
information on these modes, refer to
|
||||||
[our production docs](../production/authentication-methods.html#ldap-including-active-directory):
|
[our production docs](../production/authentication-methods.md#ldap-including-active-directory):
|
||||||
|
|
||||||
- `a`: If users' email addresses are in LDAP and used as username.
|
- `a`: If users' email addresses are in LDAP and used as username.
|
||||||
- `b`: If LDAP only has usernames but email addresses are of the form
|
- `b`: If LDAP only has usernames but email addresses are of the form
|
||||||
|
|
|
@ -76,12 +76,12 @@ machine, take a look at our tips for
|
||||||
[developing remotely][dev-remote].
|
[developing remotely][dev-remote].
|
||||||
|
|
||||||
[dev-remote]: remote.md
|
[dev-remote]: remote.md
|
||||||
[install-direct]: setup-advanced.html#installing-directly-on-ubuntu-debian-centos-or-fedora
|
[install-direct]: setup-advanced.md#installing-directly-on-ubuntu-debian-centos-or-fedora
|
||||||
[install-vagrant]: setup-vagrant.md
|
[install-vagrant]: setup-vagrant.md
|
||||||
[self-install-remote]: #installing-remotely
|
[self-install-remote]: #installing-remotely
|
||||||
[self-slow-internet]: #slow-internet-connections
|
[self-slow-internet]: #slow-internet-connections
|
||||||
[configure-proxy]: setup-vagrant.html#specifying-a-proxy
|
[configure-proxy]: setup-vagrant.md#specifying-a-proxy
|
||||||
[using-dev-env]: using.md
|
[using-dev-env]: using.md
|
||||||
[testing]: ../testing/testing.md
|
[testing]: ../testing/testing.md
|
||||||
[ci]: ../git/cloning.html#step-3-configure-continuous-integration-for-your-fork
|
[ci]: ../git/cloning.md#step-3-configure-continuous-integration-for-your-fork
|
||||||
[install-via-wsl]: setup-advanced.html#installing-directly-on-windows-10-with-wsl-2
|
[install-via-wsl]: setup-advanced.md#installing-directly-on-windows-10-with-wsl-2
|
||||||
|
|
|
@ -270,7 +270,7 @@ Next, read the following to learn more about developing for Zulip:
|
||||||
- [Using the development environment][rtd-using-dev-env]
|
- [Using the development environment][rtd-using-dev-env]
|
||||||
- [Testing][rtd-testing]
|
- [Testing][rtd-testing]
|
||||||
|
|
||||||
[install-direct]: setup-advanced.html#installing-directly-on-ubuntu-debian-centos-or-fedora
|
[install-direct]: setup-advanced.md#installing-directly-on-ubuntu-debian-centos-or-fedora
|
||||||
[install-vagrant]: setup-vagrant.md
|
[install-vagrant]: setup-vagrant.md
|
||||||
[rtd-git-guide]: ../git/index.md
|
[rtd-git-guide]: ../git/index.md
|
||||||
[rtd-using-dev-env]: using.md
|
[rtd-using-dev-env]: using.md
|
||||||
|
@ -292,7 +292,7 @@ that the user is `zulipdev`; edit accordingly if the situation is
|
||||||
different.
|
different.
|
||||||
|
|
||||||
1. First, get an SSL certificate; you can use
|
1. First, get an SSL certificate; you can use
|
||||||
[our certbot wrapper script used for production](../production/ssl-certificates.html#certbot-recommended)
|
[our certbot wrapper script used for production](../production/ssl-certificates.md#certbot-recommended)
|
||||||
by running the following commands as root:
|
by running the following commands as root:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
|
@ -23,7 +23,7 @@ You can just run the Zulip provision script on your machine.
|
||||||
**Note**: You should not use the `root` user to run the installation.
|
**Note**: You should not use the `root` user to run the installation.
|
||||||
If you are using a [remote server](remote.md), see
|
If you are using a [remote server](remote.md), see
|
||||||
the
|
the
|
||||||
[section on creating appropriate user accounts](remote.html#setting-up-user-accounts).
|
[section on creating appropriate user accounts](remote.md#setting-up-user-accounts).
|
||||||
|
|
||||||
:::{warning}
|
:::{warning}
|
||||||
There is no supported uninstallation process with this
|
There is no supported uninstallation process with this
|
||||||
|
@ -50,7 +50,7 @@ source /srv/zulip-py3-venv/bin/activate
|
||||||
|
|
||||||
Once you've done the above setup, you can pick up the [documentation
|
Once you've done the above setup, you can pick up the [documentation
|
||||||
on using the Zulip development
|
on using the Zulip development
|
||||||
environment](setup-vagrant.html#step-4-developing),
|
environment](setup-vagrant.md#step-4-developing),
|
||||||
ignoring the parts about `vagrant` (since you're not using it).
|
ignoring the parts about `vagrant` (since you're not using it).
|
||||||
|
|
||||||
## Installing directly on Windows 10 with WSL 2
|
## Installing directly on Windows 10 with WSL 2
|
||||||
|
@ -101,7 +101,7 @@ installation method described here.
|
||||||
cd ~ # or cd /home/USERNAME
|
cd ~ # or cd /home/USERNAME
|
||||||
```
|
```
|
||||||
|
|
||||||
1. [Create your fork](../git/cloning.html#step-1a-create-your-fork) of
|
1. [Create your fork](../git/cloning.md#step-1a-create-your-fork) of
|
||||||
the [Zulip server repository](https://github.com/zulip/zulip).
|
the [Zulip server repository](https://github.com/zulip/zulip).
|
||||||
|
|
||||||
1. [Create a new SSH key][create-ssh-key] for the WSL-2 Virtual
|
1. [Create a new SSH key][create-ssh-key] for the WSL-2 Virtual
|
||||||
|
@ -151,7 +151,7 @@ installation method described here.
|
||||||
to open VSCode connected to your WSL environment.
|
to open VSCode connected to your WSL environment.
|
||||||
|
|
||||||
1. You're done! You can pick up the [documentation on using the
|
1. You're done! You can pick up the [documentation on using the
|
||||||
Zulip development environment](setup-vagrant.html#step-4-developing),
|
Zulip development environment](setup-vagrant.md#step-4-developing),
|
||||||
ignoring the parts about `vagrant` (since you're not using it).
|
ignoring the parts about `vagrant` (since you're not using it).
|
||||||
|
|
||||||
WSL 2 can be uninstalled by following [Microsoft's documentation][uninstall-wsl]
|
WSL 2 can be uninstalled by following [Microsoft's documentation][uninstall-wsl]
|
||||||
|
@ -302,5 +302,5 @@ submit a pull request, or you can ask for help in
|
||||||
in [the Zulip development community](https://zulip.com/development-community/),
|
in [the Zulip development community](https://zulip.com/development-community/),
|
||||||
and a core team member can help guide you through adding support for the platform.
|
and a core team member can help guide you through adding support for the platform.
|
||||||
|
|
||||||
[zulip-rtd-git-cloning]: ../git/cloning.html#step-1b-clone-to-your-machine
|
[zulip-rtd-git-cloning]: ../git/cloning.md#step-1b-clone-to-your-machine
|
||||||
[zulip-rtd-git-connect]: ../git/cloning.html#step-1c-connect-your-fork-to-zulip-upstream
|
[zulip-rtd-git-connect]: ../git/cloning.md#step-1c-connect-your-fork-to-zulip-upstream
|
||||||
|
|
|
@ -12,7 +12,7 @@ all related services will run.
|
||||||
Contents:
|
Contents:
|
||||||
|
|
||||||
- [Requirements](#requirements)
|
- [Requirements](#requirements)
|
||||||
- [Step 0: Set up Git & GitHub](#step-0-set-up-git-github)
|
- [Step 0: Set up Git & GitHub](#step-0-set-up-git--github)
|
||||||
- [Step 1: Install prerequisites](#step-1-install-prerequisites)
|
- [Step 1: Install prerequisites](#step-1-install-prerequisites)
|
||||||
- [Step 2: Get Zulip code](#step-2-get-zulip-code)
|
- [Step 2: Get Zulip code](#step-2-get-zulip-code)
|
||||||
- [Step 3: Start the development environment](#step-3-start-the-development-environment)
|
- [Step 3: Start the development environment](#step-3-start-the-development-environment)
|
||||||
|
@ -151,7 +151,7 @@ Debian](https://docs.docker.com/install/linux/docker-ce/debian/).
|
||||||
#### Windows 10
|
#### Windows 10
|
||||||
|
|
||||||
:::{note}
|
:::{note}
|
||||||
We recommend using [WSL 2 for Windows development](setup-advanced.html#installing-directly-on-windows-10-with-wsl-2).
|
We recommend using [WSL 2 for Windows development](setup-advanced.md#installing-directly-on-windows-10-with-wsl-2).
|
||||||
:::
|
:::
|
||||||
|
|
||||||
1. Install [Git for Windows][git-bash], which installs _Git BASH_.
|
1. Install [Git for Windows][git-bash], which installs _Git BASH_.
|
||||||
|
@ -236,8 +236,8 @@ projects and to instead follow these instructions exactly.)
|
||||||
2. Open Terminal (macOS/Linux) 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.md#step-1b-clone-to-your-machine) and
|
||||||
[connect the Zulip upstream repository](../git/cloning.html#step-1c-connect-your-fork-to-zulip-upstream):
|
[connect the Zulip upstream repository](../git/cloning.md#step-1c-connect-your-fork-to-zulip-upstream):
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
git clone --config pull.rebase git@github.com:YOURUSERNAME/zulip.git
|
git clone --config pull.rebase git@github.com:YOURUSERNAME/zulip.git
|
||||||
|
@ -1049,4 +1049,4 @@ remove the `GUEST_CPUS` and `GUEST_MEMORY_MB` lines from
|
||||||
[git-bash]: https://git-for-windows.github.io/
|
[git-bash]: https://git-for-windows.github.io/
|
||||||
[bash-admin-setup]: https://superuser.com/questions/1002262/run-applications-as-administrator-by-default-in-windows-10
|
[bash-admin-setup]: https://superuser.com/questions/1002262/run-applications-as-administrator-by-default-in-windows-10
|
||||||
[set-up-git]: ../git/setup.md
|
[set-up-git]: ../git/setup.md
|
||||||
[ci]: ../git/cloning.html#step-3-configure-continuous-integration-for-your-fork
|
[ci]: ../git/cloning.md#step-3-configure-continuous-integration-for-your-fork
|
||||||
|
|
|
@ -23,7 +23,7 @@ the development environment][authentication-dev-server].
|
||||||
- After making changes, you'll often want to run the
|
- After making changes, you'll often want to run the
|
||||||
[linters](../testing/linters.md) and relevant [test
|
[linters](../testing/linters.md) and relevant [test
|
||||||
suites](../testing/testing.md). Consider using our [Git pre-commit
|
suites](../testing/testing.md). Consider using our [Git pre-commit
|
||||||
hook](../git/zulip-tools.html#set-up-git-repo-script) to
|
hook](../git/zulip-tools.md#set-up-git-repo-script) to
|
||||||
automatically lint whenever you make a commit.
|
automatically lint whenever you make a commit.
|
||||||
- All of our test suites are designed to support quickly testing just
|
- All of our test suites are designed to support quickly testing just
|
||||||
a single file or test case, which you should take advantage of to
|
a single file or test case, which you should take advantage of to
|
||||||
|
|
|
@ -247,7 +247,7 @@ above.
|
||||||
defined OpenAPI schema. Use `test-backend --rerun` for a fast
|
defined OpenAPI schema. Use `test-backend --rerun` for a fast
|
||||||
edit/refresh cycle when debugging.
|
edit/refresh cycle when debugging.
|
||||||
|
|
||||||
[rest-api-tutorial]: ../tutorials/writing-views.html#writing-api-rest-endpoints
|
[rest-api-tutorial]: ../tutorials/writing-views.md#writing-api-rest-endpoints
|
||||||
|
|
||||||
1. Add a function for the endpoint you'd like to document to
|
1. Add a function for the endpoint you'd like to document to
|
||||||
`zerver/openapi/python_examples.py`, decorated with
|
`zerver/openapi/python_examples.py`, decorated with
|
||||||
|
|
|
@ -134,7 +134,7 @@ recommend running locally when making significant edits:
|
||||||
|
|
||||||
- `tools/lint` catches a number of common mistakes, and we highly
|
- `tools/lint` catches a number of common mistakes, and we highly
|
||||||
recommend
|
recommend
|
||||||
[using our linter pre-commit hook](../git/zulip-tools.html#set-up-git-repo-script).
|
[using our linter pre-commit hook](../git/zulip-tools.md#set-up-git-repo-script).
|
||||||
See the [main linter doc](../testing/linters.md) for more details.
|
See the [main linter doc](../testing/linters.md) for more details.
|
||||||
|
|
||||||
- The ReadTheDocs docs are built and the links tested by
|
- The ReadTheDocs docs are built and the links tested by
|
||||||
|
|
|
@ -112,5 +112,5 @@ See also [fixing commits][fix-commit]
|
||||||
- `git status`: show the working tree status, unstaged and staged files
|
- `git status`: show the working tree status, unstaged and staged files
|
||||||
|
|
||||||
[fix-commit]: fixing-commits.md
|
[fix-commit]: fixing-commits.md
|
||||||
[git-config-clone]: cloning.html#step-1b-clone-to-your-machine
|
[git-config-clone]: cloning.md#step-1b-clone-to-your-machine
|
||||||
[git-overview]: overview.md
|
[git-overview]: overview.md
|
||||||
|
|
|
@ -137,4 +137,4 @@ You can check the `Actions` tab of your repository to see the builds.
|
||||||
[github-actions]: https://docs.github.com/en/actions
|
[github-actions]: https://docs.github.com/en/actions
|
||||||
[zulip-rtd-dev-first-time]: ../development/setup-vagrant.md
|
[zulip-rtd-dev-first-time]: ../development/setup-vagrant.md
|
||||||
[zulip-rtd-dev-overview]: ../development/overview.md
|
[zulip-rtd-dev-overview]: ../development/overview.md
|
||||||
[zulip-rtd-tools-setup]: zulip-tools.html#set-up-git-repo-script
|
[zulip-rtd-tools-setup]: zulip-tools.md#set-up-git-repo-script
|
||||||
|
|
|
@ -56,4 +56,4 @@ tools/fetch-pull-request <PR-number>
|
||||||
```
|
```
|
||||||
|
|
||||||
[github-help-co-pr-locally]: https://help.github.com/en/articles/checking-out-pull-requests-locally
|
[github-help-co-pr-locally]: https://help.github.com/en/articles/checking-out-pull-requests-locally
|
||||||
[tools-pr]: zulip-tools.html#fetch-a-pull-request-and-rebase
|
[tools-pr]: zulip-tools.md#fetch-a-pull-request-and-rebase
|
||||||
|
|
|
@ -59,12 +59,12 @@ Git workflow, or if you'd like a Git refresher.
|
||||||
[github-zulip]: https://github.com/zulip/
|
[github-zulip]: https://github.com/zulip/
|
||||||
[github-zulip-zulip]: https://github.com/zulip/zulip/
|
[github-zulip-zulip]: https://github.com/zulip/zulip/
|
||||||
[continuous-integration]: ../testing/continuous-integration.md
|
[continuous-integration]: ../testing/continuous-integration.md
|
||||||
[zulip-git-guide-fork-ci]: cloning.html#step-3-configure-continuous-integration-for-your-fork
|
[zulip-git-guide-fork-ci]: cloning.md#step-3-configure-continuous-integration-for-your-fork
|
||||||
[zulip-rtd-code-style]: ../contributing/code-style.md
|
[zulip-rtd-code-style]: ../contributing/code-style.md
|
||||||
[zulip-rtd-commit-discipline]: ../contributing/version-control.html#commit-discipline
|
[zulip-rtd-commit-discipline]: ../contributing/version-control.md#commit-discipline
|
||||||
[zulip-rtd-commit-messages]: ../contributing/version-control.html#commit-messages
|
[zulip-rtd-commit-messages]: ../contributing/version-control.md#commit-messages
|
||||||
[zulip-rtd-dev-overview]: ../development/overview.md
|
[zulip-rtd-dev-overview]: ../development/overview.md
|
||||||
[zulip-rtd-lint-tools]: ../contributing/code-style.html#lint-tools
|
[zulip-rtd-lint-tools]: ../contributing/code-style.md#lint-tools
|
||||||
[zulip-rtd-mypy]: ../testing/mypy.md
|
[zulip-rtd-mypy]: ../testing/mypy.md
|
||||||
[zulip-rtd-testing]: ../testing/testing.md
|
[zulip-rtd-testing]: ../testing/testing.md
|
||||||
[zulip-rtd-zulip-tools]: zulip-tools.md
|
[zulip-rtd-zulip-tools]: zulip-tools.md
|
||||||
|
|
|
@ -29,7 +29,7 @@ work from being merged before you're confident in it.
|
||||||
### Step 0: Make sure you're on a feature branch (not `main`)
|
### Step 0: Make sure you're on a feature branch (not `main`)
|
||||||
|
|
||||||
It is important to [work on a feature
|
It is important to [work on a feature
|
||||||
branch](using.html#work-on-a-feature-branch) when creating a pull
|
branch](using.md#work-on-a-feature-branch) when creating a pull
|
||||||
request. Your new pull request will be inextricably linked with your
|
request. Your new pull request will be inextricably linked with your
|
||||||
branch while it is open, so you will need to reserve your branch only
|
branch while it is open, so you will need to reserve your branch only
|
||||||
for changes related to your issue, and avoid introducing extraneous
|
for changes related to your issue, and avoid introducing extraneous
|
||||||
|
@ -158,7 +158,7 @@ for another review.
|
||||||
[github-help-about-pr]: https://help.github.com/en/articles/about-pull-requests
|
[github-help-about-pr]: https://help.github.com/en/articles/about-pull-requests
|
||||||
[github-help-create-pr-fork]: https://help.github.com/en/articles/creating-a-pull-request-from-a-fork
|
[github-help-create-pr-fork]: https://help.github.com/en/articles/creating-a-pull-request-from-a-fork
|
||||||
[images-create-pr]: ../images/zulip-open-pr.png
|
[images-create-pr]: ../images/zulip-open-pr.png
|
||||||
[keep-up-to-date]: using.html#keep-your-fork-up-to-date
|
[keep-up-to-date]: using.md#keep-your-fork-up-to-date
|
||||||
[self-push-commits]: using.html#push-your-commits-to-github
|
[self-push-commits]: using.md#push-your-commits-to-github
|
||||||
[screenshots-gifs]: ../tutorials/screenshot-and-gif-software.md
|
[screenshots-gifs]: ../tutorials/screenshot-and-gif-software.md
|
||||||
[wip-prs]: #work-in-progress-pull-requests
|
[wip-prs]: #work-in-progress-pull-requests
|
||||||
|
|
|
@ -49,7 +49,7 @@ text-mode interface to Git.
|
||||||
|
|
||||||
And, if none of the above are to your liking, try [one of these][gitbook-guis].
|
And, if none of the above are to your liking, try [one of these][gitbook-guis].
|
||||||
|
|
||||||
[git-bash-admin]: ../development/setup-vagrant.html#running-git-bash-as-an-administrator
|
[git-bash-admin]: ../development/setup-vagrant.md#running-git-bash-as-an-administrator
|
||||||
[gitbook-aliases]: https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases
|
[gitbook-aliases]: https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases
|
||||||
[gitbook-config]: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
|
[gitbook-config]: https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration
|
||||||
[gitbook-guis]: https://git-scm.com/downloads/guis
|
[gitbook-guis]: https://git-scm.com/downloads/guis
|
||||||
|
|
|
@ -275,8 +275,8 @@ keep,** you'll need to use `git log FETCH_HEAD` to identify that hashes of the
|
||||||
commits you want to keep and then `git cherry-pick <commit>` those commits into
|
commits you want to keep and then `git cherry-pick <commit>` those commits into
|
||||||
whichever branch you need to update.
|
whichever branch you need to update.
|
||||||
|
|
||||||
[clone-to-your-machine]: cloning.html#step-1b-clone-to-your-machine
|
[clone-to-your-machine]: cloning.md#step-1b-clone-to-your-machine
|
||||||
[connect-upstream]: cloning.html#step-1c-connect-your-fork-to-zulip-upstream
|
[connect-upstream]: cloning.md#step-1c-connect-your-fork-to-zulip-upstream
|
||||||
[gitbook-advanced-merging]: https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_advanced_merging
|
[gitbook-advanced-merging]: https://git-scm.com/book/en/v2/Git-Tools-Advanced-Merging#_advanced_merging
|
||||||
[gitbook-basic-merge-conflicts]: https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging#Basic-Merge-Conflicts
|
[gitbook-basic-merge-conflicts]: https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging#Basic-Merge-Conflicts
|
||||||
[gitbook-git-cherry-pick]: https://git-scm.com/docs/git-cherry-pick
|
[gitbook-git-cherry-pick]: https://git-scm.com/docs/git-cherry-pick
|
||||||
|
|
|
@ -451,7 +451,7 @@ complicated rebase.
|
||||||
[github-help-rebase]: https://help.github.com/en/articles/using-git-rebase
|
[github-help-rebase]: https://help.github.com/en/articles/using-git-rebase
|
||||||
[github-help-sync-fork]: https://help.github.com/en/articles/syncing-a-fork
|
[github-help-sync-fork]: https://help.github.com/en/articles/syncing-a-fork
|
||||||
[how-git-is-different]: the-git-difference.md
|
[how-git-is-different]: the-git-difference.md
|
||||||
[self-multiple-computers]: troubleshooting.html#working-from-multiple-computers
|
[self-multiple-computers]: troubleshooting.md#working-from-multiple-computers
|
||||||
[zulip-git-guide-up-to-date]: #keep-your-fork-up-to-date
|
[zulip-git-guide-up-to-date]: #keep-your-fork-up-to-date
|
||||||
[zulip-rtd-commit-discipline]: ../contributing/version-control.html#commit-discipline
|
[zulip-rtd-commit-discipline]: ../contributing/version-control.md#commit-discipline
|
||||||
[zulip-rtd-commit-messages]: ../contributing/version-control.html#commit-messages
|
[zulip-rtd-commit-messages]: ../contributing/version-control.md#commit-messages
|
||||||
|
|
|
@ -176,5 +176,5 @@ git rebase --continue
|
||||||
```
|
```
|
||||||
|
|
||||||
[github-zulip-zulip]: https://github.com/zulip/zulip/
|
[github-zulip-zulip]: https://github.com/zulip/zulip/
|
||||||
[zulip-git-guide-fetch-pr]: collaborate.html#check-out-a-pull-request-locally
|
[zulip-git-guide-fetch-pr]: collaborate.md#check-out-a-pull-request-locally
|
||||||
[zulip-git-guide-ci]: cloning.html#step-3-configure-continuous-integration-for-your-fork
|
[zulip-git-guide-ci]: cloning.md#step-3-configure-continuous-integration-for-your-fork
|
||||||
|
|
|
@ -108,9 +108,9 @@ feed.
|
||||||
|
|
||||||
For more details on the frontend, see our documentation on
|
For more details on the frontend, see our documentation on
|
||||||
[translation](../translating/translating.md),
|
[translation](../translating/translating.md),
|
||||||
[templates](../subsystems/html-css.html#html-templates),
|
[templates](../subsystems/html-css.md#html-templates),
|
||||||
[directory structure](directory-structure.md), and
|
[directory structure](directory-structure.md), and
|
||||||
[the static asset pipeline](../subsystems/html-css.html#static-asset-pipeline).
|
[the static asset pipeline](../subsystems/html-css.md#static-asset-pipeline).
|
||||||
|
|
||||||
[jinja2]: http://jinja.pocoo.org/
|
[jinja2]: http://jinja.pocoo.org/
|
||||||
[handlebars]: https://handlebarsjs.com/
|
[handlebars]: https://handlebarsjs.com/
|
||||||
|
|
|
@ -414,8 +414,8 @@ log][commit-log] for an up-to-date list of raw changes.
|
||||||
major release.
|
major release.
|
||||||
|
|
||||||
[docker-zulip-manual]: https://github.com/zulip/docker-zulip#manual-configuration
|
[docker-zulip-manual]: https://github.com/zulip/docker-zulip#manual-configuration
|
||||||
[smokescreen]: ../production/deployment.html#customizing-the-outgoing-http-proxy
|
[smokescreen]: ../production/deployment.md#customizing-the-outgoing-http-proxy
|
||||||
[update-settings-docs]: ../production/upgrade-or-modify.html#updating-settings-py-inline-documentation
|
[update-settings-docs]: ../production/upgrade-or-modify.md#updating-settingspy-inline-documentation
|
||||||
|
|
||||||
#### Full feature changelog
|
#### Full feature changelog
|
||||||
|
|
||||||
|
@ -534,7 +534,7 @@ log][commit-log] for an up-to-date list of raw changes.
|
||||||
codebase with Prettier.
|
codebase with Prettier.
|
||||||
- Migrated testing from CircleCI to GitHub Actions.
|
- Migrated testing from CircleCI to GitHub Actions.
|
||||||
|
|
||||||
[zulip-conf-settings]: ../production/deployment.html#system-and-deployment-configuration
|
[zulip-conf-settings]: ../production/deployment.md#system-and-deployment-configuration
|
||||||
|
|
||||||
## Zulip 3.x series
|
## Zulip 3.x series
|
||||||
|
|
||||||
|
@ -703,8 +703,8 @@ log][commit-log] for an up-to-date list of raw changes.
|
||||||
- The changelog now has a section that makes it easy to find the
|
- The changelog now has a section that makes it easy to find the
|
||||||
Upgrade notes for all releases one is upgrading across.
|
Upgrade notes for all releases one is upgrading across.
|
||||||
|
|
||||||
[manage-shell]: ../production/management-commands.html#manage-py-shell
|
[manage-shell]: ../production/management-commands.md#managepy-shell
|
||||||
[postgresql-upgrade]: ../production/upgrade-or-modify.html#upgrading-postgresql
|
[postgresql-upgrade]: ../production/upgrade-or-modify.md#upgrading-postgresql
|
||||||
|
|
||||||
#### Full feature changelog
|
#### Full feature changelog
|
||||||
|
|
||||||
|
@ -998,7 +998,7 @@ details.
|
||||||
- We merged significant preparatory work for supporting RHEL/CentOS in
|
- We merged significant preparatory work for supporting RHEL/CentOS in
|
||||||
production. We're now interested in beta testers for this feature.
|
production. We're now interested in beta testers for this feature.
|
||||||
- Reorganized Zulip's documentation for sysadmins, and added [new
|
- Reorganized Zulip's documentation for sysadmins, and added [new
|
||||||
documentation](../production/upgrade-or-modify.html#modifying-zulip)
|
documentation](../production/upgrade-or-modify.md#modifying-zulip)
|
||||||
on maintaining a fork of Zulip.
|
on maintaining a fork of Zulip.
|
||||||
- Added new `streams:public` search operator that searches the public
|
- Added new `streams:public` search operator that searches the public
|
||||||
history of all streams in the organization (even before you joined).
|
history of all streams in the organization (even before you joined).
|
||||||
|
@ -1034,7 +1034,7 @@ details.
|
||||||
Zulip how to look up a user in LDAP given their email address:
|
Zulip how to look up a user in LDAP given their email address:
|
||||||
`AUTH_LDAP_REVERSE_EMAIL_SEARCH` and `AUTH_LDAP_USERNAME_ATTR`. See
|
`AUTH_LDAP_REVERSE_EMAIL_SEARCH` and `AUTH_LDAP_USERNAME_ATTR`. See
|
||||||
the [LDAP configuration
|
the [LDAP configuration
|
||||||
instructions](../production/authentication-methods.html#ldap-including-active-directory)
|
instructions](../production/authentication-methods.md#ldap-including-active-directory)
|
||||||
for details. You can use the usual `manage.py query_ldap` method to
|
for details. You can use the usual `manage.py query_ldap` method to
|
||||||
verify whether your configuration is working correctly.
|
verify whether your configuration is working correctly.
|
||||||
- The Zulip web and desktop apps have been converted to directly count
|
- The Zulip web and desktop apps have been converted to directly count
|
||||||
|
@ -1302,7 +1302,7 @@ details.
|
||||||
and is enabled by default in that case. To disable it, set
|
and is enabled by default in that case. To disable it, set
|
||||||
`SUBMIT_USAGE_STATISTICS = False` in `/etc/zulip/settings.py`.
|
`SUBMIT_USAGE_STATISTICS = False` in `/etc/zulip/settings.py`.
|
||||||
|
|
||||||
[mpns-statistics-docs]: ../production/mobile-push-notifications.html#submitting-statistics
|
[mpns-statistics-docs]: ../production/mobile-push-notifications.md#submitting-statistics
|
||||||
|
|
||||||
#### Full feature changelog
|
#### Full feature changelog
|
||||||
|
|
||||||
|
@ -1460,7 +1460,7 @@ Zulip installations; it has minimal changes for existing servers.
|
||||||
- Renamed the hotkey for starring a message to Ctrl+S.
|
- Renamed the hotkey for starring a message to Ctrl+S.
|
||||||
- Added the new `SOCIAL_AUTH_SUBDOMAIN` setting, which all servers using
|
- Added the new `SOCIAL_AUTH_SUBDOMAIN` setting, which all servers using
|
||||||
both GitHub authentication and hosting multiple Zulip organizations
|
both GitHub authentication and hosting multiple Zulip organizations
|
||||||
should set (see [the docs for details](../production/multiple-organizations.html#authentication)).
|
should set (see [the docs for details](../production/multiple-organizations.md#authentication)).
|
||||||
- Added automatic thumbnailing of images, powered by thumbor. The new
|
- Added automatic thumbnailing of images, powered by thumbor. The new
|
||||||
THUMBOR_URL setting controls this feature; it is disabled by default
|
THUMBOR_URL setting controls this feature; it is disabled by default
|
||||||
in this release, because the mobile apps don't support it yet.
|
in this release, because the mobile apps don't support it yet.
|
||||||
|
@ -2462,15 +2462,15 @@ running a version from before 1.7 should upgrade directly to 1.7.1.
|
||||||
This section links to the upgrade notes from past releases, so you can
|
This section links to the upgrade notes from past releases, so you can
|
||||||
easily read them all when upgrading across multiple releases.
|
easily read them all when upgrading across multiple releases.
|
||||||
|
|
||||||
- [Draft upgrade notes for 5.0](#upgrade-notes-for-5-0)
|
- [Draft upgrade notes for 5.0](#upgrade-notes-for-50)
|
||||||
- [Upgrade notes for 4.0](#upgrade-notes-for-4-0)
|
- [Upgrade notes for 4.0](#upgrade-notes-for-40)
|
||||||
- [Upgrade notes for 3.0](#upgrade-notes-for-3-0)
|
- [Upgrade notes for 3.0](#upgrade-notes-for-30)
|
||||||
- [Upgrade notes for 2.1.5](#upgrade-notes-for-2-1-5)
|
- [Upgrade notes for 2.1.5](#upgrade-notes-for-215)
|
||||||
- [Upgrade notes for 2.1.0](#upgrade-notes-for-2-1-0)
|
- [Upgrade notes for 2.1.0](#upgrade-notes-for-210)
|
||||||
- [Upgrade notes for 2.0.0](#upgrade-notes-for-2-0-0)
|
- [Upgrade notes for 2.0.0](#upgrade-notes-for-200)
|
||||||
- [Upgrade notes for 1.9.0](#upgrade-notes-for-1-9-0)
|
- [Upgrade notes for 1.9.0](#upgrade-notes-for-190)
|
||||||
- [Upgrade notes for 1.8.0](#upgrade-notes-for-1-8-0)
|
- [Upgrade notes for 1.8.0](#upgrade-notes-for-180)
|
||||||
- [Upgrade notes for 1.7.0](#upgrade-notes-for-1-7-0)
|
- [Upgrade notes for 1.7.0](#upgrade-notes-for-170)
|
||||||
|
|
||||||
[docker-zulip]: https://github.com/zulip/docker-zulip
|
[docker-zulip]: https://github.com/zulip/docker-zulip
|
||||||
[commit-log]: https://github.com/zulip/zulip/commits/main
|
[commit-log]: https://github.com/zulip/zulip/commits/main
|
||||||
|
|
|
@ -108,7 +108,7 @@ release series except in rare cases involving a security issue or
|
||||||
critical bug just after publishing a major release.
|
critical bug just after publishing a major release.
|
||||||
|
|
||||||
[blog-major-releases]: https://blog.zulip.com/tag/major-releases/
|
[blog-major-releases]: https://blog.zulip.com/tag/major-releases/
|
||||||
[upgrade-from-git]: ../production/upgrade-or-modify.html#upgrading-from-a-git-repository
|
[upgrade-from-git]: ../production/upgrade-or-modify.md#upgrading-from-a-git-repository
|
||||||
|
|
||||||
### Security releases
|
### Security releases
|
||||||
|
|
||||||
|
@ -184,7 +184,7 @@ GitHub issue. Please an include an explanation of your use case: such
|
||||||
details can be extremely helpful in designing appropriately general
|
details can be extremely helpful in designing appropriately general
|
||||||
solutions, and also helps us identify cases where an existing solution
|
solutions, and also helps us identify cases where an existing solution
|
||||||
can solve your problem. See [Reporting
|
can solve your problem. See [Reporting
|
||||||
issues](contributing.html#reporting-issues) for more details.
|
issues](contributing.md#reporting-issues) for more details.
|
||||||
|
|
||||||
## Client apps
|
## Client apps
|
||||||
|
|
||||||
|
@ -227,10 +227,10 @@ core community, like the Python and JavaScript bindings, are released
|
||||||
independently as needed.
|
independently as needed.
|
||||||
|
|
||||||
[electron]: https://www.electronjs.org/
|
[electron]: https://www.electronjs.org/
|
||||||
[upgrading-to-main]: ../production/upgrade-or-modify.html#upgrading-to-main
|
[upgrading-to-main]: ../production/upgrade-or-modify.md#upgrading-to-main
|
||||||
[os-upgrade]: ../production/upgrade-or-modify.html#upgrading-the-operating-system
|
[os-upgrade]: ../production/upgrade-or-modify.md#upgrading-the-operating-system
|
||||||
[chat-zulip-org]: https://zulip.com/development-community/
|
[chat-zulip-org]: https://zulip.com/development-community/
|
||||||
[fork-zulip]: ../production/upgrade-or-modify.html#modifying-zulip
|
[fork-zulip]: ../production/upgrade-or-modify.md#modifying-zulip
|
||||||
[zulip-server]: https://github.com/zulip/zulip
|
[zulip-server]: https://github.com/zulip/zulip
|
||||||
[mobile-beta]: https://github.com/zulip/zulip-mobile#using-the-beta
|
[mobile-beta]: https://github.com/zulip/zulip-mobile#using-the-beta
|
||||||
[label-blocker]: https://github.com/zulip/zulip/issues?q=is%3Aissue+is%3Aopen+label%3A%22priority%3A+blocker%22
|
[label-blocker]: https://github.com/zulip/zulip/issues?q=is%3Aissue+is%3Aopen+label%3A%22priority%3A+blocker%22
|
||||||
|
|
|
@ -384,7 +384,7 @@ it as follows:
|
||||||
the "SAML ACS url" in SAML terminology.
|
the "SAML ACS url" in SAML terminology.
|
||||||
|
|
||||||
If you're
|
If you're
|
||||||
[hosting multiple organizations](multiple-organizations.html#authentication),
|
[hosting multiple organizations](multiple-organizations.md#authentication),
|
||||||
you need to use `SOCIAL_AUTH_SUBDOMAIN`. For example,
|
you need to use `SOCIAL_AUTH_SUBDOMAIN`. For example,
|
||||||
if `SOCIAL_AUTH_SUBDOMAIN="auth"` and `EXTERNAL_HOST=zulip.example.com`,
|
if `SOCIAL_AUTH_SUBDOMAIN="auth"` and `EXTERNAL_HOST=zulip.example.com`,
|
||||||
this should be `https://auth.zulip.example.com/complete/saml/`.
|
this should be `https://auth.zulip.example.com/complete/saml/`.
|
||||||
|
@ -876,4 +876,4 @@ passwordless login as any user in a development environment. It's
|
||||||
mentioned on this page only for completeness.
|
mentioned on this page only for completeness.
|
||||||
|
|
||||||
[custom-profile-fields]: https://zulip.com/help/add-custom-profile-fields
|
[custom-profile-fields]: https://zulip.com/help/add-custom-profile-fields
|
||||||
[update-inline-comments]: upgrade-or-modify.html#updating-settings-py-inline-documentation
|
[update-inline-comments]: upgrade-or-modify.md#updating-settingspy-inline-documentation
|
||||||
|
|
|
@ -18,8 +18,8 @@ git clone https://github.com/zulip/zulip.git zulip-server-git
|
||||||
```
|
```
|
||||||
|
|
||||||
and then
|
and then
|
||||||
[continue the normal installation instructions](install.html#step-2-install-zulip).
|
[continue the normal installation instructions](install.md#step-2-install-zulip).
|
||||||
You can also [upgrade Zulip from Git](upgrade-or-modify.html#upgrading-from-a-git-repository).
|
You can also [upgrade Zulip from Git](upgrade-or-modify.md#upgrading-from-a-git-repository).
|
||||||
|
|
||||||
The most common use case for this is upgrading to `main` to get a
|
The most common use case for this is upgrading to `main` to get a
|
||||||
feature that hasn't made it into an official release yet (often
|
feature that hasn't made it into an official release yet (often
|
||||||
|
@ -33,8 +33,8 @@ In particular, we are always very glad to investigate problems with
|
||||||
installing Zulip from `main`; they are rare and help us ensure that
|
installing Zulip from `main`; they are rare and help us ensure that
|
||||||
our next major release has a reliable install experience.
|
our next major release has a reliable install experience.
|
||||||
|
|
||||||
[upgrade-to-main]: upgrade-or-modify.html#upgrading-to-main
|
[upgrade-to-main]: upgrade-or-modify.md#upgrading-to-main
|
||||||
[upgrade-to-future-release]: upgrade-or-modify.html#upgrading-to-future-releases
|
[upgrade-to-future-release]: upgrade-or-modify.md#upgrading-to-future-releases
|
||||||
|
|
||||||
## Zulip in Docker
|
## Zulip in Docker
|
||||||
|
|
||||||
|
@ -49,7 +49,7 @@ specific reason to prefer Docker.
|
||||||
|
|
||||||
The Zulip installer supports the following advanced installer options
|
The Zulip installer supports the following advanced installer options
|
||||||
as well as those mentioned in the
|
as well as those mentioned in the
|
||||||
[install](install.html#installer-options) documentation:
|
[install](install.md#installer-options) documentation:
|
||||||
|
|
||||||
- `--postgresql-version`: Sets the version of PostgreSQL that will be
|
- `--postgresql-version`: Sets the version of PostgreSQL that will be
|
||||||
installed. We currently support PostgreSQL 10, 11, 12, 13, and 14.
|
installed. We currently support PostgreSQL 10, 11, 12, 13, and 14.
|
||||||
|
@ -269,7 +269,7 @@ In Zulip 4.7 and older, to enable SSRF protection via Smokescreen, you
|
||||||
will need to explicitly add the `zulip::profile::smokescreen` Puppet
|
will need to explicitly add the `zulip::profile::smokescreen` Puppet
|
||||||
class, and configure the `[http_proxy]` block as above.
|
class, and configure the `[http_proxy]` block as above.
|
||||||
|
|
||||||
[proxy.enable_for_camo]: #enable-for-camo
|
[proxy.enable_for_camo]: #enable_for_camo
|
||||||
[smokescreen]: https://github.com/stripe/smokescreen
|
[smokescreen]: https://github.com/stripe/smokescreen
|
||||||
[smokescreen-acls]: https://github.com/stripe/smokescreen#acls
|
[smokescreen-acls]: https://github.com/stripe/smokescreen#acls
|
||||||
[ssrf]: https://owasp.org/www-community/attacks/Server_Side_Request_Forgery
|
[ssrf]: https://owasp.org/www-community/attacks/Server_Side_Request_Forgery
|
||||||
|
@ -535,7 +535,7 @@ configuration of `pg_hba.conf` and client certificates on the
|
||||||
replica.
|
replica.
|
||||||
|
|
||||||
[warm-standby]: https://www.postgresql.org/docs/current/warm-standby.html
|
[warm-standby]: https://www.postgresql.org/docs/current/warm-standby.html
|
||||||
[wal-g]: export-and-import.html#backup-details
|
[wal-g]: export-and-import.md#backup-details
|
||||||
|
|
||||||
## System and deployment configuration
|
## System and deployment configuration
|
||||||
|
|
||||||
|
@ -565,7 +565,7 @@ Any other value (including the empty string) is considered false.
|
||||||
A comma-separated list of the Puppet classes to install on the server.
|
A comma-separated list of the Puppet classes to install on the server.
|
||||||
The most common is **`zulip::profile::standalone`**, used for a
|
The most common is **`zulip::profile::standalone`**, used for a
|
||||||
stand-alone single-host deployment.
|
stand-alone single-host deployment.
|
||||||
[Components](../overview/architecture-overview.html#components) of
|
[Components](../overview/architecture-overview.md#components) of
|
||||||
that include:
|
that include:
|
||||||
|
|
||||||
- **`zulip::profile::app_frontend`**
|
- **`zulip::profile::app_frontend`**
|
||||||
|
@ -575,13 +575,13 @@ that include:
|
||||||
- **`zulip::profile::rabbitmq`**
|
- **`zulip::profile::rabbitmq`**
|
||||||
|
|
||||||
If you are using a [Apache as a single-sign-on
|
If you are using a [Apache as a single-sign-on
|
||||||
authenticator](authentication-methods.html#apache-based-sso-with-remote-user),
|
authenticator](authentication-methods.md#apache-based-sso-with-remote_user),
|
||||||
you will need to add **`zulip::apache_sso`** to the list.
|
you will need to add **`zulip::apache_sso`** to the list.
|
||||||
|
|
||||||
#### `pgroonga`
|
#### `pgroonga`
|
||||||
|
|
||||||
Set to true if enabling the [multi-language PGroonga search
|
Set to true if enabling the [multi-language PGroonga search
|
||||||
extension](../subsystems/full-text-search.html#multi-language-full-text-search).
|
extension](../subsystems/full-text-search.md#multi-language-full-text-search).
|
||||||
|
|
||||||
### `[deployment]`
|
### `[deployment]`
|
||||||
|
|
||||||
|
@ -604,7 +604,7 @@ for servers that are upgraded frequently by core Zulip developers.
|
||||||
#### `git_repo_url`
|
#### `git_repo_url`
|
||||||
|
|
||||||
Default repository URL used when [upgrading from a Git
|
Default repository URL used when [upgrading from a Git
|
||||||
repository](upgrade-or-modify.html#upgrading-from-a-git-repository).
|
repository](upgrade-or-modify.md#upgrading-from-a-git-repository).
|
||||||
|
|
||||||
### `[application_server]`
|
### `[application_server]`
|
||||||
|
|
||||||
|
@ -626,7 +626,7 @@ configure `settings.py` and set this to true to configure
|
||||||
`nginx`. Remove this field to return to the local uploads backend (any
|
`nginx`. Remove this field to return to the local uploads backend (any
|
||||||
non-empty value is currently equivalent to true).
|
non-empty value is currently equivalent to true).
|
||||||
|
|
||||||
[s3-uploads]: upload-backends.html#s3-backend-configuration
|
[s3-uploads]: upload-backends.md#s3-backend-configuration
|
||||||
|
|
||||||
#### `queue_workers_multiprocess`
|
#### `queue_workers_multiprocess`
|
||||||
|
|
||||||
|
@ -669,7 +669,7 @@ more than 3.5GiB of RAM, 4 on hosts with less.
|
||||||
#### `mailname`
|
#### `mailname`
|
||||||
|
|
||||||
The hostname that [Postfix should be configured to receive mail
|
The hostname that [Postfix should be configured to receive mail
|
||||||
at](email-gateway.html#local-delivery-setup).
|
at](email-gateway.md#local-delivery-setup).
|
||||||
|
|
||||||
### `[postgresql]`
|
### `[postgresql]`
|
||||||
|
|
||||||
|
@ -694,7 +694,7 @@ Set to true to enable replication to enable [log shipping replication
|
||||||
between PostgreSQL servers](#postgresql-warm-standby). This should be
|
between PostgreSQL servers](#postgresql-warm-standby). This should be
|
||||||
enabled on the primary, as well as any replicas, and further requires
|
enabled on the primary, as well as any replicas, and further requires
|
||||||
configuration of
|
configuration of
|
||||||
[wal-g](export-and-import.html#backup-details).
|
[wal-g](export-and-import.md#backup-details).
|
||||||
|
|
||||||
#### `replication_primary`
|
#### `replication_primary`
|
||||||
|
|
||||||
|
@ -726,7 +726,7 @@ connections.
|
||||||
#### `version`
|
#### `version`
|
||||||
|
|
||||||
The version of PostgreSQL that is in use. Do not set by hand; use the
|
The version of PostgreSQL that is in use. Do not set by hand; use the
|
||||||
[PostgreSQL upgrade tool](upgrade-or-modify.html#upgrading-postgresql).
|
[PostgreSQL upgrade tool](upgrade-or-modify.md#upgrading-postgresql).
|
||||||
|
|
||||||
### `[memcached]`
|
### `[memcached]`
|
||||||
|
|
||||||
|
|
|
@ -96,7 +96,7 @@ using an [HTTP reverse proxy][reverse-proxy]).
|
||||||
|
|
||||||
Congratulations! The integration should be fully operational.
|
Congratulations! The integration should be fully operational.
|
||||||
|
|
||||||
[reverse-proxy]: deployment.html#putting-the-zulip-application-behind-a-reverse-proxy
|
[reverse-proxy]: deployment.md#putting-the-zulip-application-behind-a-reverse-proxy
|
||||||
|
|
||||||
## Polling setup
|
## Polling setup
|
||||||
|
|
||||||
|
|
|
@ -48,9 +48,9 @@ service (or back):
|
||||||
decommissioning a Zulip organization.
|
decommissioning a Zulip organization.
|
||||||
|
|
||||||
- It's possible to set up [PostgreSQL streaming
|
- It's possible to set up [PostgreSQL streaming
|
||||||
replication](deployment.html#postgresql-warm-standby)
|
replication](deployment.md#postgresql-warm-standby)
|
||||||
and the [S3 file upload
|
and the [S3 file upload
|
||||||
backend](upload-backends.html#s3-backend-configuration)
|
backend](upload-backends.md#s3-backend-configuration)
|
||||||
as part of a high availability environment.
|
as part of a high availability environment.
|
||||||
|
|
||||||
## Backups
|
## Backups
|
||||||
|
@ -365,7 +365,7 @@ cd /home/zulip/deployments/current
|
||||||
This could take several minutes to run depending on how much data you're
|
This could take several minutes to run depending on how much data you're
|
||||||
importing.
|
importing.
|
||||||
|
|
||||||
[upgrade-zulip-from-git]: upgrade-or-modify.html#upgrading-from-a-git-repository
|
[upgrade-zulip-from-git]: upgrade-or-modify.md#upgrading-from-a-git-repository
|
||||||
|
|
||||||
#### Import options
|
#### Import options
|
||||||
|
|
||||||
|
@ -411,7 +411,7 @@ delete the test import data from your Zulip server before doing a
|
||||||
final import. You can **permanently delete** all data from a Zulip
|
final import. You can **permanently delete** all data from a Zulip
|
||||||
organization using the following procedure:
|
organization using the following procedure:
|
||||||
|
|
||||||
- Start a [Zulip management shell](management-commands.html#manage-py-shell)
|
- Start a [Zulip management shell](management-commands.md#managepy-shell)
|
||||||
- In the management shell, run the following commands, replacing `""`
|
- In the management shell, run the following commands, replacing `""`
|
||||||
with the subdomain if [you are hosting the organization on a
|
with the subdomain if [you are hosting the organization on a
|
||||||
subdomain](multiple-organizations.md):
|
subdomain](multiple-organizations.md):
|
||||||
|
|
|
@ -5,7 +5,7 @@ You'll need an Ubuntu or Debian system that satisfies
|
||||||
you can use a preconfigured
|
you can use a preconfigured
|
||||||
[DigitalOcean droplet](https://marketplace.digitalocean.com/apps/zulip?refcode=3ee45da8ee26), or
|
[DigitalOcean droplet](https://marketplace.digitalocean.com/apps/zulip?refcode=3ee45da8ee26), or
|
||||||
Zulip's
|
Zulip's
|
||||||
[experimental Docker image](deployment.html#zulip-in-docker).
|
[experimental Docker image](deployment.md#zulip-in-docker).
|
||||||
|
|
||||||
Note that if you're developing for Zulip, you should install Zulip's
|
Note that if you're developing for Zulip, you should install Zulip's
|
||||||
[development environment](../development/overview.md) instead. If
|
[development environment](../development/overview.md) instead. If
|
||||||
|
@ -27,7 +27,7 @@ tar -xf zulip-server-latest.tar.gz
|
||||||
- If you'd like to verify the download, we
|
- If you'd like to verify the download, we
|
||||||
[publish the sha256sums of our release tarballs](https://download.zulip.com/server/SHA256SUMS.txt).
|
[publish the sha256sums of our release tarballs](https://download.zulip.com/server/SHA256SUMS.txt).
|
||||||
- You can also
|
- You can also
|
||||||
[install a pre-release version of Zulip](deployment.html#installing-zulip-from-git)
|
[install a pre-release version of Zulip](deployment.md#installing-zulip-from-git)
|
||||||
using code from our [repository on GitHub](https://github.com/zulip/zulip/).
|
using code from our [repository on GitHub](https://github.com/zulip/zulip/).
|
||||||
|
|
||||||
## Step 2: Install Zulip
|
## Step 2: Install Zulip
|
||||||
|
@ -73,9 +73,9 @@ You can see the more advanced installer options in our [deployment options][doc-
|
||||||
documentation.
|
documentation.
|
||||||
|
|
||||||
[doc-settings]: settings.md
|
[doc-settings]: settings.md
|
||||||
[doc-certbot]: ssl-certificates.html#certbot-recommended
|
[doc-certbot]: ssl-certificates.md#certbot-recommended
|
||||||
[doc-ssl-manual]: ssl-certificates.html#manual-install
|
[doc-ssl-manual]: ssl-certificates.md#manual-install
|
||||||
[doc-deployment-options]: deployment.html#advanced-installer-options
|
[doc-deployment-options]: deployment.md#advanced-installer-options
|
||||||
|
|
||||||
## Step 3: Create a Zulip organization, and log in
|
## Step 3: Create a Zulip organization, and log in
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ or another Zulip server, you should stop here
|
||||||
and return to the import instructions.
|
and return to the import instructions.
|
||||||
|
|
||||||
[slack-import]: https://zulip.com/help/import-from-slack
|
[slack-import]: https://zulip.com/help/import-from-slack
|
||||||
[zulip-backups]: export-and-import.html#backups
|
[zulip-backups]: export-and-import.md#backups
|
||||||
|
|
||||||
Otherwise, open the link in a browser. Follow the prompts to set up
|
Otherwise, open the link in a browser. Follow the prompts to set up
|
||||||
your organization, and your own user account as an administrator.
|
your organization, and your own user account as an administrator.
|
||||||
|
|
|
@ -9,7 +9,7 @@ have since all moved to dedicated pages:
|
||||||
|
|
||||||
### Monitoring
|
### Monitoring
|
||||||
|
|
||||||
Moved to [Troubleshooting](troubleshooting.html#monitoring).
|
Moved to [Troubleshooting](troubleshooting.md#monitoring).
|
||||||
|
|
||||||
### Securing your Zulip server
|
### Securing your Zulip server
|
||||||
|
|
||||||
|
@ -17,21 +17,21 @@ Moved to [Security model](security-model.md).
|
||||||
|
|
||||||
### Upgrading
|
### Upgrading
|
||||||
|
|
||||||
Moved to [Upgrading to a release](upgrade-or-modify.html#upgrading-to-a-release).
|
Moved to [Upgrading to a release](upgrade-or-modify.md#upgrading-to-a-release).
|
||||||
|
|
||||||
### Upgrading from a Git repository
|
### Upgrading from a Git repository
|
||||||
|
|
||||||
Moved to [Upgrading from a Git
|
Moved to [Upgrading from a Git
|
||||||
repository](upgrade-or-modify.html#upgrading-from-a-git-repository).
|
repository](upgrade-or-modify.md#upgrading-from-a-git-repository).
|
||||||
|
|
||||||
### Upgrading the operating system
|
### Upgrading the operating system
|
||||||
|
|
||||||
Moved to [Upgrading the operating
|
Moved to [Upgrading the operating
|
||||||
system](upgrade-or-modify.html#upgrading-the-operating-system).
|
system](upgrade-or-modify.md#upgrading-the-operating-system).
|
||||||
|
|
||||||
### Scalability
|
### Scalability
|
||||||
|
|
||||||
Moved to [Scalability](requirements.html#scalability).
|
Moved to [Scalability](requirements.md#scalability).
|
||||||
|
|
||||||
### Management commands
|
### Management commands
|
||||||
|
|
||||||
|
|
|
@ -148,7 +148,7 @@ self-hosted Zulip server:
|
||||||
[webhook integration][webhook-integrations] or [bot][writing-bots].
|
[webhook integration][webhook-integrations] or [bot][writing-bots].
|
||||||
- Writing a program using the [Zulip API][zulip-api].
|
- Writing a program using the [Zulip API][zulip-api].
|
||||||
- [Modifying the Zulip server][modifying-zulip].
|
- [Modifying the Zulip server][modifying-zulip].
|
||||||
- Using the interactive [management shell](#manage-py-shell),
|
- Using the interactive [management shell](#managepy-shell),
|
||||||
documented above, for one-time work or prototyping.
|
documented above, for one-time work or prototyping.
|
||||||
- Writing a custom management command, detailed here.
|
- Writing a custom management command, detailed here.
|
||||||
|
|
||||||
|
@ -171,12 +171,12 @@ the Zulip server.
|
||||||
Instead, we recommend deploying custom management commands either via
|
Instead, we recommend deploying custom management commands either via
|
||||||
the [modifying Zulip][modifying-zulip] process or by storing them in
|
the [modifying Zulip][modifying-zulip] process or by storing them in
|
||||||
`/etc/zulip` (so they are included in
|
`/etc/zulip` (so they are included in
|
||||||
[backups](export-and-import.html#backups)) and then
|
[backups](export-and-import.md#backups)) and then
|
||||||
symlinking them into
|
symlinking them into
|
||||||
`/home/zulip/deployments/current/zerver/management/` after each
|
`/home/zulip/deployments/current/zerver/management/` after each
|
||||||
upgrade.
|
upgrade.
|
||||||
|
|
||||||
[modifying-zulip]: upgrade-or-modify.html#modifying-zulip
|
[modifying-zulip]: upgrade-or-modify.md#modifying-zulip
|
||||||
[writing-bots]: https://zulip.com/api/writing-bots
|
[writing-bots]: https://zulip.com/api/writing-bots
|
||||||
[integrations]: https://zulip.com/integrations
|
[integrations]: https://zulip.com/integrations
|
||||||
[zulip-api]: https://zulip.com/api/rest
|
[zulip-api]: https://zulip.com/api/rest
|
||||||
|
|
|
@ -18,7 +18,7 @@ support forwarding push notifications to a central push notification
|
||||||
forwarding service. Accessing this service requires outgoing HTTPS
|
forwarding service. Accessing this service requires outgoing HTTPS
|
||||||
access to the public Internet; if that is restricted by a proxy, you
|
access to the public Internet; if that is restricted by a proxy, you
|
||||||
will need to [configure Zulip to use your outgoing HTTP
|
will need to [configure Zulip to use your outgoing HTTP
|
||||||
proxy](deployment.html#customizing-the-outgoing-http-proxy)
|
proxy](deployment.md#customizing-the-outgoing-http-proxy)
|
||||||
first.
|
first.
|
||||||
|
|
||||||
You can enable this for your Zulip server as follows:
|
You can enable this for your Zulip server as follows:
|
||||||
|
@ -27,7 +27,7 @@ You can enable this for your Zulip server as follows:
|
||||||
`PUSH_NOTIFICATION_BOUNCER_URL = 'https://push.zulipchat.com'` line
|
`PUSH_NOTIFICATION_BOUNCER_URL = 'https://push.zulipchat.com'` line
|
||||||
in your `/etc/zulip/settings.py` file (i.e. remove the `#` at the
|
in your `/etc/zulip/settings.py` file (i.e. remove the `#` at the
|
||||||
start of the line), and [restart your Zulip
|
start of the line), and [restart your Zulip
|
||||||
server](settings.html#making-changes). If you
|
server](settings.md#making-changes). If you
|
||||||
installed your Zulip server with a version older than 1.6, you'll
|
installed your Zulip server with a version older than 1.6, you'll
|
||||||
need to add the line (it won't be there to uncomment).
|
need to add the line (it won't be there to uncomment).
|
||||||
|
|
||||||
|
|
|
@ -55,7 +55,7 @@ the homepage for the server is a copy of the Zulip homepage.
|
||||||
You'll need to install an SSL certificate valid for all the
|
You'll need to install an SSL certificate valid for all the
|
||||||
(sub)domains you're using your Zulip server with. You can get an SSL
|
(sub)domains you're using your Zulip server with. You can get an SSL
|
||||||
certificate covering several domains for free by using
|
certificate covering several domains for free by using
|
||||||
[our Certbot wrapper tool](ssl-certificates.html#after-zulip-is-already-installed),
|
[our Certbot wrapper tool](ssl-certificates.md#after-zulip-is-already-installed),
|
||||||
though if you're going to host a large number of organizations, you
|
though if you're going to host a large number of organizations, you
|
||||||
may want to get a wildcard certificate. You can also get a wildcard
|
may want to get a wildcard certificate. You can also get a wildcard
|
||||||
certificate for
|
certificate for
|
||||||
|
|
|
@ -8,7 +8,7 @@ When a user tries to set a password, we use [zxcvbn][zxcvbn] to check
|
||||||
that it isn't a weak one.
|
that it isn't a weak one.
|
||||||
|
|
||||||
See discussion in [our main docs for server
|
See discussion in [our main docs for server
|
||||||
admins](security-model.html#passwords). This doc explains in more
|
admins](security-model.md#passwords). This doc explains in more
|
||||||
detail how we set the default threshold (`PASSWORD_MIN_GUESSES`) we use.
|
detail how we set the default threshold (`PASSWORD_MIN_GUESSES`) we use.
|
||||||
|
|
||||||
First, read the doc section there. (It's short.)
|
First, read the doc section there. (It's short.)
|
||||||
|
|
|
@ -10,7 +10,7 @@ included with the base operating system (E.g. PostgreSQL 12 on Ubuntu
|
||||||
PostgreSQL releases [upgrade to PostgreSQL 14][upgrade-postgresql], as
|
PostgreSQL releases [upgrade to PostgreSQL 14][upgrade-postgresql], as
|
||||||
we may drop support for older PostgreSQL in a future release.
|
we may drop support for older PostgreSQL in a future release.
|
||||||
|
|
||||||
[upgrade-postgresql]: upgrade-or-modify.html#upgrading-postgresql
|
[upgrade-postgresql]: upgrade-or-modify.md#upgrading-postgresql
|
||||||
|
|
||||||
#### Remote PostgreSQL database
|
#### Remote PostgreSQL database
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ To run a Zulip server, you will need:
|
||||||
|
|
||||||
For details on each of these requirements, see below.
|
For details on each of these requirements, see below.
|
||||||
|
|
||||||
[upgrade-from-git]: upgrade-or-modify.html#upgrading-from-a-git-repository
|
[upgrade-from-git]: upgrade-or-modify.md#upgrading-from-a-git-repository
|
||||||
|
|
||||||
## Server
|
## Server
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ sudo apt update
|
||||||
```
|
```
|
||||||
|
|
||||||
[docker-zulip-homepage]: https://github.com/zulip/docker-zulip#readme
|
[docker-zulip-homepage]: https://github.com/zulip/docker-zulip#readme
|
||||||
[upgrade-os]: upgrade-or-modify.html#upgrading-the-operating-system
|
[upgrade-os]: upgrade-or-modify.md#upgrading-the-operating-system
|
||||||
[ubuntu-repositories]: https://help.ubuntu.com/community/Repositories/Ubuntu
|
[ubuntu-repositories]: https://help.ubuntu.com/community/Repositories/Ubuntu
|
||||||
[enable-universe]: https://help.ubuntu.com/community/Repositories/CommandLine#Adding_the_Universe_and_Multiverse_Repositories
|
[enable-universe]: https://help.ubuntu.com/community/Repositories/CommandLine#Adding_the_Universe_and_Multiverse_Repositories
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ on hardware requirements for larger organizations.
|
||||||
#### Network and security specifications
|
#### Network and security specifications
|
||||||
|
|
||||||
- Incoming HTTPS access (usually port 443, though this is
|
- Incoming HTTPS access (usually port 443, though this is
|
||||||
[configurable](deployment.html#using-an-alternate-port))
|
[configurable](deployment.md#using-an-alternate-port))
|
||||||
from the networks where your users are (usually, the public
|
from the networks where your users are (usually, the public
|
||||||
Internet).
|
Internet).
|
||||||
- Incoming port 80 access (optional). Zulip only serves content over
|
- Incoming port 80 access (optional). Zulip only serves content over
|
||||||
|
@ -112,8 +112,8 @@ on hardware requirements for larger organizations.
|
||||||
Zulip supports using that instead.
|
Zulip supports using that instead.
|
||||||
|
|
||||||
[ssrf]: https://owasp.org/www-community/attacks/Server_Side_Request_Forgery
|
[ssrf]: https://owasp.org/www-community/attacks/Server_Side_Request_Forgery
|
||||||
[smokescreen-proxy]: deployment.html#customizing-the-outgoing-http-proxy
|
[smokescreen-proxy]: deployment.md#customizing-the-outgoing-http-proxy
|
||||||
[reverse-proxy]: deployment.html#putting-the-zulip-application-behind-a-reverse-proxy
|
[reverse-proxy]: deployment.md#putting-the-zulip-application-behind-a-reverse-proxy
|
||||||
[email-mirror-code]: https://github.com/zulip/zulip/blob/main/zerver/management/commands/email_mirror.py
|
[email-mirror-code]: https://github.com/zulip/zulip/blob/main/zerver/management/commands/email_mirror.py
|
||||||
|
|
||||||
## Credentials needed
|
## Credentials needed
|
||||||
|
@ -133,8 +133,8 @@ installer.
|
||||||
If you'd rather acquire an SSL certificate another way, see our [SSL
|
If you'd rather acquire an SSL certificate another way, see our [SSL
|
||||||
certificate documentation](ssl-certificates.md).
|
certificate documentation](ssl-certificates.md).
|
||||||
|
|
||||||
[doc-certbot]: ssl-certificates.html#certbot-recommended
|
[doc-certbot]: ssl-certificates.md#certbot-recommended
|
||||||
[doc-self-signed]: ssl-certificates.html#self-signed-certificate
|
[doc-self-signed]: ssl-certificates.md#self-signed-certificate
|
||||||
|
|
||||||
#### Outgoing email
|
#### Outgoing email
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ certificate documentation](ssl-certificates.md).
|
||||||
during the signup process, message notification emails, password
|
during the signup process, message notification emails, password
|
||||||
reset, etc.). If you don't have an existing outgoing SMTP solution,
|
reset, etc.). If you don't have an existing outgoing SMTP solution,
|
||||||
read about
|
read about
|
||||||
[free outgoing SMTP options and options for prototyping](email.html#free-outgoing-email-services).
|
[free outgoing SMTP options and options for prototyping](email.md#free-outgoing-email-services).
|
||||||
|
|
||||||
Once you have met these requirements, see [full instructions for installing
|
Once you have met these requirements, see [full instructions for installing
|
||||||
Zulip in production](install.md).
|
Zulip in production](install.md).
|
||||||
|
@ -241,6 +241,6 @@ For readers interested in technical details around what features
|
||||||
impact Zulip's scalability, this [performance and scalability design
|
impact Zulip's scalability, this [performance and scalability design
|
||||||
document](../subsystems/performance.md) may also be of interest.
|
document](../subsystems/performance.md) may also be of interest.
|
||||||
|
|
||||||
[s3-uploads]: upload-backends.html#s3-backend-configuration
|
[s3-uploads]: upload-backends.md#s3-backend-configuration
|
||||||
[streaming-replication]: deployment.html#postgresql-warm-standby
|
[streaming-replication]: deployment.md#postgresql-warm-standby
|
||||||
[contact-support]: https://zulip.com/help/contact-support
|
[contact-support]: https://zulip.com/help/contact-support
|
||||||
|
|
|
@ -272,8 +272,8 @@ strength allowed is controlled by two settings in
|
||||||
|
|
||||||
[go-camo]: https://github.com/cactus/go-camo
|
[go-camo]: https://github.com/cactus/go-camo
|
||||||
[ssrf]: https://owasp.org/www-community/attacks/Server_Side_Request_Forgery
|
[ssrf]: https://owasp.org/www-community/attacks/Server_Side_Request_Forgery
|
||||||
[smokescreen-setup]: deployment.html#customizing-the-outgoing-http-proxy
|
[smokescreen-setup]: deployment.md#customizing-the-outgoing-http-proxy
|
||||||
[proxy.enable_for_camo]: deployment.html#enable-for-camo
|
[proxy.enable_for_camo]: deployment.md#enable_for_camo
|
||||||
|
|
||||||
## Final notes and security response
|
## Final notes and security response
|
||||||
|
|
||||||
|
|
|
@ -28,7 +28,7 @@ from an old version of Zulip, we recommend [carefully updating your
|
||||||
comment documentation for new configuration settings after upgrading
|
comment documentation for new configuration settings after upgrading
|
||||||
to each new major release.
|
to each new major release.
|
||||||
|
|
||||||
[update-settings-docs]: upgrade-or-modify.html#updating-settings-py-inline-documentation
|
[update-settings-docs]: upgrade-or-modify.md#updating-settingspy-inline-documentation
|
||||||
[settings-py-template]: https://github.com/zulip/zulip/blob/main/zproject/prod_settings_template.py
|
[settings-py-template]: https://github.com/zulip/zulip/blob/main/zproject/prod_settings_template.py
|
||||||
|
|
||||||
Since Zulip's settings file is a Python script, there are a number of
|
Since Zulip's settings file is a Python script, there are a number of
|
||||||
|
|
|
@ -81,7 +81,7 @@ Internet.
|
||||||
If you need to configure a multiple domain certificate, you can generate
|
If you need to configure a multiple domain certificate, you can generate
|
||||||
one as described in the section below after installing Zulip.
|
one as described in the section below after installing Zulip.
|
||||||
|
|
||||||
[doc-install-script]: install.html#step-2-install-zulip
|
[doc-install-script]: install.md#step-2-install-zulip
|
||||||
|
|
||||||
### After Zulip is already installed
|
### After Zulip is already installed
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ Supervisor client to monitor and manage services.
|
||||||
|
|
||||||
If you haven't already, now might be a good time to read Zulip's [architectural
|
If you haven't already, now might be a good time to read Zulip's [architectural
|
||||||
overview](../overview/architecture-overview.md), particularly the
|
overview](../overview/architecture-overview.md), particularly the
|
||||||
[Components](../overview/architecture-overview.html#components) section. This will help you
|
[Components](../overview/architecture-overview.md#components) section. This will help you
|
||||||
understand the many services Zulip uses.
|
understand the many services Zulip uses.
|
||||||
|
|
||||||
If you encounter issues while running Zulip, take a look at Zulip's logs, which
|
If you encounter issues while running Zulip, take a look at Zulip's logs, which
|
||||||
|
|
|
@ -4,7 +4,7 @@ This page explains how to upgrade, patch, or modify Zulip, including:
|
||||||
|
|
||||||
- [Upgrading to a release](#upgrading-to-a-release)
|
- [Upgrading to a release](#upgrading-to-a-release)
|
||||||
- [Upgrading from a Git repository](#upgrading-from-a-git-repository)
|
- [Upgrading from a Git repository](#upgrading-from-a-git-repository)
|
||||||
- [Updating `settings.py` inline documentation](#updating-settings-py-inline-documentation)
|
- [Updating `settings.py` inline documentation](#updating-settingspy-inline-documentation)
|
||||||
- [Troubleshooting and rollback](#troubleshooting-and-rollback)
|
- [Troubleshooting and rollback](#troubleshooting-and-rollback)
|
||||||
- [Preserving local changes to service configuration files](#preserving-local-changes-to-service-configuration-files)
|
- [Preserving local changes to service configuration files](#preserving-local-changes-to-service-configuration-files)
|
||||||
- [Upgrading the operating system](#upgrading-the-operating-system)
|
- [Upgrading the operating system](#upgrading-the-operating-system)
|
||||||
|
@ -20,7 +20,7 @@ or have [modified Zulip-managed configuration
|
||||||
files](#preserving-local-changes-to-service-configuration-files). To upgrade
|
files](#preserving-local-changes-to-service-configuration-files). To upgrade
|
||||||
to a new Zulip release:
|
to a new Zulip release:
|
||||||
|
|
||||||
1. Read the [upgrade notes](../overview/changelog.html#upgrade-notes)
|
1. Read the [upgrade notes](../overview/changelog.md#upgrade-notes)
|
||||||
for all releases newer than what is currently installed.
|
for all releases newer than what is currently installed.
|
||||||
|
|
||||||
1. Download the appropriate release tarball from
|
1. Download the appropriate release tarball from
|
||||||
|
@ -60,7 +60,7 @@ involved (these will be documented in the [release
|
||||||
notes](../overview/changelog.md), and usually can be avoided with
|
notes](../overview/changelog.md), and usually can be avoided with
|
||||||
some care). If downtime is problematic for your organization,
|
some care). If downtime is problematic for your organization,
|
||||||
consider testing the upgrade on a
|
consider testing the upgrade on a
|
||||||
[backup](export-and-import.html#backups) in advance,
|
[backup](export-and-import.md#backups) in advance,
|
||||||
doing the final upgrade at off hours, or buying a support contract.
|
doing the final upgrade at off hours, or buying a support contract.
|
||||||
|
|
||||||
See the [troubleshooting guide](#troubleshooting-and-rollback) if you
|
See the [troubleshooting guide](#troubleshooting-and-rollback) if you
|
||||||
|
@ -156,7 +156,7 @@ suggest using that updated template to update
|
||||||
su zulip -c '/home/zulip/deployments/current/scripts/restart-server'
|
su zulip -c '/home/zulip/deployments/current/scripts/restart-server'
|
||||||
```
|
```
|
||||||
|
|
||||||
[backups]: export-and-import.html#backups
|
[backups]: export-and-import.md#backups
|
||||||
[changelog]: ../overview/changelog.md
|
[changelog]: ../overview/changelog.md
|
||||||
|
|
||||||
## Troubleshooting and rollback
|
## Troubleshooting and rollback
|
||||||
|
@ -365,7 +365,7 @@ instructions for other supported platforms.
|
||||||
```
|
```
|
||||||
|
|
||||||
8. [Upgrade from Ubuntu 18.04 to
|
8. [Upgrade from Ubuntu 18.04 to
|
||||||
20.04](#upgrading-from-ubuntu-18-04-bionic-to-20-04-focal), so that
|
20.04](#upgrading-from-ubuntu-1804-bionic-to-2004-focal), so that
|
||||||
you are running a supported operating system.
|
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
|
||||||
|
@ -408,7 +408,7 @@ instructions for other supported platforms.
|
||||||
correctly.
|
correctly.
|
||||||
|
|
||||||
6. [Upgrade from Ubuntu 16.04 to
|
6. [Upgrade from Ubuntu 16.04 to
|
||||||
18.04](#upgrading-from-ubuntu-16-04-xenial-to-18-04-bionic), so
|
18.04](#upgrading-from-ubuntu-1604-xenial-to-1804-bionic), so
|
||||||
that you are running a supported operating system.
|
that you are running a supported operating system.
|
||||||
|
|
||||||
### Upgrading from Debian 10 to 11
|
### Upgrading from Debian 10 to 11
|
||||||
|
@ -800,7 +800,7 @@ upgrading to `main`, make sure you understand:
|
||||||
- We do not support downgrading from `main` to earlier versions, so
|
- We do not support downgrading from `main` to earlier versions, so
|
||||||
if downtime for your Zulip server is unacceptable, make sure you
|
if downtime for your Zulip server is unacceptable, make sure you
|
||||||
have a current
|
have a current
|
||||||
[backup](export-and-import.html#backups) in case the
|
[backup](export-and-import.md#backups) in case the
|
||||||
upgrade fails.
|
upgrade fails.
|
||||||
- Our changelog contains [draft release
|
- Our changelog contains [draft release
|
||||||
notes](../overview/changelog.md) available listing major changes
|
notes](../overview/changelog.md) available listing major changes
|
||||||
|
@ -821,7 +821,7 @@ contributors like you. If your changes are likely to be of useful to
|
||||||
other organizations, consider [contributing
|
other organizations, consider [contributing
|
||||||
them](../overview/contributing.md).
|
them](../overview/contributing.md).
|
||||||
|
|
||||||
[fork-clone]: ../git/cloning.html#get-zulip-code
|
[fork-clone]: ../git/cloning.md#get-zulip-code
|
||||||
[upgrade-zulip-from-git]: #upgrading-from-a-git-repository
|
[upgrade-zulip-from-git]: #upgrading-from-a-git-repository
|
||||||
[upgrade-zulip]: #upgrading
|
[upgrade-zulip]: #upgrading
|
||||||
[git-guide]: ../git/index.md
|
[git-guide]: ../git/index.md
|
||||||
|
|
|
@ -232,7 +232,7 @@ reasoning here.
|
||||||
dependencies in the `yarn.lock` file; `yarn install` updates the
|
dependencies in the `yarn.lock` file; `yarn install` updates the
|
||||||
`yarn.lock` files.
|
`yarn.lock` files.
|
||||||
- `tools/update-prod-static`. This process is discussed in detail in
|
- `tools/update-prod-static`. This process is discussed in detail in
|
||||||
the [static asset pipeline](html-css.html#static-asset-pipeline)
|
the [static asset pipeline](html-css.md#static-asset-pipeline)
|
||||||
article, but we don't use the `node_modules` directories directly in
|
article, but we don't use the `node_modules` directories directly in
|
||||||
production. Instead, static assets are compiled using our static
|
production. Instead, static assets are compiled using our static
|
||||||
asset pipeline and it is the compiled assets that are served
|
asset pipeline and it is the compiled assets that are served
|
||||||
|
|
|
@ -72,9 +72,9 @@ mutate the HTML email one can see previewed on `/emails`.
|
||||||
|
|
||||||
To do this sort of testing, you need to set up an outgoing SMTP
|
To do this sort of testing, you need to set up an outgoing SMTP
|
||||||
provider. Our production advice for
|
provider. Our production advice for
|
||||||
[Gmail](../production/email.html#using-gmail-for-outgoing-email) and
|
[Gmail](../production/email.md#using-gmail-for-outgoing-email) and
|
||||||
[transactional email
|
[transactional email
|
||||||
providers](../production/email.html#free-outgoing-email-services) are
|
providers](../production/email.md#free-outgoing-email-services) are
|
||||||
relevant; you can ignore the Gmail warning as Gmail's rate limits are
|
relevant; you can ignore the Gmail warning as Gmail's rate limits are
|
||||||
appropriate for this sort of low-volume testing.
|
appropriate for this sort of low-volume testing.
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ First, a few notes on philosophy.
|
||||||
design/implementation work to make requests fast over the operational
|
design/implementation work to make requests fast over the operational
|
||||||
work of running 2-5x as much hardware to handle the same load.
|
work of running 2-5x as much hardware to handle the same load.
|
||||||
|
|
||||||
See also [scalability for production users](../production/requirements.html#scalability).
|
See also [scalability for production users](../production/requirements.md#scalability).
|
||||||
|
|
||||||
## Load profiles
|
## Load profiles
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ of load profiles:
|
||||||
example for this, with more than 15K total user accounts, of which
|
example for this, with more than 15K total user accounts, of which
|
||||||
only several hundred have logged in during the last few weeks.
|
only several hundred have logged in during the last few weeks.
|
||||||
Zulip has many important optimizations, including [soft
|
Zulip has many important optimizations, including [soft
|
||||||
deactivation](sending-messages.html#soft-deactivation)
|
deactivation](sending-messages.md#soft-deactivation)
|
||||||
to ensure idle users have minimal impact on both server-side
|
to ensure idle users have minimal impact on both server-side
|
||||||
scalability and request latency.
|
scalability and request latency.
|
||||||
- Fulltime teams, like your typical corporate Zulip installation,
|
- Fulltime teams, like your typical corporate Zulip installation,
|
||||||
|
@ -249,7 +249,7 @@ it does a large number of these requests:
|
||||||
zulip.com, this can result in a thundering herd effect for both `/`
|
zulip.com, this can result in a thundering herd effect for both `/`
|
||||||
and `GET /messages`. A great deal of care has been taking in
|
and `GET /messages`. A great deal of care has been taking in
|
||||||
designing this [auto-reload
|
designing this [auto-reload
|
||||||
system](hashchange-system.html#server-initiated-reloads)
|
system](hashchange-system.md#server-initiated-reloads)
|
||||||
to spread most of that herd over several minutes.
|
to spread most of that herd over several minutes.
|
||||||
|
|
||||||
Typical requests consume 20-100ms to process, much of which is waiting
|
Typical requests consume 20-100ms to process, much of which is waiting
|
||||||
|
|
|
@ -13,7 +13,7 @@ preparing a new release.
|
||||||
- Upgrade all puppet-installed dependencies (e.g. Smokescreen, go,
|
- Upgrade all puppet-installed dependencies (e.g. Smokescreen, go,
|
||||||
etc) in `puppet/zulip/manifests/common.pp`
|
etc) in `puppet/zulip/manifests/common.pp`
|
||||||
- [Upload strings to
|
- [Upload strings to
|
||||||
Transifex](../translating/internationalization.html#translation-process)
|
Transifex](../translating/internationalization.md#translation-process)
|
||||||
using `push-translations`. Post a Transifex
|
using `push-translations`. Post a Transifex
|
||||||
[Announcement](https://www.transifex.com/zulip/zulip/announcements/)
|
[Announcement](https://www.transifex.com/zulip/zulip/announcements/)
|
||||||
notifying translators that we're approaching a release.
|
notifying translators that we're approaching a release.
|
||||||
|
|
|
@ -62,7 +62,7 @@ In a production environment, we have:
|
||||||
is the main documentation for Zulip settings, we recommend that
|
is the main documentation for Zulip settings, we recommend that
|
||||||
production installations [carefully update `/etc/zulip/settings.py`
|
production installations [carefully update `/etc/zulip/settings.py`
|
||||||
every major
|
every major
|
||||||
release](../production/upgrade-or-modify.html#updating-settings-py-inline-documentation)
|
release](../production/upgrade-or-modify.md#updating-settingspy-inline-documentation)
|
||||||
to pick up new inline documentation.
|
to pick up new inline documentation.
|
||||||
|
|
||||||
- `/etc/zulip/zulip-secrets.conf` (generated by
|
- `/etc/zulip/zulip-secrets.conf` (generated by
|
||||||
|
|
|
@ -65,7 +65,7 @@ but it is good practice to run lint checks locally.
|
||||||
|
|
||||||
:::{important}
|
:::{important}
|
||||||
We provide a
|
We provide a
|
||||||
[Git pre-commit hook](../git/zulip-tools.html#set-up-git-repo-script)
|
[Git pre-commit hook](../git/zulip-tools.md#set-up-git-repo-script)
|
||||||
that can automatically run `tools/lint` on just the files that
|
that can automatically run `tools/lint` on just the files that
|
||||||
changed (in a few 100ms) whenever you make a commit. This can save
|
changed (in a few 100ms) whenever you make a commit. This can save
|
||||||
you a lot of time, by automatically detecting linter errors as you
|
you a lot of time, by automatically detecting linter errors as you
|
||||||
|
|
|
@ -330,7 +330,7 @@ with self.settings(RATE_LIMITING=True):
|
||||||
self.assertTrue(rate_limit_mock.called)
|
self.assertTrue(rate_limit_mock.called)
|
||||||
```
|
```
|
||||||
|
|
||||||
Follow [this link](../subsystems/settings.html#testing-non-default-settings) for more
|
Follow [this link](../subsystems/settings.md#testing-non-default-settings) for more
|
||||||
information on the "settings" context manager.
|
information on the "settings" context manager.
|
||||||
|
|
||||||
Zulip has several features, like outgoing webhooks or social
|
Zulip has several features, like outgoing webhooks or social
|
||||||
|
@ -411,7 +411,7 @@ We use mocks and stubs for all the typical reasons:
|
||||||
- to stub out calls to third-party services
|
- to stub out calls to third-party services
|
||||||
- to make it so that you can [run the Zulip tests on the airplane without wifi][no-internet]
|
- to make it so that you can [run the Zulip tests on the airplane without wifi][no-internet]
|
||||||
|
|
||||||
[no-internet]: testing.html#internet-access-inside-test-suites
|
[no-internet]: testing.md#internet-access-inside-test-suites
|
||||||
|
|
||||||
A detailed description of mocks, along with useful coded snippets, can be found in the section
|
A detailed description of mocks, along with useful coded snippets, can be found in the section
|
||||||
[Testing with mocks](#testing-with-mocks).
|
[Testing with mocks](#testing-with-mocks).
|
||||||
|
@ -449,7 +449,7 @@ the same data structure as performing an action that generates said event.
|
||||||
|
|
||||||
This is a bit esoteric, but if you read the tests, you will see some of
|
This is a bit esoteric, but if you read the tests, you will see some of
|
||||||
the patterns. You can also learn more about our event system in the
|
the patterns. You can also learn more about our event system in the
|
||||||
[new feature tutorial](../tutorials/new-feature-tutorial.html#handle-database-interactions).
|
[new feature tutorial](../tutorials/new-feature-tutorial.md#handle-database-interactions).
|
||||||
|
|
||||||
### Negative tests
|
### Negative tests
|
||||||
|
|
||||||
|
|
|
@ -126,7 +126,7 @@ This is easy to do using test fixtures (a fancy word for fixed data
|
||||||
used in tests) and the `mock.patch` function to specify what HTTP
|
used in tests) and the `mock.patch` function to specify what HTTP
|
||||||
response should be used by the tests for every outgoing HTTP (or other
|
response should be used by the tests for every outgoing HTTP (or other
|
||||||
network) request. Consult
|
network) request. Consult
|
||||||
[our guide on mocking](testing-with-django.html#zulip-mocking-practices) to
|
[our guide on mocking](testing-with-django.md#zulip-mocking-practices) to
|
||||||
learn how to mock network requests easily; there are also a number of
|
learn how to mock network requests easily; there are also a number of
|
||||||
examples throughout the codebase.
|
examples throughout the codebase.
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ principles are important in how we think about internationalization:
|
||||||
element needs to be built in a way that supports i18n.
|
element needs to be built in a way that supports i18n.
|
||||||
- This is more about string consistency in general, but we have a
|
- This is more about string consistency in general, but we have a
|
||||||
"Sentence case" [capitalization
|
"Sentence case" [capitalization
|
||||||
policy](translating.html#capitalization) that we enforce using linters
|
policy](translating.md#capitalization) that we enforce using linters
|
||||||
that check all strings tagged for translation in Zulip.
|
that check all strings tagged for translation in Zulip.
|
||||||
|
|
||||||
This article aims to provide a brief introduction. We recommend the
|
This article aims to provide a brief introduction. We recommend the
|
||||||
|
@ -108,7 +108,7 @@ The end-to-end tooling process for translations in Zulip is as follows.
|
||||||
Transifex API tool, `tx pull`, internally).
|
Transifex API tool, `tx pull`, internally).
|
||||||
|
|
||||||
If you're interested, you may also want to check out the [translators'
|
If you're interested, you may also want to check out the [translators'
|
||||||
workflow](translating.html#translators-workflow), just so you have a
|
workflow](translating.md#translators-workflow), just so you have a
|
||||||
sense of how everything fits together.
|
sense of how everything fits together.
|
||||||
|
|
||||||
## Translation resource files
|
## Translation resource files
|
||||||
|
@ -339,4 +339,4 @@ organizations from the command line.
|
||||||
[helpers]: https://handlebarsjs.com/guide/block-helpers.html
|
[helpers]: https://handlebarsjs.com/guide/block-helpers.html
|
||||||
[transifex]: https://transifex.com
|
[transifex]: https://transifex.com
|
||||||
[transifexrc]: https://docs.transifex.com/client/client-configuration#transifexrc
|
[transifexrc]: https://docs.transifex.com/client/client-configuration#transifexrc
|
||||||
[html-templates]: ../subsystems/html-css.html#html-templates
|
[html-templates]: ../subsystems/html-css.md#html-templates
|
||||||
|
|
|
@ -115,7 +115,7 @@ can usually just deploy the latest translations there.
|
||||||
|
|
||||||
- First, download the updated resource files from Transifex using the
|
- First, download the updated resource files from Transifex using the
|
||||||
`tools/i18n/sync-translations` command (it will require some [initial
|
`tools/i18n/sync-translations` command (it will require some [initial
|
||||||
setup](internationalization.html#transifex-cli-setup)). This
|
setup](internationalization.md#transifex-cli-setup)). This
|
||||||
command will download the resource files from Transifex and replace
|
command will download the resource files from Transifex and replace
|
||||||
your local resource files with them, and then compile them. You can
|
your local resource files with them, and then compile them. You can
|
||||||
now test your translation work in the Zulip UI.
|
now test your translation work in the Zulip UI.
|
||||||
|
@ -199,7 +199,7 @@ capitalization in general. This means that:
|
||||||
|
|
||||||
The Zulip test suite enforces these capitalization guidelines in the
|
The Zulip test suite enforces these capitalization guidelines in the
|
||||||
web app codebase [in our test
|
web app codebase [in our test
|
||||||
suite](../testing/testing.html#other-test-suites)
|
suite](../testing/testing.md#other-test-suites)
|
||||||
(`./tools/check-capitalization`; `tools/lib/capitalization.py` has
|
(`./tools/check-capitalization`; `tools/lib/capitalization.py` has
|
||||||
some exclude lists, e.g. `IGNORED_PHRASES`).
|
some exclude lists, e.g. `IGNORED_PHRASES`).
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,7 @@ location /static/ {
|
||||||
|
|
||||||
## nginx routes other requests [between Django and Tornado][tornado-django]
|
## nginx routes other requests [between Django and Tornado][tornado-django]
|
||||||
|
|
||||||
[tornado-django]: ../overview/architecture-overview.html#django-and-tornado
|
[tornado-django]: ../overview/architecture-overview.md#django-and-tornado
|
||||||
|
|
||||||
All our connected clients hold open long-polling connections so that
|
All our connected clients hold open long-polling connections so that
|
||||||
they can receive events (messages, presence notifications, and so on) in
|
they can receive events (messages, presence notifications, and so on) in
|
||||||
|
|
|
@ -89,7 +89,7 @@ to learn more about creating and applying database migrations.
|
||||||
|
|
||||||
**Test your changes:** Once you've run the migration, flush memcached
|
**Test your changes:** Once you've run the migration, flush memcached
|
||||||
on your development server (`./scripts/setup/flush-memcached`) and then
|
on your development server (`./scripts/setup/flush-memcached`) and then
|
||||||
[restart the development server](../development/remote.html#running-the-development-server)
|
[restart the development server](../development/remote.md#running-the-development-server)
|
||||||
to avoid interacting with cached objects.
|
to avoid interacting with cached objects.
|
||||||
|
|
||||||
### Backend changes
|
### Backend changes
|
||||||
|
@ -265,7 +265,7 @@ Running migrations:
|
||||||
```
|
```
|
||||||
|
|
||||||
Once you've run the migration, restart memcached on your development
|
Once you've run the migration, restart memcached on your development
|
||||||
server (`/etc/init.d/memcached restart`) and then [restart the development server](../development/remote.html#running-the-development-server)
|
server (`/etc/init.d/memcached restart`) and then [restart the development server](../development/remote.md#running-the-development-server)
|
||||||
to avoid interacting with cached objects.
|
to avoid interacting with cached objects.
|
||||||
|
|
||||||
### Handle database interactions
|
### Handle database interactions
|
||||||
|
|
|
@ -347,4 +347,4 @@ will be useful in your journey, as well.
|
||||||
|
|
||||||
![Git - XKCD 1597](https://imgs.xkcd.com/comics/git.png)
|
![Git - XKCD 1597](https://imgs.xkcd.com/comics/git.png)
|
||||||
|
|
||||||
[git-cheat-detailed]: ../git/cheat-sheet.html#detailed-cheat-sheet
|
[git-cheat-detailed]: ../git/cheat-sheet.md#detailed-cheat-sheet
|
||||||
|
|
|
@ -37,7 +37,7 @@ integrations).
|
||||||
The format of the URL patterns in Django is [documented
|
The format of the URL patterns in Django is [documented
|
||||||
here](https://docs.djangoproject.com/en/3.2/topics/http/urls/), and
|
here](https://docs.djangoproject.com/en/3.2/topics/http/urls/), and
|
||||||
the Zulip specific details for these are discussed in detail in the
|
the Zulip specific details for these are discussed in detail in the
|
||||||
[life of a request doc](life-of-a-request.html#options).
|
[life of a request doc](life-of-a-request.md#options).
|
||||||
|
|
||||||
We have two Zulip-specific conventions we use for internationalization and for
|
We have two Zulip-specific conventions we use for internationalization and for
|
||||||
our REST API, respectively.
|
our REST API, respectively.
|
||||||
|
|
Loading…
Reference in New Issue