zulip/tools
Steve Howell 51f74a7fd8 provision: Manage digests more rigorously.
We now have two functions related to digests
for processes:

    is_digest_obsolete
    write_digest_file

In most cases we now **wait** to write the
digest file until after we've successfully
run a process with its new inputs.

In one place, for database migrations, we
continue to write the digest optimistically.
We'll want to fix this, but it requires a
little more code cleanup.

Here is the typical sequence of events:

    NEVER RUN -
        is_digest_obsolete returns True
        quickly (we don't compute a hash)

        write_digest_file does a write (duh)

    AFTER NO CHANGES -
        is_digest_obsolete returns False
        after reading one file for old
        hash and multiple files to compute
        hash

        most callers skip write_digest_file

        (no files are changed)

    AFTER SOME CHANGES -
        is_digest_obsolete returns False
        after doing full checks

        most callers call write_digest_file
        *after* running a process
2020-04-20 15:06:47 -07:00
..
ci nginx: Set X-XSS-Protection: 1; mode=block. 2020-04-05 16:13:53 -07:00
circleci circleci: Remove Xenial build as we are deprecating Xenial. 2020-04-19 11:38:49 -07:00
documentation_crawler python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
droplets python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
i18n python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
lib provision: Manage digests more rigorously. 2020-04-20 15:06:47 -07:00
linter_lib python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
setup generate_zulip_bots_static_files: Lazy import cairosvg. 2020-04-20 09:14:08 -07:00
test-install test-install: Use lxc-destroy -f instead of lxc-stop. 2019-12-18 03:48:39 -08:00
tests check-rabbitmq-queue: Add a simple algorithm to analyze queue stats. 2020-04-09 13:41:01 -07:00
wsl tools: Add script to start database services for WSL. 2020-04-11 12:05:33 -07:00
zulip-export python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
README.md cleanup: Delete trailing newlines. 2019-08-06 23:29:11 -07:00
__init__.py
build-docs docs: Replace Makefile based on output of newer sphinx-quickstart. 2019-12-02 18:39:33 -08:00
build-release-tarball build-release-tarball: Run with zulip-py-venv symlink present. 2019-07-21 18:43:52 -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 i18n: Move static/locale back to locale. 2019-07-02 14:57:55 -07:00
check-frontend-i18n python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
check-issue-labels python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
check-openapi js: Convert a.indexOf(…) !== -1 to a.includes(…). 2020-02-10 14:08:12 -08:00
check-provision python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
check-templates python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -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
commit-message-lint commit-message-lint: Detect the upstream remote name. 2020-02-04 13:57:51 -08:00
commit-msg
conf.ini-template
coveragerc test-backend: Remove rate_limiter from not_yet_fully_covered. 2020-04-15 11:20:37 -07:00
create-test-api-docs python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
debug-require-webpack-plugin.ts webpack: Generalize debug-require-webpack-plugin interface. 2020-02-25 14:01:06 -08:00
debug-require.js webpack: Generalize debug-require-webpack-plugin interface. 2020-02-25 14:01:06 -08:00
deploy-branch
diagnose python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
django-template-graph
do-destroy-rebuild-database flush-memcached: Respect MEMCACHED_LOCATION; handle errors. 2019-10-01 16:05:55 -07:00
do-destroy-rebuild-test-database
documentation.vnufilter test-documentation: Validate HTML with vnu.jar. 2019-06-27 14:53:21 -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 fetch-contributor-data: Fix running in production. 2020-04-12 12:14:07 -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
generate-integration-docs-screenshot generate-integration-docs-screenshot: Allow sending custom headers. 2020-04-17 09:41:55 -07:00
get-handlebar-vars python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
html-grep python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
js-dep-visualizer.py python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
lint python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
message-screenshot.js message-screenshot: Create image directory if it doesn't exist. 2020-04-17 09:41:55 -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: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
provision install, provision: Treat all nonzero exit codes as failure, not just 1. 2019-07-19 11:22:11 -07:00
push-to-pull-request reset-to-pull-request: Add a usage message. 2020-02-11 14:45:17 -08:00
release-tarball-exclude.txt
renumber-migrations python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
replacer python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
reset-to-pull-request tools: Use require_clean_work_tree everywhere. 2020-04-06 17:52:10 -07:00
review python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
run-dev.py python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
run-mypy lint: Run mypy with --no-error-summary. 2019-11-13 13:26:02 -08: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
setup-git-repo
sgrep.yml sgrep: Install syntactic code search tool as an external linter. 2020-04-01 15:08:34 -07:00
show-profile-results
stop-run-dev python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
test-all lint: Use --groups to specify specific groups to run. 2019-06-23 22:23:15 -07:00
test-api populate_db, tests: Restrict emails in zulip realm. 2020-03-19 16:21:31 -07:00
test-backend test-backend: Remove rate_limiter from not_yet_fully_covered. 2020-04-15 11:20:37 -07:00
test-documentation test-documentation: Invoke sphinx-build via make instead of directly. 2019-12-02 18:39:33 -08:00
test-emoji-name-scripts python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
test-help-documentation test-help-documentation: Bind vnu.jar to 127.0.0.1. 2019-06-28 18:18:29 -07:00
test-js-with-casper
test-js-with-node python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
test-js-with-puppeteer test-js-with-puppeteer: Extract code to prepare for puppeteer run. 2020-04-17 09:41:55 -07:00
test-locked-requirements python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
test-migrations requirements: Upgrade django-otp from 0.5.2 to 0.6.0. 2019-07-07 22:28:54 -07:00
test-queue-worker-reload requirements: Upgrade mypy from 0.761 to 0.770. 2020-04-18 13:09:51 -07:00
test-run-dev Revert "test-run-dev: Use a pipe rather than polling a log file." 2020-03-17 14:16:18 -07:00
test-tools python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
update-locked-requirements update-locked-requirements: Generate prod locks from dev locks. 2020-04-18 13:09:51 -07:00
update-prod-static scripts: Rename inline-email-css to inline_email_css.py. 2020-04-10 15:29:47 -07:00
update-zuliprc-api-field python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
webpack python: Convert function type annotations to Python 3 style. 2020-04-18 20:42:48 -07:00
webpack-helpers.ts js: Automatically convert var to let and const in more files. 2019-11-20 14:10:47 -08:00
webpack.assets.json emoji: Resolve emoji sprite sheets and stylesheets through Webpack. 2020-02-25 14:43:46 -08:00
webpack.config.ts static: Serve webpack bundles from the root domain. 2020-04-10 00:48:02 -07:00
zanitizer
zanitizer_config.pm.sample

README.md

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.