=================== Directory structure =================== This page documents the Zulip directory structure and how to decide where to put a file. Scripts ======= +--------------------+-----------------------------------------------------------------------------------+ | ``scripts/`` | Scripts that production deployments might run manually (e.g. ``restart-server``) | +--------------------+-----------------------------------------------------------------------------------+ | ``scripts/lib/`` | Scripts that are needed on production deployments but humans should never run | +--------------------+-----------------------------------------------------------------------------------+ | ``scripts/setup/`` | Tools that production deployments will only run once, during installation | +--------------------+-----------------------------------------------------------------------------------+ | ``tools/`` | Development tools | +--------------------+-----------------------------------------------------------------------------------+ Bots ==== +------------------------+----------------------------------------------------------------------+ | ``api/integrations`` | Bots distributed as part of the Zulip API bundle. | +------------------------+----------------------------------------------------------------------+ | ``bots/`` | Previously Zulip internal bots. These usually need a bit of work. | +------------------------+----------------------------------------------------------------------+ Management commands =================== +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------+ | ``zerver/management/commands/`` | Management commands one might run at a production deployment site (e.g. scripts to change a value or deactivate a user properly) | +-------------------------------------+------------------------------------------------------------------------------------------------------------------------------------+ Views ===== +--------------------------------+-----------------------------------------+ | ``zerver/tornadoviews.py`` | Tornado views | +--------------------------------+-----------------------------------------+ | ``zerver/views/webhooks.py`` | Webhook views | +--------------------------------+-----------------------------------------+ | ``zerver/views/messages.py`` | message-related views | +--------------------------------+-----------------------------------------+ | ``zerver/views/__init__.py`` | other Django views | +--------------------------------+-----------------------------------------+ Jinja2 Compatibility Files ========================== +-------------------------------------+--------------------------------------------------------------------+ | ``zproject/jinja2/__init__.py`` | Jinja2 environment | +-------------------------------------+--------------------------------------------------------------------+ | ``zproject/jinja2/backends.py`` | Jinja2 backend | +-------------------------------------+--------------------------------------------------------------------+ | ``zproject/jinja2/compressors.py`` | Jinja2 compatible functions of Django-Pipeline | +-------------------------------------+--------------------------------------------------------------------+ Static assets ============= +---------------+---------------------------------------------------------------------------------------------------------------+ | ``assets/`` | For assets not to be served to the web (e.g. the system to generate our favicons) | +---------------+---------------------------------------------------------------------------------------------------------------+ | ``static/`` | For things we do want to both serve to the web and distribute to production deployments (e.g. the webpages) | +---------------+---------------------------------------------------------------------------------------------------------------+ Puppet ====== +--------------------+----------------------------------------------------------------------------------+ | ``puppet/zulip`` | For configuration for production deployments | +--------------------+----------------------------------------------------------------------------------+ Templates ========= +--------------------------+--------------------------------------------------------+ | ``templates/zerver`` | For Jinja2 templates for the backend (for zerver app) | +--------------------------+--------------------------------------------------------+ | ``static/templates`` | Handlebars templates for the frontend | +--------------------------+--------------------------------------------------------+ Tests ===== +-------------------------+-----------------------------------+ | ``zerver/tests/`` | Backend tests | +-------------------------+-----------------------------------+ | ``frontend_tests/node`` | Node Frontend unit tests | +-------------------------+-----------------------------------+ | ``frontend_tests/tests``| Casper frontend tests | +-------------------------+-----------------------------------+ Documentation ============= +-------------+-----------------------------------------------+ | ``docs/`` | Source for this documentation | +-------------+-----------------------------------------------+ You can consult the repository's .gitattributes file to see exactly which components are excluded from production releases (release tarballs are generated using tools/build-release-tarball).