Commit Graph

205 Commits

Author SHA1 Message Date
Chris Bobbe
b3901c830b docs/development/using: Add link to ./authentication.
Added a link from docs/development/using ("Using the Development
Environment") to ./authentication ("Authentication in the development
environment") to help people working on the authentication systems
or anyone who needs an API key.
2020-01-16 15:41:12 -08:00
Chris Bobbe
6c3fcc252e docs/development/using: Small wording change.
An attempt to make the point about Django/Tornado server processes
auto-restarting less wordy.
2020-01-16 15:41:12 -08:00
Chris Bobbe
60f3c06d91 docs/development/using: Break into three headings: Server/Web/Mobile.
Separate using.html into Server/Web/Mobile sections so that readers
will find what they're looking for more quickly. Server is at the top
because it contains information relevant to web and mobile developers,
e.g., that the `run-dev.py` console output will provide useful errors.

Fixes #13655.
2020-01-16 15:41:10 -08:00
Anders Kaseorg
ea6934c26d dependencies: Remove WebSockets system for sending messages.
Zulip has had a small use of WebSockets (specifically, for the code
path of sending messages, via the webapp only) since ~2013.  We
originally added this use of WebSockets in the hope that the latency
benefits of doing so would allow us to avoid implementing a markdown
local echo; they were not.  Further, HTTP/2 may have eliminated the
latency difference we hoped to exploit by using WebSockets in any
case.

While we’d originally imagined using WebSockets for other endpoints,
there was never a good justification for moving more components to the
WebSockets system.

This WebSockets code path had a lot of downsides/complexity,
including:

* The messy hack involving constructing an emulated request object to
  hook into doing Django requests.
* The `message_senders` queue processor system, which increases RAM
  needs and must be provisioned independently from the rest of the
  server).
* A duplicate check_send_receive_time Nagios test specific to
  WebSockets.
* The requirement for users to have their firewalls/NATs allow
  WebSocket connections, and a setting to disable them for networks
  where WebSockets don’t work.
* Dependencies on the SockJS family of libraries, which has at times
  been poorly maintained, and periodically throws random JavaScript
  exceptions in our production environments without a deep enough
  traceback to effectively investigate.
* A total of about 1600 lines of our code related to the feature.
* Increased load on the Tornado system, especially around a Zulip
  server restart, and especially for large installations like
  zulipchat.com, resulting in extra delay before messages can be sent
  again.

As detailed in
https://github.com/zulip/zulip/pull/12862#issuecomment-536152397, it
appears that removing WebSockets moderately increases the time it
takes for the `send_message` API query to return from the server, but
does not significantly change the time between when a message is sent
and when it is received by clients.  We don’t understand the reason
for that change (suggesting the possibility of a measurement error),
and even if it is a real change, we consider that potential small
latency regression to be acceptable.

