2019-04-21 05:51:20 +02:00
|
|
|
import os
|
|
|
|
|
2021-05-13 21:34:50 +02:00
|
|
|
ZULIP_VERSION = "5.0-dev+git"
|
2021-05-13 02:50:42 +02:00
|
|
|
|
2019-04-21 05:51:20 +02:00
|
|
|
# Add information on number of commits and commit hash to version, if available
|
2021-02-12 08:19:30 +01:00
|
|
|
zulip_git_version_file = os.path.join(
|
2021-02-12 08:20:45 +01:00
|
|
|
os.path.dirname(os.path.abspath(__file__)), "zulip-git-version"
|
2021-02-12 08:19:30 +01:00
|
|
|
)
|
2021-05-13 02:50:42 +02:00
|
|
|
lines = [ZULIP_VERSION, ""]
|
2019-04-21 05:51:20 +02:00
|
|
|
if os.path.exists(zulip_git_version_file):
|
|
|
|
with open(zulip_git_version_file) as f:
|
2021-05-13 02:50:42 +02:00
|
|
|
lines = f.readlines() + ["", ""]
|
|
|
|
ZULIP_VERSION = lines.pop(0).strip()
|
|
|
|
ZULIP_MERGE_BASE = lines.pop(0).strip()
|
2019-04-21 05:51:20 +02:00
|
|
|
|
2021-05-13 21:29:57 +02:00
|
|
|
LATEST_MAJOR_VERSION = "4.0"
|
2021-10-04 23:52:52 +02:00
|
|
|
LATEST_RELEASE_VERSION = "4.7"
|
2021-05-14 02:53:44 +02:00
|
|
|
LATEST_RELEASE_ANNOUNCEMENT = "https://blog.zulip.com/2021/05/13/zulip-4-0-released/"
|
2017-11-16 21:40:36 +01:00
|
|
|
|
2020-04-01 22:11:26 +02:00
|
|
|
# Versions of the desktop app below DESKTOP_MINIMUM_VERSION will be
|
|
|
|
# prevented from connecting to the Zulip server. Versions above
|
|
|
|
# DESKTOP_MINIMUM_VERSION but below DESKTOP_WARNING_VERSION will have
|
|
|
|
# a banner at the top of the page asking the user to upgrade.
|
2021-05-13 21:46:40 +02:00
|
|
|
DESKTOP_MINIMUM_VERSION = "5.2.0"
|
|
|
|
DESKTOP_WARNING_VERSION = "5.4.3"
|
2020-04-01 22:11:26 +02:00
|
|
|
|
2020-04-20 00:57:28 +02:00
|
|
|
# Bump the API_FEATURE_LEVEL whenever an API change is made
|
|
|
|
# that clients might want to condition on. If we forget at
|
|
|
|
# the time we make the change, then bump it later as soon
|
|
|
|
# as we notice; clients using API_FEATURE_LEVEL will just not
|
|
|
|
# use the new feature/API until the bump.
|
|
|
|
#
|
2020-04-29 05:55:42 +02:00
|
|
|
# Changes should be accompanied by documentation explaining what the
|
2021-05-24 22:37:09 +02:00
|
|
|
# new level means in templates/zerver/api/changelog.md, as well as
|
|
|
|
# "**Changes**" entries in the endpoint's documentation in `zulip.yaml`.
|
2021-11-19 11:06:59 +01:00
|
|
|
API_FEATURE_LEVEL = 110
|
2020-04-20 00:57:28 +02:00
|
|
|
|
2017-12-26 07:57:39 +01:00
|
|
|
# Bump the minor PROVISION_VERSION to indicate that folks should provision
|
|
|
|
# only when going from an old version of the code to a newer version. Bump
|
|
|
|
# the major version to indicate that folks should provision in both
|
|
|
|
# directions.
|
|
|
|
|
2019-07-22 04:00:19 +02:00
|
|
|
# Typically,
|
|
|
|
# * adding a dependency only requires a minor version bump;
|
|
|
|
# * removing a dependency requires a major version bump;
|
|
|
|
# * upgrading a dependency requires a major version bump, unless the
|
|
|
|
# upgraded dependency is backwards compatible with all of our
|
|
|
|
# historical commits sharing the same major version, in which case a
|
|
|
|
# minor version bump suffices.
|
2017-12-26 07:57:39 +01:00
|
|
|
|
rate_limit: Add a flag to lump all TOR exit node IPs together.
TOR users are legitimate users of the system; however, that system can
also be used for abuse -- specifically, by evading IP-based
rate-limiting.
For the purposes of IP-based rate-limiting, add a
RATE_LIMIT_TOR_TOGETHER flag, defaulting to false, which lumps all
requests from TOR exit nodes into the same bucket. This may allow a
TOR user to deny other TOR users access to the find-my-account and
new-realm endpoints, but this is a low cost for cutting off a
significant potential abuse vector.
If enabled, the list of TOR exit nodes is fetched from their public
endpoint once per hour, via a cron job, and cached on disk. Django
processes load this data from disk, and cache it in memcached.
Requests are spared from the burden of checking disk on failure via a
circuitbreaker, which trips of there are two failures in a row, and
only begins trying again after 10 minutes.
2021-11-03 21:43:02 +01:00
|
|
|
PROVISION_VERSION = "165.3"
|