Sumana Harihareswara
3f90f9e29e
Move production installation requirements to separate page.
...
To begin the process of consolidating Zulip documentation on Read
the Docs, the requirements are now their own topic page, and
index.rst links to it.
Fixes : #669 .
2016-07-12 15:43:06 -07:00
Sumana Harihareswara
2ece2192d9
Fix misspelling in HTML CSS documentation.
2016-07-12 14:15:23 -04:00
Eklavya Sharma
51239f225b
Mention build name in docs.
...
Mention in docs that tools/run-mypy and tools/check-py3k are run
in the 'static-analysis' build.
2016-07-11 21:28:01 -07:00
Umair Khan
397da44744
Update documentaton to reflect Django-Pipeline==1.6.8.
2016-07-09 07:09:55 -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
Umair Khan
054d14bb96
Add documentation to announce default language setting.
2016-07-04 11:56:24 -07:00
Tim Abbott
fd7cb3fc2b
docs: Fix hardcoding of links to zulip.readthedocs.io.
...
This makes things work better if you're testing the documentation
locally.
2016-06-27 20:54:21 -07:00
Tim Abbott
31f7fb2fa0
docs: Fix new feature tutorial link to testing docs.
2016-06-27 20:52:20 -07:00
Tim Abbott
beb8b50623
Move provision.py under tools/.
2016-06-27 19:04:32 -07:00
Tim Abbott
879ca4b9ea
docs: Add documentation on HTML and CSS.
2016-06-27 12:38:53 -07:00
Tim Abbott
292556c846
docs: Expand RTD testing section.
2016-06-27 12:38:53 -07:00
Tim Abbott
f8c710b70e
Update documentation on development auto-reloading.
...
Now that queue workers auto-reload, we need to document that fact.
And we make a few tweaks to the relevant discussion, while we're at
it.
2016-06-26 20:20:13 -07:00
Tim Abbott
61d1de19cf
docs: Don't require typing module to be installed.
2016-06-26 10:10:59 -07:00
Tim Abbott
dc014b0866
docs: Add link to documentation building docs.
2016-06-26 10:04:07 -07:00
Tim Abbott
74c23d71e2
docs: Add details on viewing/editing these docs.
2016-06-26 10:04:06 -07:00
Tim Abbott
1838cd4d8f
docs: Split out version control guidelines.
2016-06-26 10:04:06 -07:00
Tim Abbott
96fef7a0a1
docs: Reorganize RTD table of contents.
2016-06-26 10:04:05 -07:00
Tim Abbott
9aea3cdc9b
docs: Add current Zulip release version to docs.
2016-06-26 10:03:56 -07:00
Tim Abbott
89b5eaaa7d
docs: Improve several headings.
2016-06-26 09:54:19 -07:00
Tim Abbott
149fd88733
docs: Add missing link in schema-migrations.md.
2016-06-26 09:54:19 -07:00
Tim Abbott
ea611c0dcd
docs: Add some full-text search documentation.
2016-06-26 09:32:54 -07:00
Vishnu Ks
420ee968f7
Renumber the casper tests to make space for realm-creation test.
...
And also fix the mysterious gaps at 6 and 8.
2016-06-24 17:47:56 -07:00
Tim Abbott
85798e2b2c
Dramatically expand directory structure docs.
2016-06-23 14:01:54 -07:00
Tim Abbott
c8a1c3a86b
docs: Reorder directory structure doc.
2016-06-23 13:58:41 -07:00
Tim Abbott
b0e1ae4245
docs: Make directory structure headings linkable.
2016-06-23 13:58:41 -07:00
Tim Abbott
5a1a540377
Expand directory structure details on scripts.
2016-06-23 13:58:41 -07:00
Tim Abbott
c668f1e299
roadmap: Add strikethrough for completed projects.
2016-06-21 17:30:33 -07:00
Tim Abbott
4958828747
Add changelog for Zulip 1.3.13 release.
2016-06-21 16:59:48 -07:00
Eklavya Sharma
be70907eaa
Remove references to requirements.txt.
2016-06-21 07:48:24 -07:00
Tim Abbott
7370fd69d7
Move doc building dependencies to requirements/docs.txt.
2016-06-20 16:05:42 -07:00
Rishi Gupta
ce5e7d3ba6
Make minor edits to new settings documentation.
2016-06-17 12:15:15 -07:00
Tim Abbott
b5e92f541a
Add new documentation on Zulip settings system.
...
Fixes : #962 .
2016-06-17 12:15:15 -07:00
Eklavya Sharma
14c4ff2d25
docs/code-style.md: Use ASCII spaces consistently.
...
At some places, '\xc2\xa0' was used instead of ' '. This characters looks
identical, but can hamper searches and lint checks.
2016-06-17 11:33:41 -07:00
Tim Abbott
07abfc189b
Update docs/README.md to reflect the current state of the world.
...
Fixes #1050 .
2016-06-17 11:30:22 -07:00
Eklavya Sharma
f18493f922
Add documentation about zerver/lib/str_utils.py.
2016-06-11 17:31:56 +05:30
Eklavya Sharma
85ef5900b4
docs/mypy.md: Add section on annotating strings.
2016-06-10 16:30:14 -07:00
Tim Abbott
c9ef726048
docs/mypy: Add note about Zulip's annotation goals.
2016-06-10 16:30:14 -07:00
Eklavya Sharma
a4c14cd448
Improve docs/mypy.md.
...
Add link to mypy cheat sheet.
Warn against modifying annotations to somehow make them pass on buggy code.
[Description expanded by tabbott]
2016-06-10 16:30:00 -07:00
Sumana Harihareswara
45b1893284
Convert architecture overview from rST to md for consistency.
...
Fixes : #668 .
2016-06-04 22:27:00 -07:00
Sumana Harihareswara
6f59683324
Fix and clarify architecture overview.
2016-06-04 22:27:00 -07:00
Umair Khan
7057b2ae37
Add documentation for json_error and JsonableError.
...
Add documentation on how to make the strings passing through
json_error and JsonableError translatable.
2016-06-04 18:48:32 -07:00
Sumana Harihareswara
8c2382deeb
De-duplicate three sections of architecture overview.
2016-06-03 12:56:31 -07:00
Sumana Harihareswara
4a10923bf1
Add architectural overview documentation.
...
Fixes : #453 .
2016-06-03 11:54:02 -07:00
Taranjeet
a45bde7822
Docs: Fix typos in docs.
2016-06-02 10:31:41 -07:00
Tim Abbott
c5b495b775
Update changelog with important changes since last release.
2016-05-31 11:39:47 -07:00
Tim Abbott
d056b5601b
docs: Add python-tyoing to RTD dependencies.
...
This should fix the RTD build having been broken since
d9c4be87d1
.
2016-05-31 11:19:49 -07:00
Sumana Harihareswara
337155f280
Remove rST files to replace with Markdown.
...
Currently (https://github.com/rtfd/recommonmark/issues/3 )
the recommonmark bridge (which allows Sphinx to read
Markdown) does not support tables, so the directory structure
doc is now a bulleted list instead of a set of tables.
2016-05-31 10:55:49 -07:00
Sumana Harihareswara
e0bc57ddb1
Rearrange docs table of contents for coherence.
...
The order and structure of the Read The Docs documentation
was fairly arbitrary; here's a suggestion for how to change
its information architecture so it's more useful to a new
contributor. This adds a short Zulip overview, and a table
of contents and code contribution intro for new contributors.
Fixes : #668 .
Signed-off-by: Sumana Harihareswara <sumanah@panix.com>
2016-05-31 09:07:09 -07:00
Sumana Harihareswara
3029b3681f
Rearrange sections of testing doc for coherence.
2016-05-31 09:05:38 -07:00
Sumana Harihareswara
f65778f1e2
Improve sub-headings in documentation.
...
Signed-off-by: Sumana Harihareswara <sumanah@panix.com>
2016-05-31 09:05:38 -07:00
Sumana Harihareswara
86f7695b8c
Fix style, formatting in Bugdown docs.
2016-05-31 08:56:58 -07:00
Sumana Harihareswara
ad644afa97
Improve code style guidelines.
2016-05-31 08:56:58 -07:00
Sumana Harihareswara
3631cf3078
Add links in front end build process doc.
...
Signed-off-by: Sumana Harihareswara <sumanah@panix.com>
2016-05-31 08:56:58 -07:00
Tim Abbott
3ed78eb746
docs/testing: Clean up discussion of rebuilding database.
2016-05-31 07:48:00 -07:00
Christie Koehler
e06492ec3a
Improve first-time contributor docs.
...
Fixes #747 . Fixes #748 .
This updates README.dev.md to include clear, step-by-step instructions
for setting up the Zulip dev environment Windows 10, OS X El Capitan,
Ubuntu 14.04 Trusty, and Ubuntu 16.04 Xenial. It is aimed at first-time
contributors.
I tested these instructions multiple times on each of the target
systems.
Also added is a "trobleshooting and common errors" section which
documents the most common errors contributors are likely to encounter
during setup and how to fix them.
Improvements based on feedback from @timabbott.
- Fixes whitespace issues so linter will pass.
- Updates memory requirement.
- Re-orders so operating systems are listed alphabetically.
- Updates headings to be clearer.
- Updates and adds ToC entries for clarity.
- Adds screen shot of Zulip dev environment running in browser.
- Adds details about using dev environment, including about logging.
- Misc other minor changes for clarity.
- Adds a stub for docs/logging.md
- Adds details about configuring Cygwin for native symlinks.
2016-05-31 07:47:45 -07:00
Tim Abbott
1b59b6826a
docs/code-style.rst: Update and clarify shebang rules.
2016-05-29 05:07:50 -07:00
Eklavya Sharma
149938d468
Change shebangs from python2.7 to python.
2016-05-29 05:03:08 -07:00
Vishnu Ks
dc060248b4
Add instruction to check screenshot of failed tests.
2016-05-28 23:27:24 +05:30
Vishnu Ks
31968f668c
Correct frontend_test script path.
2016-05-28 23:23:39 +05:30
Eklavya Sharma
d9c4be87d1
Make docs/conf.py pass mypy check.
2016-05-25 15:04:39 -07:00
Umair Khan
82b5d9304b
[third] Integrate i18next with Handlebars
2016-05-19 22:58:25 -07:00
Umair Khan
f9bbc5d6ff
Enable i18n support in URL configuration.
...
This supports i18n using all of the following:
- I18N urls
- Session
- Cookie
- HTTP header
2016-05-19 08:33:30 -07:00
Tim Abbott
b38913c8f9
Upgrade sphinx version used in ReadTheDocs.
...
According to https://github.com/spatialaudio/nbsphinx/issues/26 , this
should fix support for mixing rST and markdown in our docs.
Fixes #668 .
2016-05-14 14:27:21 -07:00
Tim Abbott
60722a8fce
Integration guide: Add a note about spelling integraiton names.
2016-05-11 21:19:15 -07:00
Tomasz Kolek
eeeb4d0c92
Add CircleCI integration.
...
Fixes : #617 .
2016-05-11 21:17:37 -07:00
Tim Abbott
92bec8cfea
Merge Zulip 1.3.12 security release.
2016-05-10 11:32:26 -07:00
Umair Khan
0d324925b5
Add documentation on translation tags.
...
[substantially modified by tabbott]
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
Preston Hansen
635828069f
Add feature to mark all in stream/topic as read with mouse.
...
Fixes #736 .
2016-05-08 09:02:46 -07:00
Tim Abbott
34fb276b7b
changelog: Add some items since the last release.
2016-05-07 20:34:14 -07:00
Tim Abbott
c5a44043a8
Cleanup changelog.md to be better documentation.
2016-05-07 20:34:06 -07:00
Tim Abbott
1c24cb32a5
Move changelog.md to docs/ and add to ReadTheDocs.
2016-05-07 20:26:44 -07:00
Tim Abbott
e5e133eccc
Update docs to reflect the elimination of /bin.
2016-05-07 19:37:06 -07:00
Tim Abbott
d20791eb6a
docs/new-feature-tutorial: Fix typos in templates path.
2016-05-07 17:37:01 -07:00
Tim Abbott
f06c8c7cc2
Update *.readthedocs.org => *.readthedocs.io.
...
ReadTheDocs has moved their hosting of user project websites to the
new readthedocs.io domain.
2016-04-29 16:00:08 -07:00
Tim Abbott
362a622f1f
Add documentation on translating Zulip.
2016-04-28 21:57:10 -07:00
Tim Abbott
27b8e8b294
Add the Zulip 2016 roadmap document.
2016-04-28 21:55:33 -07:00
Eklavya Sharma
b60141fd84
Add documentation on the using the mypy static type checker.
...
[with substantial tweaks by tabbott]
2016-04-28 12:29:45 -07:00
Eklavya Sharma
22d407fe0b
docs/testing.rst: Fix typo and name of a package.
...
* Remove duplicate words.
* Replace `futurize` by `future`.
2016-04-28 15:19:22 +05:30
Tim Abbott
abacd9b2da
Integration guide: Document need to edit urls.py.
2016-04-26 11:50:19 -07:00
Tim Abbott
672a431fba
Expand documentation on tools/check-py3.
2016-04-25 16:46:46 -07:00
Eklavya Sharma
ae46d425b6
Add info about tools/check-py3 in docs/testing.rst.
...
Fixes #701 .
2016-04-26 03:32:29 +05:30
Eklavya Sharma
101148c49e
Fix typo and formatting in docs.
2016-04-25 20:29:29 +05:30
Tim Abbott
74ed9fabd0
Integration guide: Expand instructions on screenshots.
2016-04-21 18:17:26 -07:00
Tomasz Kolek
82f1cdb085
Add send_webhook_fixture_message command.
...
This tool simplifies the process of producing nice screenshots for
documenting webhook integrations.
Fixes #658 .
2016-04-20 10:45:27 -07:00
Tim Abbott
1b988de30a
Integration guide: clean up description of plugin integrations.
2016-04-19 16:21:33 -07:00
Tim Abbott
92f9a789b8
integration guide: Improve introduction.
2016-04-19 16:21:33 -07:00
Sumana Harihareswara
4ce4f88a03
Fix formatting in directory-structure.rst.
2016-04-13 15:44:10 -07:00
Tim Abbott
be96cf809d
Move Zulip backend tests to zerver.tests.
2016-04-11 22:16:09 -07:00
Tim Abbott
5c810ad0bc
Add new markdown documentation to ReadTheDocs.
2016-04-01 14:57:30 -07:00
Tim Abbott
52764763c6
Add some docs on schema migrations.
2016-04-01 09:57:00 -07:00
Tim Abbott
37b79deb60
Expand documentation on frontend build process.
2016-04-01 09:56:59 -07:00
Tim Abbott
7a671c2652
Add documentation on the Zulip RabbitMQ queues.
2016-04-01 09:56:59 -07:00
Tim Abbott
96eb81e5d5
Add documentation of Zulip's markdown implementation.
2016-04-01 09:56:59 -07:00
Tim Abbott
342b4eb457
Add a detailed integration writing guide.
...
Fixes : #70 .
2016-04-01 09:56:59 -07:00
Tim Abbott
b8c7cfb77e
docs: Add Javascript manual testing section.
2016-04-01 09:34:45 -07:00
Ryan Moore
2fe0700f55
Update memcache -> remote cache in inline documentation.
2016-03-31 12:56:42 -07:00
Tim Abbott
02ccb68f7e
code style: Document auto-closing GitHub issues.
2016-03-19 10:17:25 -07:00
Tim Abbott
ecc66d6eec
code style: Improve the commit message style documentation.
2016-03-19 10:09:21 -07:00
Anindya Chakravarti
d72b8b83f7
Fixed a typo in documentation.
2016-03-17 22:53:42 -07:00
Tim Abbott
408ff14be8
Fix parsing html_unescape.py in py3k test.
...
This file was using print as a function but didn't import
print_function; as a result futurize threw an error every time it
parsed this file.
2016-01-09 15:43:30 -08:00
Allie Jones
11c69fb0b2
Add documentation on the front end build process and webpack.
2015-11-20 20:32:01 -08:00
Tim Abbott
d06cb5d55a
Expand documentation on writing and debugging Casper tests.
2015-11-11 21:36:00 -08:00
Tim Abbott
10657c1d53
Move node tests to node_tests/.
2015-10-28 10:11:47 -07:00
Tim Abbott
f1074aa491
Move frontend tests out of zerver/tests/.
...
This fixes an unfortunate bug where the backend tests in
zerver/tests.py were not being run automatically, and also makes these
a bit easier to find.
2015-10-28 10:11:47 -07:00
Steven Oud
d5435fad1d
Consistently use /usr/bin/env python2.7 in shebangs and commands.
2015-10-21 22:58:21 +00:00
Allie Jones
99a2ba38b1
Expand new feature tutorial.
2015-10-15 09:12:22 -04:00
Tim Abbott
5bf6f05f60
Add readthedocs requirements.txt.
2015-09-25 10:53:47 -07:00
Tim Abbott
b21a105a99
Reorganize and delete obsolete content from testing.rst.
...
(imported from commit 1d62b50c0b01d5386c8a6ffbde745abb6d79ad6e)
2015-09-25 03:40:31 -07:00
Tim Abbott
827e7ad19c
docs: Cleanup new feature tutorial and note unfinished.
...
(imported from commit 668eabb53f746afe7455b0f5fd1e8f5741894c5e)
2015-09-22 22:38:55 -07:00
Tim Abbott
a3c122eb41
Remove largely obsolete documentation pages.
...
(imported from commit eb02c24dd25a12a5676b5e52c914993650f73aa6)
2015-09-22 22:37:45 -07:00
Tim Abbott
1be909a450
docs: Content editing for directory-structure.rst.
...
(imported from commit aa331a561f1e905c9453bd0590eb1147c19f2be4)
2015-09-22 22:17:56 -07:00
Tim Abbott
3c1c14a7cc
docs: Fixed a bunch of factual issues in coding style guidelines.
...
(imported from commit 6320d45ad064fcc5b3e8f01247b18af1a85bf91f)
2015-09-22 22:13:28 -07:00
Tim Abbott
b6e2fd6e83
Rename build-voyager-tarball to build-release-tarball and document.
...
(imported from commit 06f102f4f4c5caf187f4930fadff06147f095401)
2015-09-22 21:22:11 -07:00
Yoyo Zhou
ab5e04ef36
Add backend tests location
...
(imported from commit 2f2dcd1773be746bee5d9003ca99020230acae04)
2015-08-22 13:08:11 -07:00
Yoyo Zhou
e130884c6a
code-style: Simplify rST syntax.
...
(imported from commit c2bd43f97969b7be61476435ac00ae03fd05ec4d)
2015-08-22 13:08:07 -07:00
David Roe
c17e50e0c4
Add new feature tutorial.
...
(imported from commit 1577c2567232aba1a1f1c6d1df83370acf54af55)
2015-08-22 12:56:57 -07:00
David Roe
a9cf471239
Remove documentation on ALLOW_REGISTER since it is out of date.
...
(imported from commit 75938998507f2b903f49bd9c7c4ecc0eadb3259d)
2015-08-22 12:55:18 -07:00
David Roe
33b7b2d021
Add welcome.rst with info for new developers.
...
(imported from commit 14e27efc47cfb0802f16ec5d2d6c5eadeba7a2c2)
2015-08-22 12:54:20 -07:00
David Roe
1a3bc517d9
Improve docs/README.md
...
(imported from commit 78193958bdb5f92ae5d8706340a739dae0da5367)
2015-08-22 12:53:54 -07:00
David Roe
3f7cb34b00
enterprise => voyager
...
(imported from commit 04be792bb480d5e5db1c91d296d1000cf1682571)
2015-08-21 10:33:35 -07:00
David Roe
f79adf830f
deployed => production
...
(imported from commit 2d7b0a7a73b0c84b32634a88af1e0d666139d4ff)
2015-08-21 10:33:35 -07:00
Yoyo Zhou
f78abd2dcc
Update schema changes content and formatting.
...
(imported from commit 46f3d43bfe62883d490ea870b2d29f7a45397c08)
2015-08-20 14:24:59 -07:00
Yoyo Zhou
4a6e132a44
Add "Schema changes", rST generated via pandoc -r mediawiki -w rst
...
(imported from commit f3c5621a8b612217986c879d3d15b85c9098ccca)
2015-08-20 14:24:59 -07:00
Yoyo Zhou
1e3249c94e
Add note that provision.py sets up postgres test db for you
...
(imported from commit 87d31b04db15b8ea994f40362ab910ccc028c91a)
2015-08-20 14:21:55 -07:00
Yoyo Zhou
a1237aa2b2
Update testing notes formatting and content.
...
(imported from commit 44cc34888f14d101c29bcd1c8d63cc082b4ffe09)
2015-08-20 14:21:55 -07:00
Yoyo Zhou
bb45f8d8e3
Copy "Testing the app" from the wiki, via pandoc -r mediawiki -o rst
...
(imported from commit 7150179ff1008ffa6849b983fb579a36fffc9c06)
2015-08-20 14:21:55 -07:00
Yoyo Zhou
6e55b4df8a
Update directory-structure.rst content to fix internal references
...
- Delete references to zilencer
- Replace "local server" references
- Add directories for message views, frontend templates/tests, and docs
(imported from commit 7295835434c17609595399e3aec7f9d565fd6b3d)
2015-08-19 11:52:49 -07:00
Yoyo Zhou
1629e77174
Directory structure generated from pandoc, with formatting fixes
...
(imported from commit d54bb062b641bac0520494f0a2cb151d69018d61)
2015-08-19 11:52:49 -07:00
Yoyo Zhou
127cdf63c6
Add CSS style override for RTD to make tables use word wrapping
...
(imported from commit 29007c052dd7048eaf86388a6a9715fc13f102b5)
2015-08-19 11:52:49 -07:00
Yoyo Zhou
ef50e74873
Fix up rST formatting in code-style.rst.
...
- Make all code blocks look like code blocks.
- Eliminate nested inline formatting (rST doesn't support it:
http://docutils.sourceforge.net/FAQ.html#is-nested-inline-markup-possible ).
- Punctuation nits.
(imported from commit cd0d780d843b72065678e0f032a2a47d44836adc)
2015-08-18 20:17:47 -07:00
Yoyo Zhou
7b9e027e77
Expand the Lint section to replace the Python and JS subsections; remove obsolete comment from Secrets.
...
(imported from commit a6945617913700d4e18c398a68022ed90f56039e)
2015-08-18 20:17:47 -07:00
Yoyo Zhou
8461048a11
Add 'Code style', generated via pandoc -r mediawiki -w rst and html_unescape.py
...
With a basic README.md
(imported from commit 91728b2c591bc88b7bee520669cb0b3f53426cd8)
2015-08-18 17:34:02 -07:00
Yoyo Zhou
c25d9679a5
Utility for unescaping HTML entities leftover from MediaWiki->rST conversion
...
(imported from commit 2f2507f299c3d09c67bfd26d6c11fab47431d935)
2015-08-18 17:31:33 -07:00
Yoyo Zhou
16e462d9d2
Use sphinx_rtd_theme when not on ReadTheDocs
...
(imported from commit ba97a475f85251f694e4c88d1dd25eaf69078fc4)
2015-08-18 17:31:32 -07:00
Yoyo Zhou
ac63d942ce
Initial sphinx setup from sphinx-quickstart
...
(imported from commit b9fc7a8f2f9352129c104f5dc9305203f2efc63d)
2015-08-18 17:31:32 -07:00