If we later want WebSockets, we’ll likely want to just use Django
Channels.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-01-14 22:34:00 -08:00
Tim Abbott
86721c3be5 docs: Fix a few typos in Vagrant docs. 2019-12-30 10:34:48 -08:00
Anders Kaseorg
65270419b9 docs: Document dev environment issues that Windows users are hitting.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-12-01 23:05:22 -08:00
Anders Kaseorg
a7d36495c9 docs: Remove discussion of NFS-related issues.
We’re not using NFS anymore (#12963).

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-12-01 23:05:22 -08:00
Tim Abbott
4e421ebe12 scripts: Move inline-email-css from tools to scripts.
We'll be soon documenting a production workflow that involves using
it, and that means it needs to live under scripts/ (since tools/ isn't
present in release tarballs).
2019-11-15 17:39:42 -08:00
Tim Abbott
b5f78b6c94 docs: Improve heading sections for development authentication.
This adds discussion of EmailAuthBackend and also avoids framing
things as only OAuth or Google/GitHub, which hasn't been true for some
time.
2019-11-08 13:56:53 -08:00
David Rosa
b041948132 docs: Reorganize auth and migrations subsystems.
- Moves "Authentication in the development environment" from subsystems
to "development/authentication.md".
- Moves "Renumbering migrations" to a section within "Schema migrations".
2019-11-07 09:42:36 -08:00
David Rosa
3fb2339511 docs: Fix formatting of warnings.
Fixes warning formatting in testing.md and setup-advanced.md
with reStructured Text so that the warnings stand out.
2019-10-28 15:03:55 -07:00
David Rosa
bdbc384de5 docs: Reduce the number of apparently broken links on github.
- Updated 260+ links from ".html" to ".md" to reduce the number of issues
reported about hyperlinks not working when viewing docs on Github.
- Removed temporary workaround that suppressed all warnings reported
by sphinx build for every link ending in ".html".

Details:
The recent upgrade to recommonmark==0.5.0 supports auto-converting
".md" links to ".html" so that the resulting HTML output is correct.

Notice that links pointing to a heading i.e. "../filename.html#heading",
were not updated because recommonmark does not auto-convert them.
These links do not generate build warnings and do not cause any issues.
However, there are about ~100 such links that might still get misreported
as broken links.  This will be a follow-up issue.

Background:
docs: pip upgrade recommonmark and CommonMark #13013
docs: Allow .md links between doc pages #11719

Fixes #11087.
2019-10-07 12:08:27 -07:00
YashRE42
f92e9e8693 docs: Add example of auth for proxy.
With some tweaks by tabbott to make the examples more generic.
2019-10-06 11:42:22 -07:00
David Rosa
9545569dca docs: Upgrade recommonmark to 0.6.0, fixing issues.
- recommonmark: 0.5.0 -> 0.6.0
- Fixed build TypeError: sequence item 1: expected str instance, NoneType found
  caused by recommonmark/parser.py erroring on a newline character.
- Removed deprecated code in conf.py that was causing warning messages
- Updated conf.py according to instructions for Sphinx-1.4 or newer
https://github.com/readthedocs/recommonmark/blob/master/README.md#getting-started
https://www.sphinx-doc.org/en/master/usage/markdown.html

This commit is also relevant to PR #13232.
2019-10-02 12:29:24 -07:00
Anders Kaseorg
75e585b208 docs: Suggest systemctl unmask docker if Docker isn’t running.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-09-23 12:52:07 -07:00
Ray Kraesig
a4ababb9a4 vagrant docs: specify restart command
Add a specific command to restart Vagrant to adopt the new
configuration.

(When naïvely using only `vagrant halt` + `vagrant up --provision`,
external devices remained unable to connect; per `netstat -nltp`, the
host IP of forwarded ports remained `127.0.0.1`.)
2019-09-21 11:54:14 -07:00
Anders Kaseorg
6701c4463c search: Remove now unnecessary tsearch_extra dependency.
Now that we're implemented tsearch_extras in pure postgres, we no
longer need a custom extension.  This should help us considerably, as
it means we no longer need to ship custom apt packages at all.

Fixes #467.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-08-29 12:49:26 -07:00
Anders Kaseorg
349f22524e provision: Don’t rely on uid == gid assumption when invoking chown.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-08-17 12:59:09 -07:00
Hemanth V. Alluri
dac068df31 production: Finish adding production support for Zulip on Debian Buster.
This commit finishes adding end-to-end support for the install script
on Debian Buster (making it production ready). Some support for this
was already added in prior commits such as
99414e2d96.

We plan to revert the postgres hunks of this once we've built
tsearch_extras for our packagecloud archive.

Fixes #9828.
2019-08-17 12:22:32 -07:00
Anders Kaseorg
037b16888f docs: Suggest installing vagrant-vbguest plugin.
This plugin automatically updates the VirtualBox Guest Additions in
the guest, which makes shared folders work more reliably.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-08-16 13:57:07 -07:00
Anders Kaseorg
ab89f40a66 generate-custom-icon-webfont: Replace with webpack webfonts-loader.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-07-18 12:00:00 -07:00
Hemanth V. Alluri
cb21207a4b docs: Add a section about enabling docker before doing vagrant up.
Many Linux distros like Debian Buster, Fedora 29, etc. have a policy
where any services installed are disabled by default. So we should let
the developer know that they should explicitly enable and start the
Docker daemon.

Also, we should be verbose on how to do vagrant up using Docker as a
provider specifically (and similar for Virtualbox).
2019-07-17 16:29:25 -07:00
Amal Rajan
09049f1678 provision: Add provision support for Ubuntu 19.04
This commit adds support for Ubuntu 19.04 in the development
environment.
2019-07-13 16:44:09 -07:00
Vinit Singh
3cc790420a docs: Update docs to reflect the use of Ubuntu bionic in development. 2019-07-08 13:25:54 -07:00
YashRE42
c8b6afdca8 docs: Add warning about incorrect proxy settings for Vagrant setup.
Tweaked by tabbott for further clarity.
2019-07-08 12:30:31 -07:00
Thomas Ip
8c199fd44c webpack: Use handlebars-loader to handle frontend templates.
And remove the compile-handlebars-templates system.
2019-07-02 16:23:29 -07:00
Aman Agrawal
a264c84397 docs: Give additional solutions for "os.symlink error" on windows. 2019-06-27 14:49:47 -07:00
Anders Kaseorg
4e1060b29e docs: Remove references to Ubuntu 14.04 Trusty as a supported platform.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-06-26 15:09:13 -07:00
Anders Kaseorg
b4204e7cfd Remove legacy (pre-Vagrant) Docker development environment setup.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-06-26 10:58:02 -07:00
Tim Abbott
320812ccec docs: Reorganize remote development docs a bit. 2019-05-31 17:35:10 -07:00
Kanishk Kakar
747096c123 docs: Add rmate instructions for remote dev. 2019-05-31 17:15:56 -07:00
Anders Kaseorg
f0b72a81f3 docs: Document UBUNTU_MIRROR option.
Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-05-29 16:21:53 -07:00
Anders Kaseorg
ae393456f9 Vagrantfile: Remove LXC provider; move Docker provider to default.
This also means the default dev environment is now based on Ubuntu
18.04 (bionic), part of our overall effort to migrate off Ubuntu
Trusty.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2019-05-29 16:12:30 -07:00
Tim Abbott
669ac27d23 docs: Remove extensive motd from example output.
We don't actually display this motd anyway.
2019-05-24 15:49:28 -07:00
Tim Abbott
7042965102 docs: Remove Vagrant docs zulip-devel recommendation.
Nobody has actually gone to the email list in like 2 years, and we
just renamed it to be an announcement list.
2019-05-20 15:37:13 -07:00
Mayank Madan
99414e2d96 provision: Add support for Debian 10 Buster. 2019-05-05 17:57:19 -07:00
Tim Abbott
0a656bec8a docs: Fix incorrect path to remote development nginx file. 2019-04-11 16:24:57 -07:00
Wyatt Hoodes
aac09b22ac vagrant: Add option to specify system settings.
Two variables were declared and assigned the respective values of the
default settings for the system. If the keyword is used in the
~/.zulip-vagrant-config file, the value is assigned to the variable.

There is no straightforward way to customize the virtual machine's
number of cpus or memory, this commit addresses that fact.
2019-04-11 12:28:12 -07:00
Tim Abbott
abc7a00d35 Revert "docs: Update .html links to .md."
This doesn't work without the CommonMark upgrade.

This reverts commit c87893feea.
2019-04-05 17:58:54 -07:00
Samuel Searles-Bryant
c87893feea docs: Update .html links to .md.
Sphinx/ReadTheDocs supports automatically translating links written as
to `.md` files to point to the corresponding `.html` files, so this
migration does not change the resulting HTML output in ReadTheDocs.
But it does fix apparent broken links on GitHub.

This doesn't prevent people from reading the documentation on GitHub
(so doesn't mitigate the fact that some rtd-specific syntax does not
render properly on GH), but it will prevent us from getting erroneous
issues reported about the hyperlinks not working.

Fixes: #11087.
2019-04-05 17:16:25 -07:00
Zach Wener-Fligner
ab15cd13a6 docs: Modify dev SSL/certbot setup docs to match script.
The docs specify passing hostname with the --hostname flag, which
doesn't match the actual usage in scripts/setup/setup-certbot. This
change fixes the docs to match the actual usage.
2019-03-19 10:45:53 -07:00
AsociTon
87f7a578e6 docs: Document a Windows GitHub Desktop bug.
Add the recommendation in docs for not using GitHub Desktop client for
zulip code as it has a bug of keeping the symlinks disabled and ignoring
any configuration done to re-enable it resulting into failure to identify
the received symlinks leading to failing test cases in the zulip development
environment.
2019-03-15 09:48:28 -07:00
Dominik Grybos
0b02ea4e54 docs: Add troublshooting note for macOS Mojave NFS issues.
Fixes #11546.
2019-03-09 16:49:34 -08:00
Tim Abbott
fac875a922 docs: Eliminate most development manual install docs.
This documentation had a tendency to bitrot, and in any case now that
we have tooling for doing Fedora (etc.) from provision, it's likely
the case that adding other Linux/UNIX distros we care about to
provision would not be difficult and is a better path than maintaining
this manually-curated duplicate of `tools/provision`.

Further, even if this documentation was maintained, one would still
end up wanting to run `provision` after rebasing a branch, so it was
never particularly practical for extended development.
2019-03-09 16:39:06 -08:00
Mayank Madan
264c2e9803 provision: Add provision support for Ubuntu 18.10.
Note that this is only support for Ubuntu 18.10 in the development
environment.
2019-03-09 16:01:46 -08:00
Tim Abbott
625c4aaca8 docs: Update recommendations on Vagrant version.
The history of this was that there was a period where half of Vagrant
releases were broken (for everyone, e.g. downloading a base container
didn't work).  It seems Vagrant has cleaned up their act at this point.

We really just want 2.0.x, not a specific version, and the direct
links we had are now quite old.

Thanks to Jonathon Hinchley for reporting this.

Fixes #11836.
2019-03-08 17:34:11 -08:00
Priyanshu Singh
61c0796025 docs: Document how to handle Hyper-V provisioning errors.
Specifically, the problem here is that Vagrant is mis-detecting what
provider to use.
2019-03-02 08:47:04 -08:00
Paurakh Sharma Humagain
e9131b031b docs: Make the vagrant guide clone steps pasteable.
After the user clones Zulip they should first get inside the directory
before adding the remote upstream.

Tweaked by tabbott to make a bit simpler.
2019-02-27 12:09:09 -08:00
Anders Kaseorg
c6da0d13cd docs: Update links to skip help.github.com redirects.
help.github.com seems to have a bug where HEAD on a redirected page
returns 404.  This causes tools/test-documentation to fail.  Fix it by
skipping the redirects.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2019-02-26 11:03:08 -08:00
rht
d815239aac docs: Update CentOS/RHEL python3 ln command in setup-advanced. 2019-01-04 15:23:45 -08:00