Commit Graph

335 Commits

Author SHA1 Message Date
Eeshan Garg 080b1eccea pypi: Upgrade to release 0.5.3. 2018-08-18 08:00:56 -07:00
Yago González 2f7e4484c8 requirements: Upgrade python-zulip-api/zulip to 7dfecf557. 2018-08-16 14:12:44 -07:00
Yago González a9c8d9b3d9 requirements: Upgrade python-zulip-api/zulip to 7dfecf557. 2018-08-14 10:11:57 -07:00
Vishnu Ks c0ed2283d3 requirements: Upgrade django-auth-ldap to 1.6.0.
The autenticate function now follows the signature of
Django 2.0 https://github.com/django-auth-ldap/
django-auth-ldap/commit/27a8052b26f1d3a43cdbcdfc8e7dc0322580adae

Also AUTH_LDAP_CACHE_GROUPS is depricated in favor of
AUTH_LDAP_CACHE_TIMEOUT.
2018-08-02 15:53:11 -07:00
Vishnu Ks 70de33384e requirements: Upgrade stripe to 2.3.0. 2018-07-31 11:13:22 -07:00
Vishnu Ks 680c2100e3 requirements: Upgrade Pillow to 5.2.0. 2018-07-31 11:13:22 -07:00
Vishnu Ks cb4e0d32e2 requirements: Upgrade uWSGI to 2.0.17.1.
TLSv1 is now disabled by default. Can be re-enabled
with ssl-enable-tlsv1 at our own risk.

https://uwsgi-docs.readthedocs.io/en/latest/
Changelog-2.0.17.1.html
2018-07-31 11:13:22 -07:00
Vishnu Ks 6f17db5731 requirements: Upgrade pytz to 2018.5.
https://github.com/stub42/pytz/blob/master/tz/NEWS
2018-07-30 10:09:19 -07:00
Vishnu Ks 9e39e136b9 requirements: Upgrade twilio to 6.15.2.
Lot of bug fixes and changes. But nothing looks like
it will bfeak Zulip.
2018-07-30 10:06:23 -07:00
Vishnu Ks de77728c86 requirements: Upgrade SQLAlchemy to 1.2.10.
Bunch of bug fixes.
http://docs.sqlalchemy.org/en/latest/changelog/
changelog_12.html#change-1.2.10
2018-07-30 10:06:23 -07:00
Vishnu Ks ebad4d3aaa requirements: Upgrade python-twitter to 3.4.2.
Minor changes and cleanups.
2018-07-30 10:06:23 -07:00
Vishnu Ks 060ed8cb92 requirements: Upgrade pyasn1-modules to 0.2.2.
rfc2986 module added and some documentation changes.
2018-07-30 10:06:23 -07:00
Vishnu Ks dedb8735ec requirements: Upgrade pyasn1 to 0.4.4.
Two minor bug fixes.
2018-07-30 10:06:23 -07:00
Vishnu Ks 77f88ca0d7 requirements: Upgrade py3dns to 3.2.0.
A bunch of minor bug fixes.
2018-07-30 10:06:23 -07:00
Vishnu Ks d58cb80f9d requirements: Upgrade psycopg2 to 2.7.5.
Bunch of bug fixes.

