zulip/tools
Steve Howell a9356508ca events: Stop sending occupy/vacate events.
We used to send occupy/vacate events when
either the first person entered a stream
or the last person exited.

It appears that our two main apps have never
looked at these events.  Instead, it's
generally the case that clients handle
events related to stream creation/deactivation
and subscribe/unsubscribe.

Note that we removed the apply_events code
related to these events.  This doesn't affect
the webapp, because the webapp doesn't care
about the "streams" field in do_events_register.

There is a theoretical situation where a
third party client could be the victim of
a race where the "streams" data includes
a stream where the last subscriber has left.
I suspect in most of those situations it
will be harmless, or possibly even helpful
to the extent that they'll learn about
streams that are in a "quasi" state where
they're activated but not occupied.

We could try to patch apply_event to
detect when subscriptions get added
or removed. Or we could just make the
"streams" piece of do_events_register
not care about occupy/vacate semantics.
I favor the latter, since it might
actually be what users what, and it will
also simplify the code and improve
performance.
2020-10-14 10:53:10 -07:00
..
ci production-verify: Fix puppet path. 2020-10-06 17:26:14 -07:00
documentation_crawler python: Pre-fix a few spots for better Black formatting. 2020-09-03 17:51:09 -07:00
droplets python: Elide default for store_{true,false} argparse arguments. 2020-09-03 16:17:14 -07:00
i18n docs: Add comment links to i18n documentation. 2020-09-18 11:44:04 -07:00
lib docs: Add spaces to “check out”, “log in”, “set up”, “sign up” as verbs. 2020-10-13 15:47:13 -07:00
linter_lib lint: Remove custom rule already enforced by Prettier. 2020-09-22 18:11:21 -07:00
node_lib js: Elide .js and .ts extensions from imports and requires. 2020-09-01 16:43:02 -07:00
setup docs: Add spaces to “check out”, “log in”, “set up”, “sign up” as verbs. 2020-10-13 15:47:13 -07:00
test-install puppet: Don’t install netcat. 2020-09-03 10:33:47 -07:00
tests queue: Eliminate useless "burst" concept in monitoring. 2020-09-21 15:24:04 -07:00
wsl tools: Add script to start database services for WSL. 2020-04-11 12:05:33 -07:00
zulip-export zulip-export: Specify --stream argument as required. 2020-09-03 16:17:14 -07:00
__init__.py Add __init__.py to tools/ and tools/setup/. 2016-07-20 18:20:37 -07:00
build-docs docs: Replace Makefile based on output of newer sphinx-quickstart. 2019-12-02 18:39:33 -08:00
build-release-tarball docs: Capitalize Markdown consistently. 2020-08-11 10:23:06 -07:00
cache-zulip-git-version version: Only let git describe match tags beginning with a digit. 2019-10-24 14:54:45 -07:00
check-capitalization python: Elide default for store_{true,false} argparse arguments. 2020-09-03 16:17:14 -07:00
check-frontend-i18n python: Elide default for store_{true,false} argparse arguments. 2020-09-03 16:17:14 -07:00
check-issue-labels python: Elide default for store_{true,false} argparse arguments. 2020-09-03 16:17:14 -07:00
check-node-fixtures event_schema: Add documentation and rename a few functions. 2020-09-25 12:53:00 -07:00
check-openapi openapi: Use at most one inline subschema in allOf. 2020-09-30 19:45:28 -07:00
check-provision python: Elide default for store_{true,false} argparse arguments. 2020-09-03 16:17:14 -07:00
check-templates python: Elide default for store_{true,false} argparse arguments. 2020-09-03 16:17:14 -07:00
check-thirdparty python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
clean-branches text: Fix some typos (most of them found and fixed by codespell). 2020-03-27 17:25:56 -07:00
clean-repo clean-repo: Revert optimization to .pyc removal. 2017-07-30 17:24:55 -07:00
commit-message-lint docs: Use consistent spelling of CircleCI. 2020-04-28 11:26:58 -07:00
commit-msg Use #!/usr/bin/env for bash shebangs. 2018-12-17 17:21:08 -08:00
conf.ini-template Add tool for scanning issues without area labels. 2017-02-03 09:59:35 -08:00
coveragerc parallel: Remove run_parallel. 2020-09-14 16:22:23 -07:00
create-test-api-docs python: Catch specific exceptions from orjson. 2020-10-11 16:11:41 -07:00
debug-require-webpack-plugin.ts debug-require: Throw errors for unknown and unloaded modules. 2020-07-29 11:17:24 -07:00
debug-require.js js: Add "use strict" directive to CommonJS files. 2020-07-31 22:09:46 -07:00
deploy-branch Use #!/usr/bin/env for bash shebangs. 2018-12-17 17:21:08 -08:00
diagnose python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
documentation.vnufilter requirements: Upgrade Python requirements. 2020-06-25 13:14:37 -07:00
duplicate_commits.json tools: Move duplicate_commits.json file to tools directory. 2020-04-07 16:06:29 -07:00
fetch-contributor-data team: Include users without an associated GitHub profile. 2020-07-24 10:51:47 -07:00
fetch-pull-request tools: Use require_clean_work_tree everywhere. 2020-04-06 17:52:10 -07:00
fetch-rebase-pull-request tools: Use require_clean_work_tree everywhere. 2020-04-06 17:52:10 -07:00
find-unused-css styles: Rename .scss files back to .css. 2020-09-15 16:33:28 -07:00
generate-integration-docs-screenshot events: Stop sending occupy/vacate events. 2020-10-14 10:53:10 -07:00
lint lint: Add missing spaces at line wraps, remove periods. 2020-10-04 17:57:55 -07:00
message-screenshot.js eslint: Fix unicorn/catch-error-name. 2020-10-07 16:00:33 -07:00
pre-commit lint: Add --skip arg to replace --no-gitlint/mypy. 2019-06-18 11:32:04 -07:00
pretty-print-html python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
provision provision: Check for old Ubuntu or Python before starting Python. 2020-09-02 17:27:14 -07:00
push-to-pull-request reset-to-pull-request: Add a usage message. 2020-02-11 14:45:17 -08:00
README.md cleanup: Delete trailing newlines. 2019-08-06 23:29:11 -07:00
rebuild-dev-database terminate-psql-sessions: Rely on the caller to set PGHOST, PGUSER. 2020-06-15 21:37:14 -07:00
rebuild-test-database terminate-psql-sessions: Rely on the caller to set PGHOST, PGUSER. 2020-06-15 21:37:14 -07:00
release-tarball-exclude.txt tests: Move zerver/fixtures to zerver/tests/fixtures for clarity. 2018-04-19 21:50:17 -07:00
renumber-migrations renumber-migrations: Skip migration 0261. 2020-06-18 15:42:57 -07:00
reset-to-pull-request tools: Use require_clean_work_tree everywhere. 2020-04-06 17:52:10 -07:00
review python: Convert more percent formatting to Python 3.6 f-strings. 2020-06-14 23:27:22 -07:00
run-dev.py run-dev: Wait for children to exit on Ctrl+C after killing them. 2020-10-07 16:15:19 -07:00
run-mypy python: Replace list literal concatenation with * unpacking. 2020-09-02 11:15:41 -07:00
run-tsc tsconfig: Move to top level. 2019-11-04 18:12:11 -08:00
run-yarn-deduplicate yarn.lock: Share duplicate packages with yarn-deduplicate. 2019-09-02 19:30:09 -07:00
semgrep.yml python: Use standard secrets module to generate random tokens. 2020-09-09 15:52:57 -07:00
setup-git-repo Use #!/usr/bin/env for bash shebangs. 2018-12-17 17:21:08 -08:00
show-profile-results python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
stop-run-dev python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
test-all casper: Remove few traces of casper. 2020-08-30 17:16:02 -07:00
test-api python: Elide default for store_{true,false} argparse arguments. 2020-09-03 16:17:14 -07:00
test-backend fetch_initial_state_data: Handle case of web public guests. 2020-09-23 12:11:15 -07:00
test-documentation test-documentation: Invoke sphinx-build via make instead of directly. 2019-12-02 18:39:33 -08:00
test-help-documentation tests: Remove use_db flag from test_server_running. 2020-09-18 15:13:40 -07:00
test-js-with-node recent_topics: Test deleting messages not stored locally. 2020-09-15 17:03:27 -07:00
test-js-with-puppeteer puppeteer: Rename CASPER_TESTS env variable to PUPPETEER_TESTS. 2020-09-09 13:38:39 -04:00
test-locked-requirements python: Replace list literal concatenation with * unpacking. 2020-09-02 11:15:41 -07:00
test-migrations requirements: Update Python requirements. 2020-06-03 17:23:20 -07:00
test-queue-worker-reload python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
test-run-dev python: Sort imports with isort. 2020-06-11 16:45:32 -07:00
test-tools python: Elide default for store_{true,false} argparse arguments. 2020-09-03 16:17:14 -07:00
update-locked-requirements requirements: Upgrade Thumbor to 7.0.0a5 on Python 3. 2020-07-06 16:09:53 -07:00
update-prod-static python: Prefer --flag=option over --flag option. 2020-09-03 17:51:09 -07:00
update-zuliprc-api-field python: Elide type=str from argparse arguments. 2020-09-03 16:17:14 -07:00
webpack webpack: Use Webpack’s mode option rather than repurposing env. 2020-09-28 10:57:08 -07:00
webpack.assets.json dependencies: Downgrade simplebar to 5.2.1. 2020-09-24 16:13:47 -07:00
zanitizer docs: Avoid hardcoded /tmp paths in miscellaneous documentation. 2019-01-15 16:16:12 -08:00
zanitizer_config.pm.sample zanitizer_config.pm.sample: keep_file → scrub_filename 2018-09-23 20:42:27 -07:00

This directory contains scripts that are used in building, managing, testing, and other forms of work in a Zulip development environment. Note that tools that are also useful in production belong in scripts/ or should be Django management commands.

For more details, see https://zulip.readthedocs.io/en/latest/overview/directory-structure.html.