Commit Graph

18800 Commits

Author SHA1 Message Date
Vishnu Ks 9b7585a436 bots: Make welcome-bot cross realm. 2017-06-25 11:23:45 -04:00
Vishnu Ks 50008fe309 actions.py: Create internal_send_private_message function. 2017-06-25 11:23:45 -04:00
Sampriti Panda 7ac90ad925 casper: Fix flake in drafts tests.
On some developer machines, casper was having trouble clicking on
a hidden button. Added a step to make sure the button was visible
before being clicked on.

Also removed an unnecessary log line.
2017-06-25 11:21:35 -04:00
James Rowan 7ccdc319c7 help: Fix typos in the guide for new organizations. 2017-06-25 11:20:03 -04:00
Greg Price 4f7c0327e5 version: Belatedly bump PROVISION_VERSION for the recent moto upgrade.
This ensures that everyone runs provision to pick up the change from
  8ff2e5a22 requirements: Upgrade moto to latest version.
Otherwise, backend tests fail (compounded by the error being made
quite mysterious by the parallelism framework, when running with
parallelism as we do by default) if running on code after that
change while last having provisioned before that change.
2017-06-23 17:34:39 -07:00
Harshit Bansal df3edbaf79 travis: Fix the order of running the test suites in Travis CI.
This commit fixes the order in which we run the test suites in Travis
CI. Most of the PRs include changes only to backend/frontend and it is
fairly rare for them to break production test suite. Since travis runs
atmost four jobs at a time, most of the time developers need to wait for
the production suite to get completed so that the backend test suite can
start which has a fairly large chances of being broken. Now, we run the
production test suite in last.
2017-06-23 16:15:01 -07:00
Joshua Pan a63fd95b6a test-js-with-node: Add check for fully covered files that are not enforced. 2017-06-23 16:05:16 -04:00
Joshua Pan c625a80b90 test-js-with-node: Extract check_line_coverage function. 2017-06-23 16:05:16 -04:00
Joshua Pan 3557c47d76 node tests: Enforce 100% node coverage in user_events.js. 2017-06-23 16:05:16 -04:00
Aditya Bansal eb39e82629 Update enforce_fully_covered list with pm_list.js. 2017-06-23 11:13:47 -04:00
Aditya Bansal 6b911959d5 pm_lists.js: Reach 100% node test coverage. 2017-06-23 09:40:00 -04:00
Umair Khan a66b7b7083 Remove Django Guardian dependency.
Guardian adds functionality on top of Django auth system to set
per object permissions. Its problem is that it is has poor performance.
So we decided to remove it in release 1.4.0, but we still kept the
option to revert back to an older version which used Guardian.
See commit 49799440a4 for more details.

This commit is the final piece in the string of commits which move
us towards completely removing guardian from our codebase. The way
we do it as follows:

If you are upgrading from a version <= 1.3.10, you first need to
upgrade to 1.4.x (we recommend 1.4.2). The reason is that we
deprecated Guardian in this version. Once you have upgraded to
1.4.x we can be sure that your Zulip installation doesn't depend
on Guardian and all the data has been successfully migrated away from
Guardian. The second step is to upgrade to latest release which will
not include any reference to Guardian in the codebase. After this
commit migrating directly to the latest release will not work because
in that case Guardian data will not migrate.

The backward incompatible change that this introduces is that
we have squashed all the migrations till version 1.4.0. This was
necessary to remove Guardian because it was needed by the reverse
migration. These migrations were from 0001 to 0028.

Fixes #5420
2017-06-23 08:40:57 -04:00
Umair Khan a21f2d7715 migrations: Transition to new squashed migration. 2017-06-23 08:40:57 -04:00
Umair Khan cec78e23bc migrations: Remove squashed migration files. 2017-06-23 08:40:57 -04:00
Umair Khan 6fbddf578a migrations: Squash migrations from 0001 to 0028. 2017-06-23 08:40:57 -04:00
Umair Khan 908f099bb0 unpack-zulip: Do 2-step upgrade for version <= 1.3.10.
If the current version is less than or equal to 1.3.10, first
recommend an upgrade to the version 1.4.3 and then to the final
version.
2017-06-23 08:40:57 -04:00
Cory Lynch 090d7487cf search_suggestion: Use person matching function from people.js.
Instead of having a custom (duplicate) matching function in
search suggestion, it was refactored to use the function in
people.js. This also gets the diacritic-ignoring feature
of the function in people.js.

Fixes #5315.
2017-06-23 08:29:20 -04:00
Cory Lynch 46d224f021 people.js: Refactor to split out 'person_matches_query' function. 2017-06-23 08:29:20 -04:00
Aditya Bansal 18eeb962fe setup-static-analysis: Add wrapper to retry dependancy installation. 2017-06-23 08:23:45 -04:00
Greg Price 5f74dc86a9 models: Clarify a bit the comment explaining UserMessage. 2017-06-22 17:10:42 -07:00
Greg Price 4a652ded0b models: Remove a scary but obsolete comment.
This field was apparently never used, perhaps because we
reread this comment and anticipated how much future pain
it was warning us to avoid. :)  See commit 2de31ee28,
which deleted it.
2017-06-22 17:10:42 -07:00
Greg Price c9e35c459a landing: Write up why open source projects should use Zulip
This isn't very slick, but it should get the main points down,
and it's past time we got something like this up.  Definitely
needs in the future another pass at the text, and also some images
(screenshots, etc.) and styling.
2017-06-22 16:26:50 -07:00
Aditya Bansal 35e0208463 travis: Start using emoji cache cleanup tooling. 2017-06-22 19:17:12 -04:00
Aditya Bansal a20249b126 tooling: Add tool to clear unused emoji cache.
In this commit, we are adding a new tool which can be used to
clear out the emoji cache. Cache cleanup is a good thing to in
general and as well helps keep travis cache small (meaning faster
builds).

