Commit Graph

48 Commits

Author SHA1 Message Date
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
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
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 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
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
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
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 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
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
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
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
Vishnu Ks c3aa7909ce docs: Update docs/git/ directory to reflect CI changes.
This isn't complete, in that we still need to rename the ReadTheDocs
articles (e.g.).
2018-12-11 12:46:18 -08:00
ruchit2801 01f634cea0 docs: Update virtualbox link to not pin a version.
Older versions of virtual box were giving installation error in new
MacOS Mojave.  While originally we considered changing the docs to
point to the current version 5.2.20, it seems better to just not pin a
version.

Significantly tweaked by tabbott.
2018-11-02 17:16:44 -07:00
Puneeth Chaganti 19990b06e9 vagrant: Use id -g for finding a user's group.
On OSX, the user id and group id don't match.  So while the previous
code was always wrong, it produced incorrect output there.  We can fix
this by replacing `whoami` with `id -g` for finding the current user's
group ID.
2018-11-01 10:08:08 -07:00
Tim Abbott 8c100f45f0 docs: Update development environment docs for Ubuntu bionic.
We also clean up some flows in the documentation that were somewhat
confusing that I noticed while working on this.
2018-05-30 10:00:41 -07:00
Abhigyan Khaund fda786952e documentation: Migrate all CZO stream links to new stream URL style
This includes changes like changing CZO stream URLs from new.20members
to 95-new-members.
2018-05-24 15:15:34 -07:00
Tim Abbott 63a01d35e1 docs: Remove now-obsolete trusty64 box instructions.
This annoying Vagrant bug hasn't been super relevant for over a year.
2018-05-17 07:33:24 -07:00
Tim Abbott 958be1ebb6 docs: Clarify Vagrant version recommendations. 2018-05-17 07:30:24 -07:00
Hendy Irawan bb5457c2f7 docs: Clarify need to provision from /srv/zulip when troubleshooting.
Text tweaked slightly by tabbott.
2018-05-15 09:43:09 -07:00
Yago González a575d69eec docs: Improve dev env setup for Debian. 2018-05-13 15:02:48 -07:00
gooca 64dac1bb2e Docs: Added "connect the zulip upstream repo" to more places. 2018-03-18 23:02:09 -07:00
knovokresch eb7a744639 docs: Extend troubleshooting guide to cover MacOS High Sierra issue.
Significantly tweaked by tabbott to provide more clarity about the
bug, and also link to this issue early in the MacOS requirements
sections.
2018-03-03 08:37:26 -08:00
Greg Price 49252c97d2 docs: Fix explanation of Debian LXC installation.
This didn't really make much sense - it presented a quickstart summary
of the instructions as an item in the list of differences from the
Ubuntu case, plus that quickstart only incorporated one of the two
actual differences so it didn't work anyway.  Given the networking
stuff, an actual quickstart isn't in the cards, so just cut that.

Also fix some small things while we're here.
2018-02-27 17:16:31 -08:00
Tim Abbott db88634bcf docs: Better document how Debian LXC installation works.
This fixes an issue where users would try to setup LXC networking
before installing the LXC package.

Fixes #8503, thanks to @Shobitha-M for reporting.
2018-02-24 07:45:58 -08:00
Shivam Gera 2733c0551e docs: Add VT-X unavailability error 2018-02-18 08:09:55 -05:00
Aman Agrawal 0db9f55924 Update versions for Vagrant and VirtualBox.
Update version of Vagrant from 1.8.6 to 2.0.2.
Update version of VirtualBox from 5.1.8 to 5.2.6.

We needed to update Vagrant because older versions have networking
problems on modern Macs, resulting in weird `apt` errors when
provisioning.

Commit message and some text tweaked by tabbott.
2018-02-12 15:46:59 -08:00
Jeremy Zhou 48163db479 docs: Update Windows installation instructions in setup-vagrant.md.
Vagrant 1.8.6 is only compatible with VirtualBox <= 5.1, so I made a
note to use version < 5.2.
2017-12-20 19:16:25 -08:00
Harshit Bansal fa3602b61f docs: Split 'git-guide.md`.
This should make our Git documentation more readable and less
intimidating.
2017-11-23 16:04:18 -08:00
Mohd Ali Rizwi 66d658d7f1 docs: Use `git clone -c` to set `git pull` to rebase by default.
This updates the developer documentation to recommend `git clone -c`
to set the git pull mode to be rebase by default in the repository
configuration.

The hope is that this will help minimize how often new contributors
end up accidentally messing up their PRs by using `git pull`.

Tweaked by tabbott to fix broken links and optimize the language.

Fixes: #7022.
2017-11-16 14:35:02 -08:00
KiranS 92caa4abab docs: Add more troubleshooting cases to Vagrant guide. 2017-11-16 14:12:38 -08:00
David Rosa Tamsen 7072fa5b37 docs: Reorganize developer docs to improve navigation.
This commit helps reduce clutter on the navigation sidebar.
Creates new directories and moves relevant files into them.
Modifies index.rst, symlinks, and image paths accordingly.

This commit also enables expandable/collapsible navigation items,
renames files in docs/development and docs/production,
modifies /tools/test-documentation so that it overrides a theme setting,
Also updates links to other docs, file paths in the codebase that point
to developer documents, and files that should be excluded from lint tests.

Note that this commit does not update direct links to
zulip.readthedocs.io in the codebase; those will be resolved in an
upcoming follow-up commit (it'll be easier to verify all the links
once this is merged and ReadTheDocs is updated).

Fixes #5265.
2017-11-16 09:45:08 -08:00