zulip/zerver/lib
Hashir Sarwar e3b90a5ec8 api: Add a monotonic integer "feature level" for non-webapp clients.
The purpose is to provide a way for (non-webapp) clients,
like the mobile and terminal apps, to tell whether the
server it's talking to is new enough to support a given
API feature -- in particular a way that

* is finer-grained than release numbers, so that for
features developed after e.g. 2.1.0 we can use them
immediately on servers deployed from master (like
chat.zulip.org and zulipchat.com) without waiting the
months until a 2.2 release;

* is reliable, unlike e.g. looking at the number of
commits since a release;

* doesn't lead to a growing bag of named feature flags
which the server has to go on sending forever.

Tweaked by tabbott to extend the documentation.

Closes #14618.
2020-04-21 13:37:57 -07:00
..
bugdown requirements: Upgrade mypy from 0.761 to 0.770. 2020-04-18 13:09:51 -07:00
url_preview url_preview: Discard url in oembed if server returns invalid json. 2020-04-11 11:54:54 -07:00
webhooks webhooks: Log unexpected webhook events separately. 2019-07-22 18:20:53 -07:00
__init__.py
actions.py refactor: Making onboarding independent of actions. 2020-04-18 21:48:41 -07:00
addressee.py addressee: Clean up type ignores. 2019-08-09 16:39:16 -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 mypy: Remove type ignores for python 3 stubs now present in typeshed. 2019-08-06 23:24:56 -07:00
bot_lib.py bots: Decouple user input from imported module. 2020-03-25 16:39:17 -07:00
bot_storage.py python: Stop importing Length from the wrong file. 2019-02-02 17:09:10 -08:00
bulk_create.py streams: Remove dependency of streams on actions. 2020-04-18 16:56:59 -07:00
cache.py python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
cache_helpers.py cache: Remove dead code for caching recipients. 2020-03-17 05:41:11 -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 cleanup: Delete leading newlines. 2019-08-06 23:29:11 -07:00
debug.py docs: Convert many http URLs to https. 2020-03-26 21:35:32 -07:00
dev_ldap_directory.py ldap: Fix development environment configuration. 2019-11-08 14:00:24 -08:00
digest.py emails: Added placeholders strings in FormAddress. 2020-03-27 16:41:02 -07:00
display_recipient.py python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
domains.py domains: Fix typing for validate_domain. 2019-07-29 15:18:24 -07:00
email_mirror.py refactor: Making email_mirror independent of actions. 2020-04-18 16:58:29 -07:00
email_mirror_helpers.py email_mirror: Add prefer-html and prefer-text address options. 2020-01-16 15:25:19 -08:00
email_notifications.py python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
email_validation.py invites: Fix regression w/email vs. delivery_email. 2020-03-12 10:13:08 -04: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 api: Add a monotonic integer "feature level" for non-webapp clients. 2020-04-21 13:37:57 -07:00
exceptions.py exceptions: RateLimited shouldn't inherit from PermissionDenied. 2020-02-02 19:15:00 -08:00
export.py python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -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: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
hotspots.py docs: Mention bug in ALWAYS_SEND_ALL_HOTSPOTS feature. 2019-02-27 10:21:30 -08: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 streams: Remove dependency of streams on actions. 2020-04-18 16:56:59 -07:00
initial_password.py cleanup: Delete leading newlines. 2019-08-06 23:29:11 -07:00
integrations.py tools: Add script to trigger webhook notification using fixtures. 2020-04-16 19:25:13 -07:00
logging_util.py requirements: Upgrade mypy from 0.761 to 0.770. 2020-04-18 13:09:51 -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 refactor: Making email_mirror independent of actions. 2020-04-18 16:58:29 -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: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
onboarding.py refactor: Making onboarding independent of actions. 2020-04-18 21:48:41 -07:00
outgoing_webhook.py messages: Return shallow copy of message object. 2020-03-29 15:12:27 -07:00
parallel.py python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
presence.py presence: Simplify payload for webapp. 2020-04-03 11:44:56 -07:00
profile.py cleanup: Delete leading newlines. 2019-08-06 23:29:11 -07:00
push_notifications.py python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
queue.py queue_processors: Gather statistics on queue worker operations. 2020-04-01 16:44:06 -07:00
rate_limiter.py test-backend: Remove rate_limiter from not_yet_fully_covered. 2020-04-15 11:20:37 -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 has_request_variables: Remove query_params dict. 2020-02-15 11:37:18 -08:00
response.py exceptions: Move default json_unauthorized string to response.py. 2020-02-05 15:40:10 -08:00
rest.py tornado: Rewrite Django integration to duplicate less code. 2020-02-13 16:13:11 -08:00
retention.py retention: Update to account for the zulipinternal realm. 2020-02-14 17:15:26 -08:00
send_email.py send_email: Use CommandError for user-facing command line errors. 2020-04-18 13:30:03 -07:00
server_initialization.py server_initialization: Create Client objects for mobile/desktop. 2020-02-24 23:19:43 -08:00
sessions.py sessions: Implement the concept of expirable session variables. 2020-02-12 11:09:55 -08:00
soft_deactivation.py soft_deactivation: Fix incorrect logging function. 2020-01-28 17:17:43 -08:00
sqlalchemy_utils.py
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 stream_recipient: Eliminate unnecessary queries. 2020-01-08 14:34:43 -08:00
stream_subscription.py perf: Extract get_subscribed_stream_ids_for_user. 2020-03-01 22:38:03 -08:00
stream_topic.py zerver core: Remove unused imports. 2019-02-02 17:41:24 -08:00
streams.py streams: Remove dependency of streams on actions. 2020-04-18 16:56:59 -07:00
subdomains.py python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
test_classes.py streams: Remove dependency of streams on actions. 2020-04-18 16:56:59 -07:00
test_data.source.txt
test_fixtures.py provision: Manage digests more rigorously. 2020-04-20 15:06:47 -07:00
test_helpers.py python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
test_runner.py requirements: Upgrade mypy from 0.761 to 0.770. 2020-04-18 13:09:51 -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 timeout: Use Python 3 raise syntax. 2020-04-09 16:42:13 -07:00
timestamp.py
timezone.py cleanup: Delete leading newlines. 2019-08-06 23:29:11 -07:00
topic.py message_edit: Add backend for moving a topic to another stream. 2020-04-07 14:19:19 -07:00
topic_mutes.py muting: Send muted_topic's date_muted field to frontend. 2020-04-15 15:48:25 -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 cleanup: Delete leading newlines. 2019-08-06 23:29:11 -07:00
types.py types: Consistently use DisplayRecipientT for display_recipient objects. 2019-08-20 12:15:30 -07:00
unminify.py unminify: Update for webpack chunk splitting. 2019-11-01 18:25:30 -07:00
upload.py upload: Include filename at the end of temporary access URLs. 2020-04-20 10:25:48 -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: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
user_status.py user status: Add "status_text" support in the backend. 2019-01-24 09:46:35 -08:00
users.py /json/users: Use field.realm for realm lookup. 2020-02-09 22:04:02 -08:00
utils.py python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -07:00
validator.py python: Modernize legacy Python 2 syntax with pyupgrade. 2020-04-09 16:43:22 -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 python: Remove now-unnecessary str_utils library. 2018-11-27 11:57:54 -08:00