Umair Khan
7d687b0f79
Increase the timeout in test-queue-worker-reload.
...
May fix #1341 .
2016-07-21 10:19:49 -07:00
Eklavya Sharma
7bd935bef2
Add option to only show extensionless files in lister.
2016-07-21 16:59:52 +05:30
Taranjeet Singh
44d23975ed
Move update-prod-static.log to var/log.
2016-07-20 18:27:44 -07:00
Eklavya Sharma
6548f1dd1c
Factor out venv-installing code into a module.
...
Factor out the code in tools/provision.py which installs a python2
and python3 venv into a module (tools/setup/setup_venvs.py) which
can also be used as a script.
2016-07-20 18:20:37 -07:00
Eklavya Sharma
2930a769a9
Add __init__.py to tools/ and tools/setup/.
...
This will make it possible to import stuff from tools/setup/.
2016-07-20 18:20:37 -07:00
Tim Abbott
a07eca2639
Revert "Factor out venv-installation into a script."
...
This reverts commit 852c49a44e
.
I think this may have broken provisioning without a venv.
2016-07-20 14:55:45 -07:00
Eklavya Sharma
852c49a44e
Factor out venv-installation into a script.
2016-07-20 14:18:51 -07:00
Tim Abbott
741c21c3ce
update_deployment: Make git repository URL configurable.
2016-07-19 21:02:47 -07:00
Tim Abbott
a5a79280cb
update_deployment: Add symlink for use in voyager installs.
2016-07-19 20:59:59 -07:00
Tim Abbott
35339f5117
Rename local_settings_template to prod_settings_template.
2016-07-19 20:59:59 -07:00
Tim Abbott
19b860ceec
Rename local_settings.py symlink to prod_settings.py.
2016-07-19 20:59:59 -07:00
Tim Abbott
82f9f8f941
update-deployment: Compute ZULIP_COM setting.
2016-07-19 20:52:08 -07:00
Tim Abbott
7348841e65
update-prod-static: Copy static/locale rather than moving.
...
The old behavior results in a large diff when deploying based on a git
commit.
2016-07-19 20:52:08 -07:00
Tim Abbott
28fa4e8346
build_release_tarball: Remove local_settings.py overwrite hack.
2016-07-19 20:52:06 -07:00
Tim Abbott
78a0c7c557
tools: Rewrite install-server to not hardcode configuration.
...
Now install-aws-server is a reusable script for setting up a Zulip
role server in AWS, without any hardcoded configuration.
2016-07-19 20:12:43 -07:00
Eklavya Sharma
d745f20b1b
Run frontend and backend tests in python3 on Travis.
2016-07-19 14:15:35 -07:00
Eklavya Sharma
fd007c4554
Make tools/test-run-dev python3 compatible.
...
Use universal_newlines=True with subprocess.check_output in
tools/test-run-dev.
2016-07-19 14:15:35 -07:00
Eklavya Sharma
e86539649c
Use tools/travis/activate-venv in test suites.
2016-07-19 14:15:35 -07:00
Eklavya Sharma
5054a8d6c9
tools/run-dev.py: Use twisted venv if on python 3.
2016-07-19 14:15:35 -07:00
Eklavya Sharma
cfed816a52
tools/provision.py: Install a python2 venv with twisted.
...
Twisted is not python 3 compatible. So for now create a python2
venv and install twisted in it when running provision.py in python3
mode and use twisted from the python2 venv.
2016-07-19 14:15:35 -07:00
Eklavya Sharma
9c66cb7130
tools/provision.py: Install both py2 and py3 venvs.
...
Install both python2 and python3 venvs in tools/provision.py by
default. Use old behavior when run with --travis to save time.
2016-07-19 23:39:50 +05:30
Eklavya Sharma
eb43f7f581
tools/provision.py: Factor out "--travis" in sys.argv.
2016-07-19 23:39:50 +05:30
Tim Abbott
13c2effb61
update-deployment: Make zulip-dropbox.png logic conditional.
2016-07-19 10:01:14 -07:00
Tim Abbott
6b0d8ecfba
update-deployment: Run create-production-venv as root.
2016-07-19 09:51:13 -07:00
Tim Abbott
07473f4007
update-prod-static: Use a virtualenv to find dependencies.
...
This is needed to support using update-deployment with a virtualenv.
2016-07-19 09:51:13 -07:00
Eklavya Sharma
38b1353f42
tools/run-dev.py: Clear memcached.
...
Clear memcached when tools/run-dev.py is run. This prevents
errors on using a different python version because values are
pickled before being stored in memcached and different python
versions implement pickling differently.
Also provide a command-line option --no-clear-mc to prevent
memcached from being cleared.
2016-07-18 14:25:13 -07:00
Taranjeet Singh
64332d8816
Update linecoverage directory to linecoverage-report.
...
tools/provision.py: Create directory var/linecoverage-report.
tools/run-mypy: Update coverage dir to var/linecoverage-report.
2016-07-18 14:13:33 -07:00
Taranjeet Singh
4d2cb3754c
Update upload dir to var/uploads.
...
tools/provision.py: Create directory var/uploads.
zproject/local_settings_template.py: Update Upload dir to var/uploads.
zproject/dev_settings.py: Update upload dir to var/uploads.
2016-07-18 14:13:33 -07:00
Umair Khan
b546391f0b
Move locale to static/locale
2016-07-18 13:59:07 -07:00
Eklavya Sharma
bc901ac6d8
tools/travis/py3-backend: Add tools/test-management.
2016-07-18 09:57:28 -07:00
Eklavya Sharma
da36947400
Change unbuffering strategy in runtornado.py.
...
runtornado unbuffers its output using
sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0).
This is not python 3 compatible since we can't specify
buffering on a text stream in python 3. So use the '-u'
option of python when calling runtornado.py to make output
unbuffered.
2016-07-17 10:31:15 -07:00
Taranjeet Singh
9db457e8fa
provision.py: Create var/coverage directory to store coverage data.
...
test-backend: Update coverage directory to var/coverage.
This commit updates the coverage directory to var/coverage as a part
of Issue 1132.
2016-07-13 18:58:00 -07:00
Tim Abbott
6254e29ebf
update-deployment: Use the virtualenv in deployment process.
2016-07-13 18:56:44 -07:00
Tim Abbott
599f12f94f
update-prod-static: Fix deploy path for language_options.json.
2016-07-13 18:56:37 -07:00
Tim Abbott
baeaf0f870
check-templates: Fix traceback with missing closing tag at end of file.
...
Previously, this would crash with an unclear traceback in this situation.
2016-07-13 18:55:40 -07:00
Tim Abbott
c0a6672471
Update path to language_options.json in production.
...
The previous code didn't correctly transport language_options.json to
the production environment.
2016-07-13 12:30:45 -07:00
Taranjeet Singh
5971203864
settings: Store uploaded files under var/ in development environment.
2016-07-12 20:33:31 -07:00
Taranjeet Singh
03384deb86
provision: Create zulip/var/log directory.
...
The purpose of this is to move a lot of the log and other generated
files used by the Zulip development environment into a consistent
hierarchy.
We also need to create this in tools/build-release-tarball as well,
since that runs a development environment out of a temporary
directory.
2016-07-12 20:33:30 -07:00
Tim Abbott
2338421c6d
lint: Add documentation lint check for JavaScript spelling.
2016-07-12 19:22:21 -07:00
Tim Abbott
4972154df9
setup-production: Improve debugging of build-release-tarball errors.
2016-07-12 19:09:28 -07:00
Tim Abbott
0b7788be6b
Fix indentation in compose.html.
2016-07-12 18:36:02 -07:00
Tim Abbott
d424813687
Fix indentation in deactivated.html.
2016-07-12 18:34:17 -07:00
Steve Howell
f57a17abdf
Lint-check more Django files for indentation.
...
(This starts to address github ticket #1236.)
2016-07-12 14:08:17 -07:00
Steve Howell
97f28f3792
Revert "Close HTML singleton tags in Casper files."
...
This reverts commit 520b255d95
,
and also blacklists Casper files from our linter.
2016-07-12 13:35:50 -07:00
Tim Abbott
5d990c28d0
Fix running run-mypy from any working directory.
2016-07-12 10:39:33 -07:00
Tim Abbott
497142d7b1
Fix running test-backend from any working directory.
2016-07-12 10:39:33 -07:00
Eklavya Sharma
934a0f7c6c
Add tools/test-backend to py3-backend test suite.
2016-07-12 09:27:55 -07:00
Eklavya Sharma
5de91c4115
Use subprocess_text_output in tools/provision.py.
2016-07-12 20:25:20 +05:30
Eklavya Sharma
158d67e702
Run tools/test-migrations in Travis.
2016-07-11 21:30:32 -07:00
Eklavya Sharma
57ce3f4af1
tools/travis/lint-all: Factor out error message.
2016-07-11 21:30:32 -07:00
Eklavya Sharma
08a4555e0f
Merge mypy and py3k test suites in Travis.
2016-07-11 21:28:01 -07:00
Eklavya Sharma
0de3b17f19
tools/test-backend: Add option to skip generate-fixtures.
...
Not calling generate-fixtures can reduce running time, which is
especially helpful when running a single test.
2016-07-12 09:34:37 +05:30
Tim Abbott
f513a68ac9
lint-all: Check for missing whitespace before { in CSS.
...
Also fix the existing violations of this rule.
2016-07-10 17:29:36 -07:00
Tim Abbott
88368397aa
lint-all: Add Python check for space after if.
2016-07-10 10:58:16 -07:00
Steve Howell
538bc61c54
Check more html files in check-templates.
...
Instead of just checking .html files in the templates directory,
we now also check them everywhere, including .html files used
for Casper tests and some static files.
2016-07-09 17:34:49 -07:00
Steve Howell
704c57a141
Fix end tag issues in api.html
...
(This fixes a minor style issue with the API keys/bots section,
but the change is mostly to make the HTML have balanced tags.)
2016-07-08 16:30:49 -07:00
Steve Howell
e35b84d438
Have lint-all pass along -m to check-templates.
2016-07-08 16:30:49 -07:00
Steve Howell
6154c73125
Support -m flag to check only modified templates.
2016-07-08 16:30:49 -07:00
Steve Howell
d1964a243e
Use lister module to find files for linting.
2016-07-08 16:30:49 -07:00
Steve Howell
1006b95898
Extract check_handlebar_templates.
2016-07-08 16:30:49 -07:00
Steve Howell
4e326ed138
Extract check_django_templates.
2016-07-08 16:30:49 -07:00
Steve Howell
3e9ceaeaf0
Move templates check to ok() function.
2016-07-08 16:30:49 -07:00
Tim Abbott
b13eeae24c
Remove finbot from Zulip repository.
...
It's been split into its own repository,
https://github.com/zulip/finbot .
2016-07-08 16:15:55 -07:00
Eklavya Sharma
aa68fd1679
Run tools/lint-all on Travis in python 3.
2016-07-08 10:43:48 -07:00
Tomasz Kolek
c15695e514
Add support for running test-js-with-node on particular files.
...
Fixed : #1127 .
2016-07-07 14:32:07 -07:00
Eklavya Sharma
4cf7641ab1
zerver/tests/test_i18n.py: Ignore due to incomplete stubs.
...
In python 3, http.cookies has incomplete stubs.
2016-07-07 12:42:51 -07:00
Eklavya Sharma
6c3f1bb967
beanstalk.py: Encode and decode strings correctly.
2016-07-07 12:42:51 -07:00
Eklavya Sharma
26b8e7357a
zerver/views/messages.py: Operate on bytes in highlight_string.
2016-07-07 12:42:51 -07:00
Eklavya Sharma
83640ed0cd
runtornado.py: Ignore due to incorrect stubs.
2016-07-07 10:09:35 -07:00
Eklavya Sharma
6fd8906358
rename_stream.py: Fix broken code.
...
* get_realm returns None if no matching realm is present, but
create_stream.py assumed it raises Realm.DoesNotExist.
* encoded/decode strings properly.
2016-07-07 10:08:29 -07:00
Eklavya Sharma
c679c180f5
enqueue_file.py: Add type hint for mypy.
2016-07-07 10:07:51 -07:00
Eklavya Sharma
896c18a57b
email-mirror.py: Make it pass on mypy in python 3.
...
* Replace filter by list comprehension.
* Add '# type: ignore' to statements which use attributes from
modeule `posix`, since stubs for posix are missing on python 3.
2016-07-07 10:07:28 -07:00
Eklavya Sharma
17cb6e00bd
create_stream.py: Fix broken code.
...
* get_realm returns None if no matching realm is present, but
create_stream.py assumed it raises Realm.DoesNotExist.
* encoded/decode strings properly.
2016-07-07 10:06:39 -07:00
Eklavya Sharma
63d55bdd86
zerver/views/__init__.py: decode b64encoded ccache.
...
Convert b64encoded ccache to `str` before passing to
subprocess.check_call.
2016-07-07 10:02:08 -07:00
Eklavya Sharma
628e45defc
zerver/lib/actions.py: Use text_type in truncate_ functions.
...
The functions truncate_content, truncate_body and truncate_topic
are only meant to be used on text strings. So change its
parameter types from AnyStr to text_type.
2016-07-07 10:02:08 -07:00
Eklavya Sharma
976858f536
tornado_ioloop_logging.py: Ignore because of missing stub.
...
There is no stub for select.epoll on python 3. So ignore the
statement which uses it.
2016-07-07 10:02:08 -07:00
Eklavya Sharma
9d2a539aaa
zerver/lib/notifications.py: Add hints for mypy.
...
Add type hints for mypy using isinstance in assert and if.
2016-07-07 10:02:08 -07:00
Eklavya Sharma
5e81a4d93f
zerver/lib/email_mirror.py: Improve annotation in python 3.
...
Add asserts and if statements to help mypy.
2016-07-07 10:01:30 -07:00
Eklavya Sharma
06a7a6caee
zerver/lib/debug.py: Remove from mypy's exclude_py3.
...
traceback.print_stack doesn't have a stub yet. So ignore the
statement which uses it.
2016-07-07 09:52:24 -07:00
Eklavya Sharma
6bb266d262
bugdown's __init__.py: Add python 3 compatibility.
...
* Use Response.text instead of Response.content.
* Make unescaping work on python 3.
2016-07-07 09:52:24 -07:00
Eklavya Sharma
05046d9288
bugdown's codehilite.py: Fix annotations in python 3 mode.
...
Many stubs in xml.etree.ElementTree use Union[str, bytes] as
return type. Mypy wants us to correctly handle each case. This
is correct, but not useful for us since we know that we'll always
get str. So force the return value to text_type, to supress mypy
errors.
2016-07-07 09:52:24 -07:00
Eklavya Sharma
610f19c791
zerver/lib/camo.py: Type ignore statement with hex encode.
2016-07-07 09:52:24 -07:00
Eklavya Sharma
6a63870136
zerver/decorator.py: Correctly encode/decode strings.
2016-07-07 09:52:24 -07:00
Eklavya Sharma
4e698ab1f6
Remove zerver/lib/parallel.py from mypy's exclude_py3.
2016-07-07 09:52:24 -07:00
Eklavya Sharma
5e8dba4c75
Add mypy in python 3 mode to travis.
...
This helps catch Python 3 compatibility issues.
2016-07-07 09:44:00 -07:00
Taranjeet
a137bf15ed
Wrap some lines with length greater than 120.
...
With some tweaks by tabbott.
2016-07-06 14:35:16 -07:00
Eklavya Sharma
4f181acb83
Add python 3 mode to provision.py.
...
When provision.py is run using python 2, retain original behavior
of creating a python 2 venv using requirements/py2_dev.txt and
creating a python 3 venv using requirements/mypy.txt.
When provision.py is run using python 3, install a single python 3
venv with requirements/py3_dev.txt.
2016-07-06 13:50:55 -07:00
Eklavya Sharma
cdc067e751
tools/provision.py: Use universal_newlines=True.
2016-07-06 13:50:55 -07:00
Eklavya Sharma
ce6ddd574a
zerver/lib/test_helpers.py: Replace os.path.walk by os.walk.
...
os.path.walk has been removed in python 3.
2016-07-06 11:49:55 -07:00
Eklavya Sharma
6505cbf2bf
zerver/lib/timeout.py: Replace isAlive by is_alive.
...
In threading.Thread, isAlive has been removed in python 3.
We should use is_alive instead.
2016-07-06 11:49:48 -07:00
Eklavya Sharma
0b714ea6c6
Use python2-specific requirements files.
2016-07-02 11:53:26 -07:00
Eklavya Sharma
dcd568960b
Add files to mypy's python 3 exclude list.
2016-07-02 10:38:48 -07:00
Eklavya Sharma
b44ae38bff
tools/run-mypy: Add Python 3 mode.
2016-07-02 10:38:48 -07:00
Tim Abbott
3b16daad18
provision: Add a shebang line.
2016-06-30 22:34:58 -07:00
Tim Abbott
a78c1b9750
Fix casper tests hanging while development server is running.
...
This works around a nasty problem with Webpack that you can't run two
copies of the Webpack development server on the same project at the
same time (even if on different ports). The second copy doesn't fail,
it just hangs waiting for some lock, which is confusing; but even if
that were to be solved, we don't actually need the webpack development
server running to run the Casper tests; we just need bundle.js built.
So the easy solution is to just run webpack manually and be sure to
include bundle.js in the JS_SPECS entry.
As a follow-up to this change, we should clean up how test_settings.py
is implemented to not require duplicating code from settings.py.
Fixes #878 .
2016-06-30 14:18:50 -07:00
Vishnu Ks
e4b72c3a65
Move respond_to_message to compose.js.
2016-06-29 13:04:02 -07:00
Tim Abbott
5ce0637da9
run-mypy: Explode exclude lists to specific files.
2016-06-28 16:42:59 -07:00
Tim Abbott
56e7a2f6f3
Annotate zerver.migrations.
2016-06-28 16:38:33 -07:00
Tim Abbott
c8aae360be
test-backend: Fix spelling of an example in usage text.
2016-06-28 16:24:58 -07:00
Tim Abbott
7ed0ab8c4a
Ensure Zulip virtualenvs are world-readable.
...
This is important for both ensuring the Nagios checks work correctly
in production, as well as making sure the `zulip` user can access the
virtualenv (owned by the `travis` user) in Travis CI.
2016-06-28 12:03:01 -07:00
Tim Abbott
40aa8a2336
clean-venv-cache: Fix python 3 compatibility.
2016-06-27 20:39:22 -07:00
Tim Abbott
404c61ba97
clean-venv-cache: Use better approach to pruning caches.
...
Rather than looking at which venvs are used by this particular build,
we instead look at which venvs have a hash that is the hash_reqs value
of a current requirements.txt file.
2016-06-27 20:30:39 -07:00
Tim Abbott
7d5c1864f7
clean-venv-cache: Avoid cleaning production venvs.
2016-06-27 20:08:45 -07:00
Tim Abbott
beb8b50623
Move provision.py under tools/.
2016-06-27 19:04:32 -07:00
Tim Abbott
e1860e5b46
Remove tools/provision/zulip-dev.conf.
...
This was originally supervisord configuration for the Zulip
development environment; it never really worked how we wanted it to.
2016-06-27 19:04:32 -07:00
acrefoot
7ff89dc137
Add markdown-specific whitespace lint rule to /tools/lint-all.
...
Match one space or three+ spaces after content, or positive
number of spaces on an empty line.
2016-06-27 18:43:20 -07:00
Aakash Tyagi
9154d93669
Added help text for running single backend tests.
2016-06-27 14:15:30 -07:00
Tim Abbott
101820bc29
Move docker development environment scripts to tools/.
...
scripts/ is for scripts which are used in production.
2016-06-27 13:38:06 -07:00
rahuldeve
3ca53df152
Add test for worker queue autoreloading.
2016-06-26 20:12:37 -07:00
Tim Abbott
7d3b451902
lint: Check for extremely long lines.
...
Currently, we check for lines longer than 180 characters; we can lower
this as we clean up or wrap longer strings.
2016-06-25 10:52:03 -07:00
Umair Khan
a70d5041d2
Don't allow literal strings in report_error.
2016-06-23 16:23:01 -07:00
Umair Khan
b7bb49c6f5
Don't allow literal string in report_success.
2016-06-23 16:23:01 -07:00
Tim Abbott
039c175d68
production-helper: Hold tons of packages.
...
This saves almost a minute doing apt upgrades in the production test
suite.
2016-06-22 10:41:09 -07:00
Tim Abbott
9b436c7190
setup-production: Remove more irrelevant postgres packages.
2016-06-22 10:41:09 -07:00
Tim Abbott
5a109cf816
travis: Skip development database setup in production tests.
...
This saves about 20s on the runtime of the production build.
2016-06-22 10:41:09 -07:00
Tim Abbott
0f2729f5fb
production-helper: use dist-upgrade to match install script.
...
Previously, we were wasting time every time we installed packages,
because `apt-get upgrade` would only install most of the packages
`apt-get dist-upgrade` would.
2016-06-22 10:38:27 -07:00
Eklavya Sharma
121a5f26fb
Move hash_reqs.py from tools/ to scripts/lib/.
...
This is needed because hash_reqs.py is used to create a virtualenv.
Currently we only use virtualenv in development, but we will soon
start using it in production. Scripts used in production should be
put in scripts/.
2016-06-22 18:12:08 +05:30
Tim Abbott
6b8e9c7254
Exclude static/locale from linters.
2016-06-21 17:17:34 -07:00
Tim Abbott
50f723f50b
Split test_narrow.py out of test_messages.py.
2016-06-21 12:25:08 -07:00
Alex Wilson
f68a392250
Run django.setup() after coverage.start() in tests to fix coverage report.
...
Fixes #1007 .
2016-06-21 10:37:45 -07:00
Eklavya Sharma
8148cbe173
Add tools/hash_reqs.py.
...
tools/hash_reqs.py generates a hash of a requirements file. It
does that by generating a sorted list of unique dependencies referred
to by that requirements file. To do that, it also recurses into other
requirements files specified inside that requirements file.
2016-06-20 11:09:20 -07:00
Tim Abbott
eb71173be3
lint: Fix warnings under confirmation/.
2016-06-20 08:19:54 -07:00
Tim Abbott
3899b4c913
Move py3k requirements to requirements/py3k.txt.
2016-06-18 16:41:40 -07:00
Tim Abbott
5c92639f81
Move mypy requirements to requirements/ directory.
2016-06-18 16:41:40 -07:00
Tim Abbott
6d1d7471e6
Refactor out zproject/dev_settings.py.
2016-06-17 12:15:15 -07:00
Tim Abbott
d117ec8664
lint: Fix redundant stripping of strings.
2016-06-17 10:41:39 -07:00
Tim Abbott
267a71cf20
Run Python custom RE checks in parallel with non-python.
...
This saves about 1s (out of originally 3.3s) of time running all the
linters in my development environment.
2016-06-17 10:26:50 -07:00
Tim Abbott
5b05644c95
Run mypy on zerver/tests/test_hooks.py.
2016-06-16 14:07:34 -07:00
Tim Abbott
6723525fd3
Annotate zerver/tests/tests.py.
2016-06-16 14:07:34 -07:00
John Hergenroeder
16a19226f6
Add linter check for redundant REQ whence argument.
2016-06-16 13:53:39 -07:00
Tim Abbott
0071731915
test-run-dev: Display original error messages on failures.
...
This helped with debugging a failure recently.
2016-06-15 22:44:04 -07:00
Tim Abbott
39a8c82957
travis: Remove verbose coverage report from end of build output.
2016-06-15 15:05:38 -07:00
Eklavya Sharma
553a9d0b75
tools/run-mypy: Exclude py files which have a pyi.
...
If a .py file has a corresponding .pyi stub file, exclude that
.py file from mypy.
2016-06-15 22:40:31 +05:30
Tim Abbott
9e6b9dacf6
test-migrations: Fix missing exit status on error.
...
Previously this test was correctly detecting missing migrations, but
not causing the build to fail.
2016-06-15 09:26:04 -07:00
Umair Khan
c1f5ac375c
Add linter checks for javascript strings and HTML placeholders.
...
Checks are added for:
- i18n.t
- placeholder
- compose_error
2016-06-13 09:05:27 -07:00
Tim Abbott
062287d0b0
Coveralls: Add coverage reporting to backend test suite.
2016-06-10 17:20:00 -07:00
Tim Abbott
584887e588
lint: Require folding of } on same line in else if statements.
2016-06-09 14:05:34 -07:00
Tim Abbott
c35781d505
lint: Require folding of } on same line as else statements.
2016-06-09 14:02:49 -07:00
Tim Abbott
0c1b5006f7
lint: Check for space after if in javascript.
2016-06-09 13:47:12 -07:00
Tim Abbott
eba0d6339f
lint: Require space after // in JS comments.
2016-06-09 13:44:24 -07:00
Tim Abbott
a09b950097
lint-all: Check for relative URLs in JSON calls from JS.
2016-06-09 11:59:40 -07:00
Umair Khan
938291a922
Add run-dev.py test to Travis CI test suites.
...
Fixes #919
2016-06-08 14:10:37 +05:00
Vishnu Ks
d30ea0bc44
Move recent_subjects to stream_data.
2016-06-07 17:50:16 -07:00
Tim Abbott
be53c9e39e
tests: Check for presence of typing in venv guard.
...
Since relatively few systems have the typing module, this makes the
checks for whether the user is properly running our test scripts in
the virtualenv more likely to trigger well.
2016-06-06 13:41:34 -07:00
Ernesto Vargas
ffb2f9e84b
lint/tests: Give nice error message for common import failures.
...
This should make users much more likely to be able to debug issues
where they ran Zulip outside the Vagrant environment or virtualenv.
[error messages tweaked by tabbott]
2016-06-06 13:39:26 -07:00
Tim Abbott
553ef81f92
Add lint rules for mypy type annotations.
2016-06-05 13:00:55 -07:00
James Porter
2a8e8129d1
Make emoji_dump delete old ttx files on start.
2016-06-04 17:05:48 -07:00
James Porter
f5f2d72178
Wrap main bit of emoji_dump.py in a main function.
2016-06-04 17:05:48 -07:00
James Porter
9d58624359
Minor reformatting of emoji_dump.py.
2016-06-04 17:05:48 -07:00
James Porter
d008d96597
Update Emoji set.
2016-06-04 17:05:48 -07:00
Reid Barton
0b7852f081
Generate mypy coverage report for travis + coveralls.
2016-06-04 13:01:19 -07:00
Tim Abbott
03debdf82f
Fix malformed error message when creating invalid Realm Emoji.
...
Thanks to Greg McCoy for his help finding this bug.
2016-06-03 23:12:36 -07:00
Tim Abbott
e7d9b28dfc
install-mypy: Pass --upgrade to correctly handle new mypy versions.
2016-06-03 19:11:32 -07:00
Tim Abbott
5d5f1f46dc
Upgrade mypy and typed_ast to latest versions.
2016-06-03 18:59:55 -07:00
Nathan Florea
5fe9076631
Remove some mutable default arguments.
...
These ones don't fix any bugs, because the mutable arg is never passed
outside of the callable or mutated. But it's good practice to not use
them in case those invariants are changed in the future.
2016-06-03 09:16:56 -07:00
Tim Abbott
37015fd7c5
Run mypy on zerver/lib/test_auth_backends.py.
2016-06-02 23:01:15 -07:00
Tim Abbott
8cef9675c8
Run mypy on zerver/lib/test_events.py.
2016-06-02 23:00:04 -07:00
Tim Abbott
e6d2b0cdbc
Run mypy on zerver/lib/test_unread.py.
2016-06-02 22:59:00 -07:00
Tim Abbott
f3b07ee9aa
Run mypy on zerver/lib/test_subs.py.
2016-06-02 22:57:07 -07:00
Tim Abbott
1bdbdd1110
Run mypy on test files where it already passes.
2016-06-02 22:53:28 -07:00
Umair Khan
072551a94e
Fix most redownloading in 'vagrant reload --provision'.
...
Fixes #264 .
2016-06-02 22:32:56 -07:00
Conrad Dean
f8f2f45410
run-mypy: Add --linecount-report and --disallow-untyped-defs flags.
2016-06-02 18:45:52 -07:00
Tim Abbott
fbc30c2914
test-all: Add a call to run-mypy.
...
Using mypy to check the codebase is stable and useful enough that it's
worth including it in the default tests run locally.
2016-05-31 15:00:15 -07:00
Umair Khan
bd4e471706
Check json_error and JsonableError in linter.
...
Mainly the check is to ensure that all the strings that pass through
these two functions are captured by `makemessages`.
2016-05-31 07:40:42 -07:00
Umair Khan
4b28fcd2f3
Add option to linter to exclude lines from files.
2016-05-31 07:40:42 -07:00
Tim Abbott
41336f3782
lint-all: Check for use of '== None'.
2016-05-31 07:02:04 -07:00
Umair Khan
c884559ec6
Show templates rendered report.
...
Add two options to the `test-backend` script:
1. verbose
If given the `test-backend` script will give detailed output.
2. no-shallow
Default value is False. If given the `test-backend` script will
fail if it finds a template which is shallow tested.
2016-05-31 16:46:11 +05:00
Greg Price
436499a129
Clean up some relative-path handling in lister using Git magic
...
This lets us cut out the line which hard-codes how deeply nested in
the tree the `run-mypy` script is, making it simpler to borrow these
scripts in other projects.
2016-05-30 20:01:37 -07:00
Reid Barton
8c6afac7cd
Add a stub file for request.py.
...
This stub file allows us to annotate view functions using the actual
types present in the bodies of the functions, rather than everything
having the type REQ.
2016-05-30 11:28:53 -07:00
Reid Barton
ff845ebb96
Make tools/install-mypy exit on error.
2016-05-30 09:49:45 -07:00
Eklavya Sharma
149938d468
Change shebangs from python2.7 to python.
2016-05-29 05:03:08 -07:00
Vishnu Ks
fea5ed5b60
Remove unread_subjects from check-all.js
...
unread_subjects is not used by other modules.
2016-05-27 01:03:21 -07:00
Vishnu Ks
51c86a8e2e
Move get_private_message_recipient to message_store.js
2016-05-27 01:03:21 -07:00
Vishnu Ks
89d743787e
Move recenter_view to viewport.js.
2016-05-27 01:03:21 -07:00
Vishnu Ks
4be20c4b4a
Move scroll_to_selected to navigate.js.
2016-05-27 01:03:21 -07:00
Vishnu Ks
e329c9e0f5
Move maybe_scroll_to_selected to navigate.js.
2016-05-27 01:03:21 -07:00
Vishnu Ks
dc577343fe
Move last_viewport_movement_direction to viewport.
2016-05-27 01:03:21 -07:00
Umair Khan
0278ce9102
Move tools/py3_test_reqs.txt to tools/setup/.
...
Fixes #708
2016-05-26 18:43:24 +05:00
Umair Khan
57f477dd8b
Move tools/install-phantomjs to tools/setup/.
2016-05-26 18:28:14 +05:00
Umair Khan
1161862b07
Move tools/emoji_dump to tools/setup/.
2016-05-26 18:28:14 +05:00
Umair Khan
b85526576a
Move tools/postgres-init-dev-db to tools/setup/.
2016-05-26 18:28:10 +05:00
Umair Khan
b0991966ab
Move tools/postgres-init-test-db to tools/setup/.
2016-05-26 18:28:05 +05:00
Umair Khan
d425e05a02
Move tools/generate-fixtures to tools/setup/.
2016-05-26 17:54:32 +05:00
Umair Khan
8335bd672f
Move tools/generate-test-credentials to tools/setup/.
2016-05-26 17:54:28 +05:00
Umair Khan
d5f3a82284
Move tools/download-zxcvbn to tools/setup.
2016-05-26 16:05:23 +05:00
Eklavya Sharma
09400a7e50
End compile-handlebars-templates gracefully.
...
Catch KeyboardInterrupt from tools/compile-handlebars-templates,
print a message and exit when running in forever mode.
2016-05-25 16:06:35 -07:00
Eklavya Sharma
d9c4be87d1
Make docs/conf.py pass mypy check.
2016-05-25 15:04:39 -07:00
Eklavya Sharma
30892b2f99
Make makemessages.py pass mypy check.
2016-05-25 15:04:39 -07:00
Eklavya Sharma
ea52fc05ed
Make zproject/urls.py pass mypy check.
2016-05-25 15:04:39 -07:00
Eklavya Sharma
1c04560def
Re-enable pyflakes in linter and remove python 3 pyflakes errors.
2016-05-25 19:25:13 +05:30
Eklavya Sharma
1a6257394c
Make tools/lint-all run on python 3.
...
Since pyflakes catches some extra errors in python 3, disable
pyflakes for now.
2016-05-25 19:23:13 +05:30
Eklavya Sharma
3185b7e750
Remove unneeded imports from tools/lint-all.
2016-05-25 19:12:09 +05:30
Eklavya Sharma
c800c87d2d
Remove __pycache__ in tools/clean-repo.
2016-05-24 13:43:49 -07:00
Eklavya Sharma
b210727e5c
Enable running tools/run-mypy on a subdirectory.
...
Previously tools/run-mypy could not run on a subdirectory properly
because run-mypy assumed exclude files to be in that subdirectory.
2016-05-24 13:24:15 -07:00
Eklavya Sharma
bd63caed96
Fix exclude startegy in tools/lister.py.
...
Previously lister.py used to check whether the exclude path is a
substring of a path being considered. So it would fail when the
exclude path is an absolute path or uses '..' or '.'.
2016-05-24 13:24:15 -07:00
Eklavya Sharma
f3e25c68c7
Prevent tools/travis/mypy from failing silently.
...
Also improve the format of tools/travis/mypy's output.
Also add those files to the exclude list which are failing mypy check.
2016-05-21 12:37:04 +05:30
Umair Khan
82b5d9304b
[third] Integrate i18next with Handlebars
2016-05-19 22:58:25 -07:00
Tim Abbott
cadbe64265
Fix venv files being included in coverage reports in CI.
...
e4707af2e2
didn't correctly deal with
the different path for the venv cache in Travis CI.
2016-05-19 10:25:56 -07:00
Tim Abbott
e4707af2e2
test-backend: Fix venv files being included in coverage reports.
2016-05-19 09:36:53 -07:00
Umair Khan
e56d3196ef
Update provisioning/release scripts to build `.mo` files.
...
We need to update provision.py to compile the messages files, since
they are needed for the new i18n tests. And of course we need to
include the .mo files in release tarballs; there's a bit of complexity
there around how the tarball archives are created.
2016-05-18 19:30:00 -07:00
Umair Khan
e6d33e8834
jslint: Fix typo.
2016-05-18 18:58:06 -07:00
Eklavya Sharma
016a2faa23
Make zproject/local_settings.py pass mypy check.
2016-05-18 17:10:18 +05:30
Eklavya Sharma
54759be785
Make zproject/local_settings_template.py pass mypy check.
2016-05-18 17:10:18 +05:30
Eklavya Sharma
70a94a5b23
Expand zproject/ in mypy exclude list.
2016-05-18 17:10:18 +05:30
Eklavya Sharma
6606c30355
Remove zilencer/models.py from mypy exclude list.
...
zilencer/models.py no longer gives an error on type checking with
mypy.
2016-05-18 17:10:18 +05:30
Eklavya Sharma
7c77522ce4
Make zerver/middleware.py pass mypy check.
...
This was done by reporting python/mypy#1540 and upgrading to the
latest version of mypy which has the fix for this.
2016-05-18 17:10:18 +05:30
Eklavya Sharma
98afe000ee
Make zerver/lib/statistics.py pass mypy check.
2016-05-18 17:10:18 +05:30
Eklavya Sharma
0dcd8b387d
Make zerver/lib/bugdown/fenced_code.py pass mypy check.
2016-05-18 17:10:17 +05:30
Eklavya Sharma
3441f0848c
Annotate pg_backup_and_purge.py.
2016-05-18 17:10:17 +05:30
Eklavya Sharma
66bb6394e5
Make api/zulip/__init__.py pass mypy check.
2016-05-18 17:10:17 +05:30
Eklavya Sharma
46757f07bf
Make zerver/lib/actions.py pass mypy check.
2016-05-18 17:10:17 +05:30
Eklavya Sharma
16067b7013
Make zerver/views/webhooks/jira.py pass mypy check.
2016-05-18 17:10:17 +05:30
Tim Abbott
12b32d3889
check-py3: Display git status --porcelain output.
2016-05-12 16:30:58 -07:00
Tim Abbott
6c744564a7
travis: Add debugging code for rabbitmq nagios failures.
2016-05-09 09:55:18 -07:00
Umair Khan
5359e6b0d4
Convert Zulip to use Jinja2 templates.
...
This results in a substantial performance improvement for all of
Zulip's backend templates.
Changes in templates:
- Change `block.super` to `super()`.
- Remove `load` tag because Jinja2 doesn't support it.
- Use `minified_js()|safe` instead of `{% minified_js %}`.
- Use `compressed_css()|safe` instead of `{% compressed_css %}`.
- `forloop.first` -> `loop.first`.
- Use `{{ csrf_input }}` instead of `{% csrf_token %}`.
- Use `{# ... #}` instead of `{% comment %}`.
- Use `url()` instead of `{% url %}`.
- Use `_()` instead of `{% trans %}` because in Jinja `trans` is a block tag.
- Use `{% trans %}` instead of `{% blocktrans %}`.
- Use `{% raw %}` instead of `{% verbatim %}`.
Changes in tools:
- Check for `trans` block in `check-templates` instead of `blocktrans`
Changes in backend:
- Create custom `render_to_response` function which takes `request` objects
instead of `RequestContext` object. There are two reasons to do this:
1. `RequestContext` is not compatible with Jinja2
2. `RequestContext` in `render_to_response` is deprecated.
- Add Jinja2 related support files in zproject/jinja2 directory. It
includes a custom backend and a template renderer, compressors for js
and css and Jinja2 environment handler.
- Enable `slugify` and `pluralize` filters in Jinja2 environment.
Fixes #620 .
2016-05-09 09:55:18 -07:00
Tim Abbott
804dad42e6
travis: Run various Nagios checks in production tests.
2016-05-08 17:35:50 -07:00
Tim Abbott
744e8ad0e3
travis: Set prod EXTERNAL_HOST to resolve correctly.
...
This is needed to use check_send_receive_time in the tests.
2016-05-08 17:35:50 -07:00
Tim Abbott
e4c098fba4
travis: Verify all supervisord jobs are running in production test.
...
This requires a bit of complexity since supervisord automatically
restarts failing jobs.
2016-05-08 17:35:50 -07:00
Tim Abbott
40de75d9e6
travis: Verify the server doesn't 500 in production test.
2016-05-08 17:35:50 -07:00
Vladislav Manchev
52e96915e2
check-templates: Allow HTML tag brackets inside tag attributes.
2016-05-08 16:33:03 -07:00
Tim Abbott
6e1872987d
Move bin/get-django-setting to scripts/.
2016-05-07 19:37:06 -07:00
Tim Abbott
c1a680e2a9
rate_limiter: Fix misplaced type annotation and cleanup code.
...
You don't put type annotations on return values.
2016-05-06 13:38:12 -07:00
Tim Abbott
3a0e7c217f
mypy: Move verbose error output to travis CI wrapper.
...
This makes it easier to pipe the output of tools/run-mypy to tools
like grep.
2016-05-06 13:38:12 -07:00
Tim Abbott
b21454d05e
mypy: Use the new --fast-parser option.
...
This makes mypy about 15% faster running on the Zulip codebase (from
7s=>6s on my laptop), which seems worth it for losing a couple files.
This option requires a new dependency, which we add to the
mypy-specific requirements.txt file.
2016-05-06 13:38:12 -07:00
Tim Abbott
1807e855e7
Upgrade mypy to the new 0.4.0 release.
...
Also update the mypy command line to not use deprecated argument names.
This introduces a few errors, so we exclude the relevant files to keep
the mypy output clean.
2016-05-06 13:38:12 -07:00
Tim Abbott
542af0d6b6
lint: Add option to print verbose timing output.
2016-05-04 14:22:52 -07:00
Tim Abbott
e2aeee0c35
lint: Add check for unnecessary whitespace between % and (.
2016-05-04 14:22:52 -07:00
Tim Abbott
72ee9f5137
lint: Check for unnecssary whitespace after ','s.
2016-05-04 14:17:27 -07:00
Tim Abbott
dd40f51fee
Add code to clean the venv cache of old venvs.
2016-05-03 15:04:03 -07:00
Tim Abbott
9970341ede
Fix caching of install-phantomjs library in Travis CI.
2016-05-03 14:48:21 -07:00
Tim Abbott
391a225595
lint: Check for missing space after comments.
2016-05-02 22:10:47 -07:00
Tim Abbott
762a3188ee
Fix missing whitespace after # in comments.
2016-05-02 22:10:47 -07:00
Tim Abbott
52c1e8ac7d
Run a local camo server in voyager production environments.
...
Camo is a caching image proxy, used in Zulip to avoid mixed-content
warnings by proxying HTTP image content over HTTPS. We've been using
it in zulip.com production for years; this change makes it available
in standalone Zulip deployments.
2016-05-02 17:21:31 -07:00
Tim Abbott
48a578d003
travis: hold expensive to upgrade packages in Travis CI.
...
This should save a few minutes of time running the production test
suite. This is part of solving #722 .
2016-05-02 16:59:21 -07:00
Tim Abbott
79327a61ae
travis: Do an apt-get update before the apt upgrade.
...
This should save several minutes off the Travis CI `production`
suite's runtime, since previously we were doing the full apt upgrade
process twice, resulting in things like multiple expensive rebuilds of
the initramfs.
2016-05-02 16:35:46 -07:00
Eklavya Sharma
27f12b2de3
Annotate tools/lister.py.
2016-05-01 23:04:09 +05:30
Eklavya Sharma
247cdf578b
Add dependencies to setup-py3k.
...
Add 'six' to setup-py3k, because it is being used in tools/lister.py.
Add 'typing' to setup-py3k, so that tools/lister.py can be type
annotated in the future.
2016-05-01 10:47:04 +05:30
Eklavya Sharma
2d3f9c8fb9
tools/lister.py: Use default arguments in add_argument.
...
Use the `default` parameter of ArgumentParser.add_argument
instead of manually setting default using the `x = x or []` pattern.
2016-05-01 07:01:52 +05:30
Tim Abbott
755695d3c0
bugdown: Add type: ignore for fenced_code import.
...
This is a workaround to allow us to type-check files that depend on
this. Ideally in the future we'll fix the type errors in
fenced_code.py.
2016-04-28 12:50:47 -07:00
Tim Abbott
d61c8f91cf
run-mypy: Link to docs on ReadTheDocs.
2016-04-28 12:35:54 -07:00
Eklavya Sharma
4310e6d224
Add tools/install-mypy.
...
This provides a way for users not using provision.py to install mypy.
[with substantial tweaks by tabbott]
2016-04-28 12:29:12 -07:00
Eklavya Sharma
1041115b38
Add code to install mypy from provision.py.
2016-04-28 12:28:24 -07:00
Eklavya Sharma
3601b9eda9
tools/run-mypy: Use mypy from zulip-py3-venv if present.
2016-04-28 12:28:24 -07:00
Eklavya Sharma
c80f699321
Add tools/run-mypy to Travis checks.
...
Fixes #635 .
2016-04-28 10:03:35 -07:00
Eklavya Sharma
1af4334887
Add tools/run-mypy.
...
Since a lot of files don't pass the mypy check, a long list of
files to be excluded from mypy check has been specified.
2016-04-28 10:03:35 -07:00
Eklavya Sharma
c220c61dbd
tools/check-py3: Speed up and add --find-fixers.
...
Now tools/check-py3 will by default run all fixers together. This is
quicker but doesn't indicate which fixers caused the failure. The
newly added option --find-fixers falls back to the old way of checking
each fixer separately if the quick check fails.
Fixes #710 .
2016-04-28 10:01:17 -07:00
Tim Abbott
302da832fa
lint: Enforce whitespace between : and value in dicts.
2016-04-27 22:23:40 -07:00
Eklavya Sharma
b4555e58c8
tools/check-py3: Update references in output.
...
Replace occurrences of 'py3k' by 'check-py3' in echo output.
2016-04-27 10:34:52 -07:00
Vishnu Ks
fe4a03fd01
Move narrowed_msg_list to message_list.js.
2016-04-26 10:25:11 -07:00
Eklavya Sharma
cbba7202e6
Add future and modernize to requirements.txt
...
Also improve tools/travis/setup-py3k in these ways:
* remove sudo
* add --no-deps to pip install
* specify versions in pip install
2016-04-25 09:50:32 -07:00
Eklavya Sharma
1ce2d26679
Prevent check-py3 from failing on no files.
...
Now tools/travis/check-py3 does not fail unexpectedly when there are
no python files in the current directory.
2016-04-25 09:50:32 -07:00
Eklavya Sharma
b4009c28d0
Move py3k and add a travis wrapper for it.
...
Move tools/travis/py3k to tools/check-py3.
Add tools/travis/py3k which calls tools/check-py3.
2016-04-25 09:50:32 -07:00
Vishnu Ks
35b0af2852
Move all_msg_list to message_list.js.
2016-04-21 17:46:21 -07:00
Tim Abbott
8a278cbe3a
Switch to using a Zulip version of @login_required.
...
Currently the code is the unmodified Django upstream implementation;
this commit is preparation for modifying it.
2016-04-21 14:59:39 -07:00
Vishnu Ks
ee39f5009f
Make message_list.js work like the other modules.
2016-04-20 15:29:30 -07:00
Tim Abbott
9c56027627
lint: Add CSS lint rule for whitespace after {.
2016-04-20 11:50:01 -07:00
Tim Abbott
a46b5d7bbe
Add lint check for missing whitespace after =.
2016-04-20 11:37:03 -07:00
Tim Abbott
a72385246e
Fix missing whitespace after '=' in python/js code.
2016-04-20 11:36:14 -07:00
Vishnu Ks
3179434f93
Move keep_pointer_in_view to pointer.js.
2016-04-19 15:23:45 -07:00
Vishnu Ks
b655e090a6
check_all: Move viewport to modules list.
...
It was previously incorrectly listed as a global variable.
2016-04-19 15:23:24 -07:00
Tim Abbott
a2b59b8b51
lint: Check whitespace rules for txt files.
2016-04-14 14:36:29 -07:00
Tim Abbott
39950b8f4f
lint: Check whitespace rules in markdown files too.
2016-04-14 14:30:29 -07:00
Tim Abbott
1a162ecb97
Fix tab-based whitespace in stress-test README file.
2016-04-14 14:30:29 -07:00
Tim Abbott
2b76f6223e
Make 'no newline at end of file' lint error more actionable.
...
There's a handy sed command to fix this, so we might as well document
it.
2016-04-14 10:55:06 -07:00
Tim Abbott
e71d8bb4b6
lint-all: Require newlines at end of JSON files.
2016-04-14 10:49:12 -07:00
Tim Abbott
d0f2c46f25
generate_test_credentials: Use the email variable properly.
...
This makes it a bit easier to change the email in the test
credentials.
2016-04-13 13:19:02 -07:00
Tim Abbott
98d5f64f36
webpack: Use the correct port in Casper tests.
...
Previously we used 9994 unconditionally, whereas we should be using
9984 or 9994 depending whether it's being run manually or via the
Casper tests.
2016-04-13 13:18:38 -07:00
Vishnu Ks
35f70e9dac
Move 5 legacy global variables to pointer.js.
...
Move recenter_pointer_on_display, suppress_scroll_pointer_update,
fast_forward_pointer, furthest_read, and server_furthest_read to
a new pointer module in pointer.js.
2016-04-12 10:56:54 -07:00
Tim Abbott
be96cf809d
Move Zulip backend tests to zerver.tests.
2016-04-11 22:16:09 -07:00
Ashish
a12006d86f
Replace /json/update_active_status with REST style route.
2016-04-11 21:38:23 -07:00
Ashish
cb8da46bbf
Replace /json/get_old_messages with REST style route.
2016-04-11 21:38:23 -07:00
Tim Abbott
52fc1c71bc
provision: Rewrite using subprocess module instead of sh.
...
The `with sh.sudo` pattern that we were using in python-sh was
deprecated, and emperically hangs on Ubuntu xenial. Since in general
the use of python-sh/python-pbs caused trouble (requiring extra
dependencies, confusing syntax), this just removes it.
We replace it with a new zulip_tools.py library function that echoes
the command line and streams the output.
We do the same to install-phantomjs so we can remove that dependency.
2016-04-10 17:33:19 -07:00
Vishnu Ks
2ac5271091
Move global variable have_scrolled_away_from_top to ui.js.
2016-04-10 10:55:16 -07:00
Tim Abbott
9584ae1ab8
Add CSS linter for missing space after : in rules.
2016-04-08 21:04:43 -07:00
Aristeidis Fkiaras
0058ccbdb0
Move global unread_messages_read_in_narrow to unread.js.
2016-04-08 12:11:47 -07:00
Tim Abbott
209e6ef7a1
Run trailing whitespace linter on bash files.
2016-04-08 11:52:11 -07:00
Tim Abbott
caba24b2af
Fix existing trailing whitespace in bash scripts.
2016-04-08 11:52:11 -07:00
Tim Abbott
4fa63c29ca
Run whitespace linters on html files.
2016-04-08 11:52:11 -07:00
Tim Abbott
d670e902a9
Run whitespace linters on handlebars templates.
2016-04-08 11:52:11 -07:00
Tim Abbott
c6d01ab76b
Run whitespace linters on CSS files.
2016-04-08 11:47:10 -07:00
Tim Abbott
1b84617771
Don't skip running python custom linters inside comments.
...
This fixes an issue where we weren't checking for trailing whitespace
in comments.
2016-04-08 11:47:10 -07:00
Tim Abbott
14b5e265c2
Remove unuseful suspicious code lint check.
2016-04-08 11:47:10 -07:00
Tim Abbott
efd14e7ad9
Revert "Exclude 'from typing import *' from linter."
...
This reverts commit d936bf61f9
.
We no longer need this since we've migrated to specifying the
dependencies in the typing module that we're actually using.
2016-04-07 14:12:18 -07:00
Tim Abbott
e413d4e153
Move webpack configuration to tools/.
2016-04-06 08:09:55 -07:00
Eklavya Sharma
05ab57e373
In py3k, exit with 1 if repository is not clean.
2016-04-05 13:22:51 -07:00
Eklavya Sharma
569d1240d0
Exit with 1 in py3k when fixers find an issue.
...
tools/travis/py3k used to always exit with exit code 0.
It should exit with 1 when fixers detect a compatibility issue.
py3k used [ -z "$failed" ] to check if there was a failure.
This is wrong, since if no failure has occured, failed=0,
and -z checks if a string is of zero length. This commit also
fixes this bug.
2016-04-05 13:22:51 -07:00
Eklavya Sharma
dd501830a6
Change position where git reset is called in py3k.
...
In py3k, "git reset --hard" was called only if
libmodernize.fixes.fix_dict_six changed files and some of those
changes are not considered false positives by py3k.
But if all of those changes are not considered false positives
by py3k, then "git reset --hard" is not called and the repository
is no longer clean.
This commit fixes this bug.
2016-04-05 13:22:51 -07:00
Eklavya Sharma
5e71777975
Add --no-pager option to git diff in py3k.
...
This is needed because py3k hangs when a pager opens up.
2016-04-05 13:22:51 -07:00
Eklavya Sharma
adff674b0e
tools/travis/py3k now checks all python files.
...
tools/travis/py3k used to only check files whose names ended with .py.
Now it also checks python scripts which don't have an extension.
It uses tools/lister.py to get a list of all python files.
2016-04-05 13:22:51 -07:00
Eklavya Sharma
ab02ab31e3
Change len(obj.keys()) to len(obj) in tools/get-handlebar-vars.
...
This prevents libmodernize.fixes.fix_dict_six from reporting
this on running tools/travis/py3k.
2016-04-05 13:22:51 -07:00
Eklavya Sharma
8a81f8c125
Apply Python 3 futurize transform libfuturize.fixes.fix_print_with_import.
2016-04-05 13:22:51 -07:00
Eklavya Sharma
f4aa609aea
Apply Python 3 futurize transform libmodernize.fixes.fix_file.
2016-04-05 13:22:51 -07:00
Eklavya Sharma
be0a4f349d
Apply Python 3 futurize transform libmodernize.fixes.fix_filter.
2016-04-05 13:22:51 -07:00
Tim Abbott
78e289f904
Exclude puppet-common tests from puppet linter.
2016-04-04 17:08:29 -07:00
Tim Abbott
b99313545e
Add PEP-484 type annotations to global dictionaties.
2016-04-03 15:40:06 -07:00
Tim Abbott
70c1b0a01d
lister: Add file type detection for node and ruby.
2016-04-01 15:27:32 -07:00
Eklavya Sharma
aead933c14
Add command-line interface to lister.py using argparse.
2016-04-01 15:27:32 -07:00
Eklavya Sharma
81fdeae0ea
Remove '.'s from extensions in lister.py interface and lint-all.
...
In lint-all, change occurences of '.py', '.js', ... to 'py', 'js', ....
2016-04-01 15:27:16 -07:00
Eklavya Sharma
ad4c20a3e6
Migrate lint-all to lister.py for getting files.
...
This has the side effect of making lint-all check all shell scripts,
not just those under scripts/, tools/, and bin/.
[commit message expanded by tabbott]
2016-04-01 15:24:43 -07:00
Eklavya Sharma
ec8ae1f4c5
Add option to determine file type in lister.py using shebang.
2016-04-01 15:19:13 -07:00
Eklavya Sharma
5063f16f82
Add options for file type in lister.py
...
Add option to filter files by their extension.
Add option to return a dict of list of files keyed by their file type.
2016-04-01 15:19:13 -07:00
Eklavya Sharma
81aabb5831
Add option to exclude files from lister.py.
2016-04-01 15:19:13 -07:00
Eklavya Sharma
422fef2e24
Add argument modified_only to lister.py.
...
Add option of only showing modified files in tools/lister.py.
2016-04-01 15:19:13 -07:00
Eklavya Sharma
6954eb072c
Create lister.py.
...
Make module tools/lister.py which lists all files in a directory
tracked by git. This is done because lister.py will be used by other
scripts in the future which have to introspect files in the repository,
like linters, static code checkers, etc.
2016-04-01 15:19:13 -07:00
Tim Abbott
7d74c64f75
Add hackish tool for finding unused CSS.
2016-04-01 09:34:46 -07:00
Tim Abbott
d936bf61f9
Exclude 'from typing import *' from linter.
2016-03-30 21:50:31 -07:00
Tim Abbott
970d697e88
Fetch PhantomJS packages from a GitHub URL.
...
This should fix a problem we've been having with errors downloading
the PhantomJS packages from their original hosting service.
Eventually we should move it to an S3 bucket.
2016-03-29 21:24:38 -07:00
Eklavya Sharma
20f4bcd86e
Delete tools/python-proxy since it is not used.
2016-03-29 20:02:26 -07:00
Tim Abbott
cd2348e9ae
Run queue processers multithreaded in development.
...
This change drops the memory used for Python processes run by Zulip in
development from about 1GB to 300MB on my laptop.
On the front of safety, http://pika.readthedocs.org/en/latest/faq.html
explains "Pika does not have any notion of threading in the code. If
you want to use Pika with threading, make sure you have a Pika
connection per thread, created in that thread. It is not safe to share
one Pika connection across threads.". Since this code only connects
to rabbitmq inside the individual threads, I believe this should be
safe.
Progress towards #32 .
2016-03-20 18:04:24 -07:00
Eklavya Sharma
9e3c3e14f5
Partially apply Python 3 libmodernize.fixes.fix_dict_six.
...
Refer to #256
2016-03-19 15:52:58 -07:00
Tim Abbott
f9222de83e
Auto-load commonly used modules in manage.py shell.
...
This automatically loads settings, zerver.models.* and
zerver.lib.actions.* when you start `manage.py shell`, which should
save a bit of time basically every time someone uses it.
Fixes #275 .
2016-03-19 11:32:49 -07:00
Varshit
72033069ed
Extend lint-all to check for newlines at the end of files.
2016-03-17 23:03:56 -07:00
Tim Abbott
3a46bae542
Fix shell script list computation to exclude files not in git.
...
This fixes an issue where the next commit's no-newline-and-end-of-file
check was incorrectly firing on tools/phantomjs.
2016-03-17 23:03:56 -07:00
Eklavya Sharma
37f9520666
Make the remaining ambiguous divisions python 3 compatible.
...
Refer to #256
2016-03-12 10:53:51 -08:00
Eklavya Sharma
14130a84ca
Partially apply Python 3 transform libpasteurize.fixes.fix_newstyle
...
Refer to #256
2016-03-12 23:19:56 +05:30
Eklavya Sharma
3ab567db98
Add call to generate-fixtures in test-backend.
...
Add call to tools/generate-fixtures in tools/test-backend before
starting the tests. Previously, test-backend could fail if called
after tools/test-js-with-casper had failed.
Fixes #501 .
2016-03-12 09:24:32 -08:00
Eklavya Sharma
01bfa2d94d
Apply Python 3 futurize transform libmodernize.fixes.fix_unicode_type
...
Refer to #256
2016-03-10 22:04:15 -08:00
Eklavya Sharma
b9e792c4e6
Apply Python 3 futurize transform libmodernize.fixes.fix_xrange_six
...
Refer to #256
2016-03-10 22:03:58 -08:00
Eklavya Sharma
aa505b0d55
Apply Python 3 futurize transform libmodernize.fixes.fix_map
...
Refer to #256
2016-03-10 22:03:44 -08:00
Eklavya Sharma
7b8cb105bf
Apply Python 3 futurize transform libmodernize.fixes.fix_imports_six
...
Refer to #256
2016-03-10 22:03:30 -08:00
Eklavya Sharma
def027a1ec
Apply Python 3 futurize transform libmodernize.fixes.fix_filter
...
Refer to #256
2016-03-10 22:03:06 -08:00
Eklavya Sharma
d3b63f9a2d
Apply Python 3 futurize transform libmodernize.fixes.fix_file
...
Refer to #256
2016-03-10 22:02:34 -08:00
Eklavya Sharma
c59185e119
Apply Python 3 futurize transform libfuturize.fixes.fix_print_with_import
...
Refer #256
2016-03-10 22:02:17 -08:00
Eklavya Sharma
3e7827358e
Apply Python 3 futurize transform libfuturize.fixes.fix_next_call
2016-03-10 22:02:12 -08:00
Eklavya Sharma
e2d5ec1868
Apply Python 3 futurize transform lib2to3.fixes.fix_ws_comma
2016-03-10 22:02:04 -08:00
Eklavya Sharma
4fb549abe8
Apply Python 3 futurize transform lib2to3.fixes.fix_idioms
...
Refer to #256
2016-03-10 22:02:01 -08:00
Eklavya Sharma
f3d387e727
Apply Python 3 futurize transform lib2to3.fixes.fix_except
2016-03-10 22:01:50 -08:00
Tim Abbott
df4ab3c788
run_dev: Fix return for twisted finish function.
...
This was flagged by mypy; it's not clear this should be needed.
2016-02-03 19:29:07 -08:00
Tim Abbott
eee36618fe
run-dev: Fix overwritten manage_args variable with the wrong type.
...
manage_args is set to a list of arguments a few lines later in the
function, making this initialization as the empty string useless and
confusing.
Discovered using mypy.
2016-02-03 19:25:18 -08:00
Tim Abbott
aad3bff193
Harden style rule for % comprehensions and fix existing errors.
2016-02-02 23:08:19 -08:00
Tim Abbott
206dc3aafc
Add python 3 compatibility check for libmodernize.fixes.fix_dict_six.
...
It's not clear whether this will end up being net negative in value in
the long term since it's kinda hard to understand the output, but in
the short term it should prevent regressions.
2016-01-26 21:11:25 -08:00
Tim Abbott
757e89260e
Migrate use of StringIO to Python 2+3 compatible six.moves.cStringIO.
...
And add a check for additional usage of the original StringIO module.
2016-01-26 21:09:43 -08:00
Tim Abbott
1f44417fc1
Switch to using Python 3 style division everywhere.
...
Also add testing for this to our Python 3 compatibility test suite.
2016-01-26 21:09:43 -08:00
Tim Abbott
6528b18ad3
Switch all urllib/urlparse usage to six.moves.urllib.
...
This provides Python 2+3 compatibility for our use of urllib.
Also add a test to avoid future regressions.
2016-01-26 21:09:43 -08:00
Tim Abbott
700055c194
Apply modernize transform libmodernize.fixes.fix_file.
...
This replaces use of file() with open() which is python 3 compatible,
and also adds it to our python 3 support test suite.
2016-01-26 21:09:42 -08:00
Tim Abbott
a5d4d0aae0
test_backend: Add option to profile the backend test suite.
2016-01-26 20:41:01 -08:00
Tim Abbott
f9791558e9
test_runner: Support continuing running tests after a failure.
2016-01-26 20:41:01 -08:00
Tim Abbott
b43aadad8b
test-backend: Rewrite in python to support computing test coverage.
...
The code for doing test coverage is just a lot cleaner this way over
adding it to the shell script version.
Based on the basic test runner code here:
https://docs.djangoproject.com/en/1.9/topics/testing/advanced/
2016-01-26 20:41:01 -08:00
Tim Abbott
24fd3bbf55
travis: Test whether migrations are consistent with models.
...
This should automatically catch mistakes where someone updates the
database models but forgets to generate migrations afterwards.
2016-01-26 20:38:46 -08:00
Tim Abbott
c6d06b0c4e
Add zulip distribution tarballs to backups.
2016-01-23 11:44:15 -08:00
Tim Abbott
d3588cb7d0
api: Include get_subscribers endpoint in public release.
...
It's possible we should just eliminate this mechanism, but this fixes
a proximal problem where the multi-line get_subscribers endpoint
description was being handled wrong.
2016-01-23 11:38:42 -08:00
Vladislav Manchev
df4d1b3c14
Add linting code for detecting shebang bashisms.
...
This will prevent regressions in OpenBSD compatibility, since OpenBSD
doesn't support passing arguments in the #! line.
2016-01-21 22:33:55 -08:00
Vladislav Manchev
dfbea01c8f
Add support for running OpenBSD in development environment.
2016-01-21 22:33:55 -08:00
Tim Abbott
6943a142ea
Fix postgres errors in Travis CI again.
...
Travis CI's model of installing every version of postgres on the test
VM and then shutting all the versions other than the one requested
down seems to not work very well with doing apt upgrades. It seems
the best way to resolve this is to just uninstall the versions we
don't need.
2016-01-21 22:07:10 -08:00
Tim Abbott
26e9d55e16
deployments: Refactor locking libraries into zulip_tools.py.
...
The code in update-deployment and upgrade-zulip for managing the
deployment lock was nearly identical.
2016-01-11 21:36:42 -08:00
Tim Abbott
186f563176
Fix deployment locks being leaked when a deployment fails.
...
The point of the lock is to prevent two deployments happening at the
same time and racing with each other, not to prevent doing any future
deployments after an error happens (which is what the current
implementation does in practice).
Addresses part of #208 .
2016-01-11 21:36:41 -08:00
Tim Abbott
a98b0cf35d
travis: Workaround postgres 9.1 conflict issues on trusty.
...
We ran into a bug with the Travis CI infrastructure where it postgres
9.1 is installed on the system, and so when we'd do an apt upgrade
with a new version of 9.1, the 9.1 daemon would end up getting started
and conflict with the 9.3 daemon we were trying to run.
2016-01-09 16:59:43 -08:00
Tim Abbott
24ebc10ec8
Travis: Display all errors, not just first one, in py3k testing.
2016-01-09 15:43:26 -08:00
Josh Mandel
bdb9535251
Don't require link tags to close when checking templates.
2016-01-07 23:08:49 -08:00
Tim Abbott
c5f08022f9
tools/clean-repo: Don't print out the list of .pyc files deleted.
...
This was never useful output and was pretty spammy.
2015-12-25 16:23:57 -08:00