zulip/tools
Steve Howell 5fd24bc9a2 event checkers: Replace data_types.py with pydantic.
This commit completely eliminates the home-grown
data_types.py system for checking types.

Now, in our unit tests and schema checkers, we use
pydantic types to check the shape of the event
objects that are either in our JSON fixtures or
that get captured by test_events.py.

The code in event_types.py was completely
code-generated from the legacy version of
event_schema.py, so there shouldn't be any
manual errors in how I ported the types over.
(The code generation was non-trivial, though,
as I had to account for changes from
snake_case to CamelCase and deal with some
other anomalies.)
2025-01-02 12:23:35 -08:00
..
ci ci: Enable Python warnings. 2024-10-23 10:55:55 -07:00
documentation_crawler requirements: Upgrade Python requirements. 2024-11-19 11:09:34 -08:00
droplets ruff: Fix PLR6104 Use += to perform an augmented assignment directly. 2024-07-14 13:49:51 -07:00
i18n ruff: Fix PLC0206 Extracting value from dictionary without calling .items(). 2024-12-21 21:06:53 -08:00
lib provision: Source virtualenv for login shells conditionally. 2025-01-02 09:11:43 -08:00
linter_lib event checkers: Replace data_types.py with pydantic. 2025-01-02 12:23:35 -08:00
node_lib web: Set "type": "module" and convert various CJS files to ESM. 2024-11-13 09:18:56 -08:00
oneclickapps ruff: Fix UP006 Use list instead of List for type annotation. 2024-07-13 22:28:22 -07:00
screenshots tools: Use top-level await. 2024-12-10 19:16:25 -08:00
setup ruff: Fix PLC0206 Extracting value from dictionary without calling .items(). 2024-12-21 21:06:53 -08:00
test-install Remove support for Ubuntu 20.04 and Debian 11. 2024-04-01 13:27:39 -07:00
tests ruff: Bump target-version from py38 to py310. 2024-07-13 22:28:22 -07:00
zulip-export python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
__init__.py
backport-pull-request backport: Fix the commit-ids that are used. 2024-05-06 14:47:22 -07:00
build-docs tools: Use root-based absolute import for tools.lib, etc. 2021-07-05 12:21:52 -07:00
build-help-center run-dev: Add option to host help center with starlight. 2024-08-02 18:18:01 -07:00
build-release-tarball emails: Inline CSS in emails in build_email. 2023-04-05 12:22:29 -07:00
cache-zulip-git-version build-release-tarball: Override merge-base for full official releases. 2022-11-15 12:50:41 -08:00
check-capitalization python: Mark regexes as raw strings. 2024-04-26 12:30:31 -07:00
check-frontend-i18n ruff: Fix UP006 Use list instead of List for type annotation. 2024-07-13 22:28:22 -07:00
check-issue-labels ruff: Fix UP007 Use X | Y for type annotations. 2024-07-13 22:28:22 -07:00
check-openapi tools: Use top-level await. 2024-12-10 19:16:25 -08:00
check-provision tools: Rename force argument to skip-provision-check 2021-03-03 09:17:49 -08:00
check-schemas event checkers: Replace data_types.py with pydantic. 2025-01-02 12:23:35 -08:00
check-templates ruff: Fix UP035 Import from collections.abc, typing instead. 2024-07-13 22:28:22 -07:00
check-thirdparty check-thirdparty: License under GPLv2+. 2022-06-26 17:33:11 -07:00
clean-branches Rename default branch to ‘main’. 2021-09-06 12:56:35 -07:00
commit-message-lint commit-message-lint: Take release branches into account. 2022-07-22 10:39:05 -07:00
commit-msg commit-msg: Don’t change the current directory for non-Vagrant. 2023-05-23 12:24:44 -07:00
conf.ini-template
convert-help-center-docs-to-mdx help-beta: Add support for images. 2024-10-24 13:01:50 -07:00
coveragerc coverage: Clean up coverage configuration. 2023-05-31 13:53:04 -07:00
deploy-branch Rename default branch to ‘main’. 2021-09-06 12:56:35 -07:00
diagnose ruff: Fix UP035 Import from collections.abc, typing instead. 2024-07-13 22:28:22 -07:00
documentation.vnufilter docs: Update VNU filter to ignore warnings about sphinx-design. 2024-03-22 16:54:57 -07:00
duplicate_commits.json
fetch-contributor-data ruff: Fix UP007 Use X | Y for type annotations. 2024-07-13 22:28:22 -07:00
fetch-pull-request tools: Avoid readlink -f in *-pull-request scripts. 2021-04-30 14:57:13 -07:00
fetch-rebase-pull-request Rename default branch to ‘main’. 2021-09-06 12:56:35 -07:00
find-unused-css web: Move web app to ‘web’ directory. 2023-02-23 16:04:17 -08:00
lint lint: Correct path to ESLint configuration. 2024-12-01 22:14:35 -08:00
pre-commit tools: Rename force argument to skip-provision-check 2021-03-03 09:17:49 -08:00
provision Remove support for Ubuntu 20.04 and Debian 11. 2024-04-01 13:27:39 -07:00
push-to-pull-request push-to-pull-request: Accept intermixed options and arguments again. 2024-02-01 17:08:44 -08:00
python-warnings.bash requirements: Upgrade Python requirements. 2024-11-19 11:09:34 -08:00
README.md
rebuild-dev-database
rebuild-test-database refactor: Rename huddle to direct_message_group in non api files. 2024-07-31 23:25:56 -07:00
release release: Parse version.py using the language it was written in. 2024-07-25 13:17:49 -07:00
release-tarball-exclude.txt puppet: Rename puppet/zulip_ops to puppet/kandra. 2024-02-06 17:56:27 -08:00
renumber-migrations ruff: Fix SIM115 Use a context manager for opening files. 2024-10-20 18:16:27 -07:00
reset-to-pull-request tools: Avoid readlink -f in *-pull-request scripts. 2021-04-30 14:57:13 -07:00
review ruff: Fix UP006 Use list instead of List for type annotation. 2024-07-13 22:28:22 -07:00
run-codespell dependencies: Switch to pnpm. 2023-03-20 15:48:29 -07:00
run-dev run-dev: Support extra MIME types from zerver.lib.mime_types. 2024-12-17 09:34:29 -08:00
run-mypy ruff: Fix UP006 Use list instead of List for type annotation. 2024-07-13 22:28:22 -07:00
run-tsc
semgrep-py.yml endpoints: Remove the has_request_variables decorator. 2024-09-05 16:02:12 -07:00
setup-git-repo shfmt: Reformat shell scripts with shfmt. 2020-10-15 15:16:00 -07:00
show-profile-results python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
stop-run-dev python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
tail-ses ruff: Fix SIM117 Use a single with statement with multiple contexts. 2024-07-14 13:48:32 -07:00
test-all install-shellcheck: Upgrade ShellCheck to 0.9.0. 2023-01-04 14:01:34 -08:00
test-api update_user_backend: Allow authorized org owners to change user emails. 2024-10-22 16:36:38 -07:00
test-backend test_backend: For serial mode for stripe fixture generation. 2024-09-19 11:26:21 -07:00
test-documentation ruff: Fix UP035 Import from collections.abc, typing instead. 2024-07-13 22:28:22 -07:00
test-help-documentation ruff: Bump target-version from py38 to py310. 2024-07-13 22:28:22 -07:00
test-js-with-node types: Extract and correct user_group_update_event_schema. 2024-12-30 09:42:26 -08:00
test-js-with-puppeteer test-js-with-puppeteer: Run with node --experimental-strip-types. 2024-11-13 09:18:56 -08:00
test-locked-requirements ruff: Fix SIM117 Use a single with statement with multiple contexts. 2024-07-14 13:48:32 -07:00
test-migrations requirements: Upgrade Python requirements. 2021-04-15 21:47:33 -07:00
test-queue-worker-reload ruff: Fix UP007 Use X | Y for type annotations. 2024-07-13 22:28:22 -07:00
test-run-dev ruff: Fix UP006 Use list instead of List for type annotation. 2024-07-13 22:28:22 -07:00
test-tools tools: Use root-based absolute import for tools.lib, etc. 2021-07-05 12:21:52 -07:00
total-contributions ruff: Fix UP006 Use list instead of List for type annotation. 2024-07-13 22:28:22 -07:00
update-locked-requirements requirements: Remove unused mypy.txt lock file. 2022-09-08 11:08:06 -07:00
update-prod-static update-prod-static: Only run generate_landing_page_images if necessary. 2023-10-05 09:04:33 -07:00
update-zuliprc-api-field python: Replace universal_newlines with text. 2022-01-23 22:16:01 -08:00
upload-release python: Simplify with str.removeprefix, str.removesuffix. 2024-09-03 12:30:16 -07:00
webpack webpack: Run with node --experimental-strip-types. 2024-11-13 09:18:56 -08:00
zanitizer zanitizer: Reformat with perltidy. 2021-03-24 12:12:04 -07:00
zanitizer_config.pm.sample zanitizer: Reformat with perltidy. 2021-03-24 12:12:04 -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.