zulip/scripts
Daniil Fadeev 2f203f4de1 emails: Inline CSS in emails in build_email.
Previously, we had an architecture where CSS inlining for emails was
done at provision time in inline_email_css.py. This was necessary
because the library we were using for this, Premailer, was extremely
slow, and doing the inlining for every outgoing email would have been
prohibitively expensive.

Now that we've migrated to a more modern library that inlines the
small amount of CSS we have into emails nearly instantly, we are able
to remove the complex architecture built to work around Premailer
being slow and just do the CSS inlining as the final step in sending
each individual email.

This has several significant benefits:

* Removes a fiddly provisioning step that made the edit/refresh cycle
  for modifying email templates confusing; there's no longer a CSS
  inlining step that, if you forget to do it, results in your testing a
  stale variant of the email templates.
* Fixes internationalization problems related to translators working
  with pre-CSS-inlined emails, and then Django trying to apply the
  translators to the post-CSS-inlined version.
* Makes the send_custom_email pipeline simpler and easier to improve.

Signed-off-by: Daniil Fadeev <fadeevd@zulip.com>
2023-04-05 12:22:29 -07:00
..
lib hooks: Run hooks as the zulip user, not as root. 2023-03-30 16:16:37 -07:00
nagios ruff: Fix SIM118 Use key in dict instead of key in dict.keys(). 2023-01-04 16:25:07 -08:00
setup emails: Inline CSS in emails in build_email. 2023-04-05 12:22:29 -07:00
__init__.py
get-django-setting python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
log-search log-search: Support HTTP method limits. 2023-03-22 11:20:47 -07:00
purge-old-deployments zulip_tools: Rename may_be_perform_purging to maybe_perform_purging. 2022-01-12 13:21:35 -08:00
README.md docs: Apply bullet style changes from Prettier. 2021-09-08 12:06:24 -07:00
refresh-sharding-and-restart sharding: Configure Tornado sharding with nginx map. 2022-09-15 16:07:50 -07:00
restart-server start-server: More gracefully handle only starting part of the server. 2023-04-04 10:58:56 -07:00
start-server scripts: Add a start-server as well. 2021-04-21 10:24:08 -07:00
stop-server stop-server: Only stop services if they exist and are running. 2022-05-22 14:52:38 -07:00
upgrade-zulip upgrade: Modify upgrade scripts to handle failure. 2021-06-23 08:42:20 -07:00
upgrade-zulip-from-git upgrade: Modify upgrade scripts to handle failure. 2021-06-23 08:42:20 -07:00
zulip-puppet-apply zulip-puppet-apply: Exit status code 2 on puppet failure. 2023-01-31 14:20:00 -08:00

This directory contains scripts that:

  • Generally do not require access to Django or the database (those are "management commands"), and thus are suitable to run operationally.

  • Are useful for managing a production deployment of Zulip (many are also used in a Zulip development environment, though development-only scripts live in tools/).

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