* Allow non-ascii chars in namedtuple fields (regression
  introduced fixing ticket #211).
* Fixed adaptation of arrays of arrays of nulls (ticket #325).
* Fixed building on Solaris 11 and derivatives such as
  SmartOS and illumos (ticket #677).
* Maybe fixed building on MSYS2 (as reported in ticket #658).
* Allow string subclasses in connection and other places (ticket #679).
* Don’t raise an exception closing an unused named cursor (ticket #716).
* Wheel package compiled against PostgreSQL 10.4 libpq and OpenSSL 1.0.2o.
2018-07-30 10:06:23 -07:00
Vishnu Ks ba8dcbff0d requirements: Upgrade ndg-httpsclient to 0.5.1.
Some minor changes.
* Clean up handling for description file - pull in content
  from this file into setup()
* Allows the nightly build to fail
* Add Trove version classifiers to make it explicit what
  is supported
* Add python_requires to help pip
* Drop support for EOL Python 2.6 and 3.3
2018-07-30 10:06:23 -07:00
Vishnu Ks e466400799 requirements: Upgrade lxml to 4.2.3.
Only one bug fix -> Fix sporadic crash during
GC when parse-time schema validation is used.
2018-07-30 10:06:23 -07:00
Vishnu Ks be16e1e509 requirements: Upgrade ipython to 6.5.0.
No major changes. Miscellaneous bug fixes
and compatibility with Python 3.7.
2018-07-30 10:06:23 -07:00
Vishnu Ks 0a3eba2c0a requirements: Upgrade google-api-python-client to 1.7.4.
Mostly cleanups. Also updated to catch ServerNotFoundError
and retry the request.
2018-07-30 10:06:23 -07:00
Vishnu Ks fbbd43719b requirements: Upgrade django to 1.11.14. 2018-07-30 10:06:23 -07:00
Vishnu Ks 9deae31b09 requirements: Upgrade disposable-email-domains to 0.0.30. 2018-07-30 10:06:23 -07:00
Vishnu Ks 96b9007aa8 requirements: Upgrade cryptography to 2.3.
Has a security fix involving finalize_with_tag
function.
2018-07-30 10:06:23 -07:00
Vishnu Ks 7e93df2262 requirements: Upgrade boto to 2.49.0.
Updated the CA Bundle as well as some bucket encryption fixes.
2018-07-30 10:06:23 -07:00
Eeshan Garg 73e8daffbe pypi: Upgrade to release 0.5.2. 2018-07-27 00:11:52 -07:00
Anders Kaseorg f5d44e7355 Fork django-bitfield to save a few hundred ms of startup time
See #9953, https://github.com/zulip/django-bitfield/pull/1.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
2018-07-18 15:24:15 -04:00
Tim Abbott 52f5d83c90 thumbor: Add libthumbor dependency.
We need this for signing thumbnail requests from within Zulip.
2018-07-14 21:46:02 +05:30
Eeshan Garg 3f40240017 pypi_packages: Upgrade to release 0.5.1. 2018-07-01 08:17:17 -07:00
Yago González 93e75b9c84 requirements: Upgrade yamole to 2.1.5. 2018-06-23 12:42:11 +02:00
Aditya Bansal 998fb038a9 django-pylibmc: Add dependancy and use as cache backend for memcached. 2018-06-16 05:24:19 -07:00
Eeshan Garg 4446b76427 pypi: Upgrade to release 0.5.0. 2018-06-07 08:31:21 -07:00
Eeshan Garg 2d6d8fe5d8 zulip_bots: Upgrade to latest commit.
This upgrade fixes a dependency conflict between one of the bots
in zulip_bots and the main repo.
2018-06-04 16:20:00 -07:00
Eeshan Garg ea6a1750f5 pypi: Upgrade to release 0.4.7. 2018-06-04 11:48:36 -07:00
Yago González 9f98002b76 tests: Allow testing our REST API against the OpenAPI docs. 2018-06-01 12:03:31 -07:00
Vishnu Ks 97e143e987 requirements: Upgrade Django to 1.11.13. 2018-05-28 09:06:10 -07:00
Yago González 5a0911980e requirements: Add dependency for parsing OpenAPI-formatted YAML files. 2018-05-26 06:26:14 -07:00
Vishnu Ks e458da5327 requirements: Upgrade PyJWT to 1.6.4. 2018-05-24 15:16:02 -07:00
Vishnu Ks 09970b3aea requirements: Upgrade stripe to 1.82.1. 2018-05-24 11:31:48 -07:00
Vishnu Ks e35cbb55c9 requirements: Upgrade twilio to 6.14.0. 2018-05-24 11:31:48 -07:00
Vishnu Ks 1d1b6b29fc requirements: Upgrade pytz to 2018.4. 2018-05-24 11:31:47 -07:00
Vishnu Ks 1ef994c992 requirements: Upgrade pyasn1 to 0.4.3. 2018-05-24 23:53:49 +05:30
Vishnu Ks e380dd50f2 requirements: Upgrade oauthlib to 2.1.0. 2018-05-24 23:53:49 +05:30
Vishnu Ks 04e9a30351 requirements: Upgrade ipython to 6.4.0. 2018-05-24 23:53:49 +05:30
Vishnu Ks 0dd8521e75 requirements: Upgrade disposable-email-domains to 0.0.28. 2018-05-24 23:53:49 +05:30
Vishnu Ks ff99fd0348 requirements: Upgrade apns to 0.4.1. 2018-05-24 23:53:49 +05:30
Umair Khan f38d6ac6fe ldap: Make Zulip compatible with django-auth-ldap==1.5.
In version 1.5, get_or_create_user method is not used. It exists just
for the compatibility. The main function to use now is
get_or_build_user.

See the changelog:
https://django-auth-ldap.readthedocs.io/en/latest/changes.html#id1

Fixes #9307
2018-05-22 08:13:41 -07:00
Vishnu Ks fb0e054d7c requirements: Upgrade stripe to 1.80.0. 2018-05-03 20:39:56 -07:00
Vishnu Ks 0988232725 requirements: Upgrade twilio to 6.13.0. 2018-05-03 20:39:56 -07:00
Vishnu Ks 94d58cb545 requirements: Upgrade SQLAlchemy to 1.2.7. 2018-05-03 20:39:56 -07:00
Vishnu Ks 27193b0ecc requirements: Upgrade premailer to 3.2.0. 2018-05-03 20:39:56 -07:00
Vishnu Ks bf610f6570 requirements: Upgrade Pillow to 5.1.0. 2018-05-03 20:39:56 -07:00
Vishnu Ks 0e9fda033a requirements: Upgrade ndg-httpsclient to 0.5.0. 2018-05-03 20:39:56 -07:00
Vishnu Ks 440d458313 requirements: Upgrade ipython to 6.3.1. 2018-05-03 20:39:56 -07:00
Vishnu Ks 1b0c647ded requirements: Upgrade google-api-python-client to 1.6.7. 2018-05-03 20:39:56 -07:00
Vishnu Ks bb5dabb33c requirements: Upgrade disposable-email-domains to 0.0.26. 2018-05-03 20:39:56 -07:00
Vishnu Ks 69fe367771 requirements: Upgrade certifi to 2018.1.18. 2018-05-03 20:39:56 -07:00
Eeshan Garg 7d14ce2cb6 pypi packaging: Upgrade to release 0.4.6.
As a part of the upgrade, we had to update our API tests in
zerver/lib/api_test_helpers.
2018-04-27 14:50:25 -07:00
Eeshan Garg 1e217ed4e4 pypi: Upgrade to release 0.4.5. 2018-04-23 15:20:02 -07:00
Tim Abbott 310b451dc2 Revert "requirements: Use pypi versions of zulip and zulip_bots."
This reverts commit 6b142b35e6.
2018-04-16 16:39:01 -07:00
Tim Abbott 6b142b35e6 requirements: Use pypi versions of zulip and zulip_bots. 2018-04-16 16:14:43 -07:00
Eeshan Garg 6782f2b76a pypi: Upgrade to release 0.4.4.
This is the latest release after pip 10 was launched.
2018-04-16 16:04:46 -07:00
Vishnu Ks 132754f2ef requirements: Downgrade pika to 0.11.0.
Downgrading as issue #8466 is not fixed yet.
2018-04-11 09:31:10 -07:00
Eeshan Garg 96e01c0d27 pypi: Upgrade to release 0.4.3. 2018-04-03 18:11:25 -07:00
sinwar a66a15a519 requirements: Upgrade pyldap to latest version.
The pyldap fork was merged back into python-ldap, and released as
python-ldap 3.0.0; `pyldap` is now just a wrapper package that depends
on python-ldap.

Fixes #8912.
2018-04-03 09:33:44 -07:00
Vishnu Ks c473ce0919 requirements: Upgrade Django to 1.11.11. 2018-04-02 09:29:12 -07:00
Vishnu Ks bdf6e08fc0 requirements: Upgrade python-twitter to 3.4.1. 2018-04-02 09:29:12 -07:00
Vishnu Ks 9e7a8d1603 requirements: Upgrade lxml to 4.2.1. 2018-04-01 14:24:00 -07:00
Vishnu Ks 03475362c4 requirements: Upgrade cryptography to 2.2.2. 2018-04-01 14:24:00 -07:00
Vishnu Ks 082f8bb682 requirements: Upgrade cffi to 1.11.5. 2018-04-01 14:24:00 -07:00
Vishnu Ks 47f79a0bf0 requirements: Upgrade stripe to 1.79.1. 2018-04-01 14:24:00 -07:00
Vishnu Ks 211826a0d8 requirements: Upgrade twilio to 6.11.0. 2018-04-01 14:24:00 -07:00
Vishnu Ks 94c107747f requirements: Upgrade SQLAlchemy to 1.2.6. 2018-04-01 14:24:00 -07:00
Vishnu Ks dda3aad198 requirements: Upgrade PyJWT to 1.6.1. 2018-04-01 14:23:55 -07:00
Vishnu Ks 685ae4050f requirements: Upgrade pika to 0.11.2. 2018-04-01 14:23:55 -07:00
Vishnu Ks 82c1c86707 requirements: Upgrade oauthlib to 2.0.7. 2018-04-01 14:23:55 -07:00
Vishnu Ks c046451fbc requirements: Upgrade httplib2 to 0.11.3. 2018-04-01 14:23:55 -07:00
Vishnu Ks 47afc015b3 requirements: Upgrade google-api-python-client to 1.6.6. 2018-04-01 14:23:55 -07:00
Vishnu Ks 64e6db5b88 requirements: Upgrade django-webpack-loader to 0.6.0. 2018-04-01 14:23:55 -07:00
Vishnu Ks 46ed1b3d78 requirements: Upgrade disposable-email-domains to 0.0.23. 2018-04-01 14:10:43 -07:00
Eeshan Garg 87cc548e30 pypa: Upgrade to release 0.4.2. 2018-03-31 15:49:07 -07:00
Vishnu Ks 41f8618c04 email: Use PyPi module for disposable email providers list. 2018-03-11 21:48:56 -07:00
Robert Hönig 194b2fd8c0 Upgrade the zulip_bots dependency to python-zulip-api:192e9e1.
192e9e1 introduces bot-specific validate_config()
methods that are used in subsequent commits.
2018-03-08 15:05:38 -08:00
Tim Abbott 11b31b3584 requirements: Update uwsgi to the latest version.
Apparently, older uwsgi doesn't install properly on systems with newer
versions of OpenSSL; see https://github.com/unbit/uwsgi/issues/1395
for details.

This fixes #7609.
2018-03-06 13:14:26 -08:00
Eeshan Garg 5af55d7845 requirements: Upgrade to virtualenv-clone 0.3.0. 2018-03-03 15:24:18 -08:00
Tim Abbott 68664acf1f requirements: Update sqlalchemy to 1.2.4.
This requires updating one of the tests for the group_pm_with feature
in test_narrow to use the new style of tautology generated by SQLAlchemy.

Thanks to Sinwar for investigating this.

Fixes #8381.
2018-02-26 21:32:27 -08:00
Umair Khan db1e090c6a django-auth-ldap: Bump version to 1.3.0.
The name of _get_user_attrs was changed to attrs in
152d40a2a0

Fixes #8380
2018-02-22 05:39:04 -08:00
Vishnu Ks 7d3b41b039 requirements: Upgrade psycopg2 to 2.7.3.4.
psycopg2 package contains both binary and source
currently.The binary would soon be only available
in psycopg2-binary. So currently installing psycopg2
will show a warning about the future migration of binary.
To avoid the warning we should only install the source.

https://www.postgresql.org/message-id/CA%2Bmi_8bd6kJHL
TGkuyHSnqcgDrJ1uHgQWvXCKQFD3tPQBUa2Bw%40mail.gmail.com
2018-02-21 13:14:59 -08:00
Tim Abbott 6479f32c7c dependencies: Downgrade pika to avoid constantly logged errors.
With the new pika 0.11.2, we got a lot of errors from pika on
chat.zulip.org.  See #8466 for details.
2018-02-20 14:03:07 -08:00
Aditya Bansal efe8545303 local-uploads: Start running authentication checks on file requests.
From here on we start to authenticate uploaded file request before
serving this files in production. This involves allowing NGINX to
pass on these file requests to Django for authentication and then
serve these files by making use on internal redirect requests having
x-accel-redirect field. The redirection on requests and loading
of x-accel-redirect param is handled by django-sendfile.

NOTE: This commit starts to authenticate these requests for Zulip
servers running platforms either Ubuntu Xenial (16.04) or above.

Fixes: #320 and #291 partially.
2018-02-16 05:06:37 +05:30
Vishnu Ks caaa7d1b82 requirements: Upgrade ndg-httpsclient to 0.4.4. 2018-02-14 09:44:26 -08:00
Vishnu Ks 18436c100a requirements: Upgrade google-api-python-client to 1.6.5. 2018-02-14 09:44:25 -08:00
Vishnu Ks f93f1972e9 requirements: Upgrade certifi to 2018.1.18. 2018-02-14 09:41:49 -08:00
Vishnu Ks 026d835d3a requirements: Upgrade twilio to two. 2018-02-14 09:41:49 -08:00
Vishnu Ks adac6c0cf2 requirements: Upgrade tornado to 4.5.3. 2018-02-14 09:41:49 -08:00
Vishnu Ks 9effe27eab requirements: Upgrade typing to 3.6.4. 2018-02-14 09:41:49 -08:00
Vishnu Ks 3f3f876187 requirements: Upgrade stripe to 1.77.2. 2018-02-14 09:41:49 -08:00
Vishnu Ks 48f93a7460 requirements: Upgrade pytz to 2018.3. 2018-02-14 09:41:49 -08:00
Vishnu Ks 0aa6f00cf2 requirements: Upgrade pyasn1 to pyasn1-modules. 2018-02-14 09:41:49 -08:00
Vishnu Ks f1098a77f2 requirements: Upgrade polib to 1.1.0. 2018-02-14 09:41:49 -08:00
Vishnu Ks 2b081f882a requirements: Upgrade Pillow to 5.0.0. 2018-02-14 09:41:49 -08:00
Vishnu Ks 0e2058ae48 requirements: Upgrade pika to 0.11.2. 2018-02-14 09:41:49 -08:00
Vishnu Ks 3780b8ce04 requirements: Upgrade Markdown to 2.6.11. 2018-02-14 09:41:49 -08:00
Vishnu Ks 6ca3f72e6e requirements: Upgrade lxml to 4.1.1. 2018-02-14 09:41:49 -08:00
Vishnu Ks 617549fec5 requirements: Upgrade Jinja2 to 2.10. 2018-02-14 09:41:49 -08:00
Vishnu Ks 51577b788a requirements: Upgrade html2text to 2018.1.9. 2018-02-14 09:41:49 -08:00
Vishnu Ks 449c1d5064 requirements: Upgrade django-two-factor-auth to 1.7.0. 2018-02-14 09:41:49 -08:00
Vishnu Ks 2b0099f696 requirements: Upgrade django-pipeline to 1.6.14. 2018-02-14 09:41:49 -08:00
Vishnu Ks 7a8b174a01 requirements: Upgrade cryptography to 2.1.4. 2018-02-14 09:41:49 -08:00
Vishnu Ks 1b8ca55dd2 requirements: Upgrade cffi to 1.11.4. 2018-02-14 09:41:49 -08:00
Vishnu Ks 9b93e8cba8 requirements: Upgrade argon2-cffi to 18.1.0. 2018-02-14 09:41:49 -08:00
Eeshan Garg d7903d25e9 pypi_packages: Upgrade to release 0.4.1. 2018-02-07 09:52:51 -08:00
rht f190888dfb django-2.0: Bump social auth version to 2.1.0. 2018-01-30 10:53:54 -08:00
Vishnu Ks 167a712922 requirements: Include stripe in common.in. 2018-01-17 16:12:32 -08:00
Eeshan Garg 30795c864d python-zulip-api: Upgrade to release 0.4.0. 2018-01-07 09:52:13 -05:00
Eeshan Garg 61089a9349 python-zulip-api: Upgrade to package release 0.3.9. 2017-11-28 22:16:43 -08:00
Tim Abbott b42ce65090 requirements: Add dependencies for two-factor auth.
We're not yet ready to add 2FA to Zulip yet, but we've determined we'd
like to work from these libraries.

I'm not bothering to bump PROVISION_VERSION for this, since we're
likely to do something else that bumps it soon, and we're not merging
anything that uses these new libraries.
2017-11-28 15:13:38 -08:00
Eeshan Garg c45517f544 python-zulip-api: Upgrade to PyPI package release 0.3.8.
There's one migration required by this release:

* queue_processors: Stop passing state_handler to handle_message.

  state_handler is now a property of bot_handler and thus, does
  not need to be passed to bot_handler.handle_message().

  The commit responsible is:
  2a74ad11c5
2017-11-27 20:31:37 -08:00
rht e169bb0954 zerver: Remove simplejson dependency.
Modified by tabbott to put the third-party code in a new file.

Fixes #6970.
2017-11-21 21:51:48 -08:00
Harshit Bansal e75f0c1ee4 requirements: Rename requirements files.
This commit renames various source requirements files like `dev.txt`,
`mypy.txt` etc to `dev.in`, `mypy.in` etc and various locked requirements
files like `dev_lock.txt`, `mypy_lock.txt` etc to `dev.txt`, `mypy.txt`
etc. This will help in emphasizing to the user that *.in are actually
input to `update-locked-requirements` tool which should be run after
updating any of these.
2017-11-21 02:38:26 +05:30
rht 2d06004ee9 requirements: Add documentation on regenerating lockfiles. 2017-09-15 07:58:19 -07:00
Tim Abbott f5fe9d24bb requirements: Remove unnecessary dateutil dependency.
This is only needed for some Nagios scripts, which don't use the Zulip
virtualenv anyway.  They already correctly install the relevant
package via apt.
2017-08-22 10:42:01 -07:00
Tim Abbott bc63cdf538 requirements: Remove unnecessary netifaces dependency.
This is only used for
puppet/zulip_ops/files/zulip-ec2-configure-interfaces, and that
actually doesn't even use the Zulip virtualenv (and correctly already
has puppet configuration to install this dependency).
2017-08-22 10:42:01 -07:00
Tim Abbott 54ec4e9e34 requirements: Remove flup dependency.
This was needed for fastcgi, which we stopped using many months ago.
2017-08-22 10:42:01 -07:00
rht 99511421d1 requirements: Rename py3_common.txt to common.txt. 2017-08-22 10:10:57 -07:00
rht 0a469fd4c8 requirements: Lock prod.txt instead of its py3_common dependency.
`py3_common.txt` is no longer locked.
2017-08-22 10:10:57 -07:00
rht 6a5869ec8d requirements: Rename py3_prod.txt to prod.txt. 2017-08-22 10:10:57 -07:00
rht f24b1f2057 requirements: Squash prod.txt into py3_prod.txt. 2017-08-21 18:24:55 -07:00
Vishnu Ks 7a04df728d requirements: Upgrade python-dateutil to 2.6.1. 2017-08-21 07:52:15 -07:00
Eeshan Garg 938597c5da requirements: Use the python-zulip-api repo for API bindings.
Tweaked by tabbott to repoint at the final repository name, update the
dependencies with `pip-compile`, and update PROVISION_VERSION.
2017-07-06 12:24:38 -07:00
Tim Abbott 3fd1943eb6 requirements: Move api dependency out of common.txt.
This is preparation for using `pip compile` to help automate our
requirements files; `pip compile` does not support relative paths.
2017-05-13 22:13:00 -07:00
Tim Abbott 864bc99aeb requirements: Move common includes to py2/py3, not dev/prod.
This is a nonfunctional refactor of how the common.txt requirements
are included.  It is preparation for a new model for freezing our
recursive dependencies based on `pip compile`.
2017-05-13 22:09:42 -07:00
Umair Khan 336a041ac0 Django 1.10: Use uWSGI.
Fixes: #1121

With some tweaks by tabbott to make the number of processes configurable.
2016-12-13 21:40:43 -08:00
Tim Abbott be506d63f6 requirements: Upgrade a bunch of minor Python package versions.
These are all minor versions and thus shouldn't have any impact.
2016-11-05 09:13:28 -07:00
Eklavya Sharma fea6c56978 Move packages from prod.txt to py2_prod.txt. 2016-07-02 11:53:26 -07:00
Eklavya Sharma bbd24168b6 requirements/prod.txt: Add netifaces, flup and python-dateutils.
netifaces is used in puppet/zulip_internal/files/zulip-ec2-configure-interfaces.
flup is used for fastcgi.
python-dateutils is used in some puppet scripts.
2016-06-27 19:12:32 -07:00
Eklavya Sharma b30690e760 Move prod.txt to requirements/.
In 81ecfc5, prod.txt was unintentionally placed in Zulip's root directory
instead of requirements/.
2016-06-22 18:41:58 +05:30