Credits to @HarshitOnGitHub as well for suggesting the use of
emoji symlink.
2017-06-22 19:17:12 -04:00
Harshit Bansal 0b03fd97a2 webpack: Don't include katex bundle in base.html.
Since we use katex only in the main webapp, we don't need it in things
like landing page etc, so it is better to move it to index.html.
2017-06-22 19:06:32 -04:00
Harshit Bansal 99b12ed0ca webpack: Use `common.js` to inject webpack dependencies in dev. 2017-06-22 19:06:32 -04:00
Harshit Bansal c0e4f24a25 webpack: Migrate `common.js` bundle to webpack. 2017-06-22 19:06:32 -04:00
Harshit Bansal 6615f2f2e8 common.js: Migrate `common.js` module to use IIFE module style.
This module was exposing its functions as globals. This PR fixes
it use the IIFE module style that we use in our other modules.
2017-06-22 19:06:32 -04:00
digi0ps f228700ef2 webpack: Migrate translations.js to use ES2015 syntax. 2017-06-22 16:43:33 -04:00
Vishnu Ks 61744a7a2a forms.py: Replace hardcoded UserProfile.MAX_NAME_LENGTH in RegistrationForm. 2017-06-22 12:45:46 -07:00
Shane Kearns 790c2929f5 integrations/perforce: Document new config variables. 2017-06-22 14:27:13 -04:00
Shane Kearns 954436540f integrations/perforce: Skip messages for missing streams.
For a large perforce server with many users, this allows projects
to opt-in to zulip notifications by creating the stream for the
branch to be monitored.

Commits to paths for which a stream mapping yields a result,
but no stream exists in Zulip, are simply dropped silently.

This behaviour is opt-in, by setting the configuration key
ZULIP_IGNORE_MISSING_STREAM = True
in the zulip_perforce_config.py file.
2017-06-22 14:27:13 -04:00
Shane Kearns 6d467b4fff integrations/perforce: Display changelist ID as a p4web link.
The general regex-based linkify in zulip does not allow '@' as the
prefix. In any case we know here that it is definitely a changelist
number, which is better.

Adding P4_WEB="https://p4web.example.com" to the config will enable
this behaviour. If P4_WEB is absent from the config, or has the
value None, no link is inserted.
2017-06-22 14:27:13 -04:00
Shane Kearns dd0eca3e58 integrations/perforce: Fix formatting of multiple paragraphs.
This fixes multiple paragraphs in a commit message escaping
from the block quote by using triple-backquote quoting instead
of '>' which only applies to one paragraph.
2017-06-22 14:27:13 -04:00
Vaida Plankyte 1fb8eb823a test_emails.py: Add referrer_realm_name to test values. 2017-06-22 14:19:33 -04:00
Vaida Plankyte 7577a80fd9 settings.py: Change jinja2 blocks to be stripped of whitespace. 2017-06-22 14:19:33 -04:00
Harshit Bansal 0994726035 composebox_typeahead: Fix the behavior on inserting an emoji on new-line.
Autocompleting an emoji on a line was adding an extra space.

Fixes: #5516.
2017-06-22 14:16:44 -04:00
Harshit Bansal 4912acf409 composebox_typeahead: Fix the autcomplete behavior while editing message.
On editing a multi-line message inserting an emoji or stream name,
the autocomplete was incorrectly sending the cursor to the the end
of the message.

Fixes: #5515.
2017-06-22 14:16:44 -04:00
Rohitt Vashishtha 180c99cb63 bots: Add tests for github_detail bot. 2017-06-22 11:25:31 -04:00
Rohitt Vashishtha ec4276cc6c bots: Fix github details bot. 2017-06-22 11:25:31 -04:00
Rohitt Vashishtha 686acbcd3b bots: Move github issue bot to api/bots. 2017-06-22 11:25:31 -04:00
Zac Pullar-Strecker f41718ea95 bots: Add GitHub issue and pr bot 2017-06-22 11:25:31 -04:00
Abhijeet Kaur 534aa0b105 bots: Add a widget file to directly create bot from integration pages.
Add a widget file to create and subscribe bot to the stream user wishes
the incoming webhook services to send messages.
2017-06-22 11:07:30 -04:00
Vaida Plankyte c52e964db3 frontend: Toggle aria-hidden for overlay container visibility. 2017-06-22 10:57:37 -04:00
vaibhav 9904edcd14 zulip-bot-server: Add test suite for zulip bot server.
Fixes: #5358.
2017-06-22 10:37:05 -04:00
vaibhav 5f53497ccd zulip-bot-server: Rename and move source file to api/zulip directory and
add support for running the server from any place.
2017-06-22 10:37:05 -04:00
vaibhav 7fbf517c9c zulip-bot-server: Add optparse for parsing the flaskbotrc file path and
commandline arguments.
2017-06-22 10:37:05 -04:00
vaibhav 26f1799ea4 zulip-bot-server: Add error handling and informative error messages. 2017-06-22 10:37:05 -04:00
vaibhav f25cf988a3 docs: Add flask server documentation.
Flask server is a simple python server which can be used to interact with bots
through outgoing webhook services.
2017-06-22 09:48:09 -04:00
sinwar 0e24930770 provision: Avoid spending ~3s on apt operations in no-op provision.
Fixes #5186
2017-06-22 09:37:40 -04:00