zulip/zerver/lib
Steve Howell 02252c255a db tools: Use common scheme for digests.
We have two different digest schemes to make
sure we keep the database up to date.  There
is the migration digest, which is NOT in the
scope of this commit, and which already
used the mechanism we use for other tools.

Here we are talking about the digest for
important files like `populate_db.py`.

Now our scheme is more consistent with how we
check file changes for other tools (as
well as the aformentioned migration files).

And we only write one hash file, instead of
seven.

And we only write the file when things have
actually changed.

And we are explicit about side effects.

Finally, we include a couple new bot settings
in the digest:

    INTERNAL_BOTS
    DISABLED_REALM_INTERNAL_BOTS

NOTE: This will require a one-time transition,
where we rebuild both databases (dev/test).
It takes a little over two minutes for me,
so it's not super painful.

I bump the provision version here, even
though you don't technically need it (since
the relevant tools are actually using the
digest files to determine if they need to
rebuild the database).  I figure it's just
good to explicitly make this commit trigger
a provision, and the user will then see
the one-time migration of the hash files
with a little bit less of a surprise.

And I do a major bump, not a minor bump,
because when we go in the reverse direction,
the old code will have to rebuild the
database due to the legacy hash files not
being around, so, again, I just prefer it
to be explicit.
2020-04-22 14:41:42 -07:00
..
bugdown python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
url_preview url_preview: Discard url in oembed if server returns invalid json. 2020-04-11 11:54:54 -07:00
webhooks python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
__init__.py
actions.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
addressee.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
alert_words.py python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
attachments.py cleanup: Delete leading newlines. 2019-08-06 23:29:11 -07:00
avatar.py avatars: Fix gravatar URLs with EMAIL_ADDRESS_VISIBILITY_ADMINS. 2019-11-05 12:33:20 -08:00
avatar_hash.py cleanup: Delete leading newlines. 2019-08-06 23:29:11 -07:00
bot_config.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
bot_lib.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
bot_storage.py python: Convert type checks to isinstance checks. 2020-04-21 17:58:09 -07:00
bulk_create.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
cache.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
cache_helpers.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
camo.py camo: Clean up type ignores. 2019-08-09 16:39:16 -07:00
ccache.py docs: Convert many http URLs to https. 2020-03-26 21:35:32 -07:00
context_managers.py
create_user.py models: Add recipient foreign key in UserProfile and Stream. 2019-12-09 15:14:41 -08:00
db.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
debug.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
dev_ldap_directory.py ldap: Fix development environment configuration. 2019-11-08 14:00:24 -08:00
digest.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
display_recipient.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
domains.py domains: Fix typing for validate_domain. 2019-07-29 15:18:24 -07:00
email_mirror.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
email_mirror_helpers.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
email_notifications.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
email_validation.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
emoji.py emoji_name: Raise correct exception if emoji_name is missing. 2020-04-12 11:52:45 -07:00
error_notify.py error_notify: Use internal_send_stream_message(). 2020-02-11 12:20:53 -08:00
events.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
exceptions.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
export.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
external_accounts.py text: Fix some typos (most of them found and fixed by codespell). 2020-03-27 17:25:56 -07:00
fix_unreads.py logging: Switch various logging code paths to use user IDs. 2019-11-15 17:24:01 -08:00
generate_test_data.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
hotspots.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
html_diff.py
html_to_text.py html_to_text: Add delimiters between text from different elements. 2019-05-01 17:35:20 -07:00
i18n.py python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
import_realm.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
initial_password.py cleanup: Delete leading newlines. 2019-08-06 23:29:11 -07:00
integrations.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
logging_util.py logging_util: Handle record.status_code missing in skip_200_and_304. 2020-04-22 11:26:13 -07:00
management.py python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
mdiff.py zerver core: Remove unused imports. 2019-02-02 17:41:24 -08:00
mention.py bugdown: Store if message has wildcards in MentionData. 2019-12-02 12:12:35 -08:00
message.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
migrate.py migrate, create_large_indexes: Use CREATE INDEX IF NOT EXISTS. 2019-06-26 11:01:30 -07:00
mobile_auth_otp.py lint: Fix code that evaded our lint checks for string % non-tuple. 2019-04-23 15:21:37 -07:00
name_restrictions.py docs: Convert many http URLs to https. 2020-03-26 21:35:32 -07:00
narrow.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
onboarding.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
outgoing_webhook.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
parallel.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
presence.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
profile.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
push_notifications.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
queue.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
rate_limiter.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
realm_description.py html_to_text: Add delimiters between text from different elements. 2019-05-01 17:35:20 -07:00
realm_icon.py zerver core: Remove unused imports. 2019-02-02 17:41:24 -08:00
realm_logo.py realm_logo: Remove redundant `realm_logo_url` function. 2019-08-20 12:07:20 -07:00
redis_utils.py redis_utils: Require key_format argument in get_dict_from_redis. 2020-01-26 21:40:15 -08:00
remote_server.py push_notifs: Handle more requests Exceptions in send_to_push_bouncer. 2019-12-04 09:58:22 -08:00
request.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
response.py exceptions: Move default json_unauthorized string to response.py. 2020-02-05 15:40:10 -08:00
rest.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
retention.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
send_email.py send_custom_email: Use a special .gitignored directory. 2020-04-21 16:50:11 -07:00
server_initialization.py server_initialization: Create Client objects for mobile/desktop. 2020-02-24 23:19:43 -08:00
sessions.py mypy: Add specific codes to type: ignore annotations. 2020-04-22 10:46:33 -07:00
soft_deactivation.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
sqlalchemy_utils.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
statistics.py python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
storage.py docs: Merge front-end-build-process with html-css. 2019-10-23 13:08:36 -07:00
stream_recipient.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
stream_subscription.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
stream_topic.py python: Whitespace fixes from autopep8. 2020-04-21 17:58:09 -07:00
streams.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
subdomains.py python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
test_classes.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
test_data.source.txt
test_fixtures.py db tools: Use common scheme for digests. 2020-04-22 14:41:42 -07:00
test_helpers.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
test_runner.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
tex.py cleanup: Delete leading newlines. 2019-08-06 23:29:11 -07:00
thumbnail.py thumbor: Fix __file__ typo. 2020-04-12 11:23:03 -07:00
timeout.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
timestamp.py
timezone.py cleanup: Delete leading newlines. 2019-08-06 23:29:11 -07:00
topic.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
topic_mutes.py python: Whitespace fixes from autopep8. 2020-04-21 17:58:09 -07:00
transfer.py logging: Switch various logging code paths to use user IDs. 2019-11-15 17:24:01 -08:00
type_debug.py mypy: Add specific codes to type: ignore annotations. 2020-04-22 10:46:33 -07:00
types.py types: Consistently use DisplayRecipientT for display_recipient objects. 2019-08-20 12:15:30 -07:00
unminify.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
upload.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
url_encoding.py redirects: Refactor redirect code to use central helper function. 2020-03-25 16:39:17 -07:00
user_agent.py user_agent: Compile the regular expression. 2020-02-14 10:26:37 -08:00
user_groups.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
user_status.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
users.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
utils.py python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
validator.py python: Convert assignment type annotations to Python 3.6 style. 2020-04-22 11:02:32 -07:00
video_calls.py zoom: Fix handling of 201 status codes from zoom API. 2019-01-16 15:37:06 -08:00
widget.py zerver core: Remove unused imports. 2019-02-02 17:41:24 -08:00
zcommand.py zcommand: Add `/fluid-width` and `/fixed-width` slash commands. 2020-04-07 20:54:34 -07:00
zephyr.py