Commit graph

2281 commits

Author SHA1 Message Date
Robert Imschweiler 72ef52d12e integrations: Enhanced matrix bridge. 2022-08-18 14:21:17 -07:00
rht b290717bb2 Matrix bridge: Print reminder to subscribe the bots on startup. 2022-07-27 16:23:49 -07:00
rht 31365a8aac bridge_with_matrix: Bump matrix-client 0.2.0 -> 0.4.0. 2022-05-24 14:49:04 -07:00
Anders Kaseorg d26416a1e7 Release version 0.8.2.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2022-03-15 17:44:12 -07:00
Eeshan Garg e6dff1b5b6 zulip: Fix deprecation warnings for SafeConfigParser and readfp.
SafeConfigParser has been renamed to ConfigParser and the method
SafeConfigParser.readfp() is now named ConfigParser.read_file().
2022-02-28 11:10:53 -08:00
Eeshan Garg 7c3967f777 zulip: Reraise exceptions in do_api_query.
There are cases where the call to an endpoint may result in an
exception the traceback for which is converted into JSON and
returned to the caller. In the case of such an unsuccessful
response, we should just reraise the exception instead of parsing
the response as though it was successful.
2022-02-28 11:10:53 -08:00
Anders Kaseorg 05d591a906 Remove legacy distutils support.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2022-02-28 10:35:58 -08:00
neiljp (Neil Pilgrim) 095d5d8f4e api: Fix missing parenthesis in comment for ModifiableMessageFlag. 2022-02-23 16:50:03 -08:00
neiljp (Neil Pilgrim) ea89e95857 api: Add Literal types for various important message flags.
With some copy-editing by tabbott.
2022-02-23 10:34:12 -08:00
Anders Kaseorg 113f9cb885 converter: Reformat with Black 22.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2022-02-09 18:51:30 -08:00
Anders Kaseorg 68128640bf zulip: Fix principals default for remove_subscriptions.
The documented API for DELETE /api/v1/users/me/subscriptions is that
principals should be omitted to remove a subscription for the calling
user.  A call with principals=[] should have a different meaning, but
a server bug currently conflates this with a call omitting principals.
Avoid relying on this bug.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2022-01-18 17:01:18 -08:00
Eeshan Garg 70b86614bd tools/provision: Bump required pip version from >=9.0 to >=10.
pip 10 was the first release to support PEP 518. Using pip<10
can lead to errors when installing dependencies.

Thanks to @andersk for suggesting this fix!
2022-01-06 01:54:47 +05:30
Eeshan Garg 74d716289b tools: Delete the release-packages script.
This script has been outdated for a long time now and has been
obsoleted by some recent changes in how packages should be built
and distributed. In general, the release process is now too
complicated to automate, so we are better off just making the
release manually.
2022-01-05 08:11:58 +05:30
neiljp (Neil Pilgrim) e0f3bd4143 bots: Migrate source file for zulip-bot-shell to similar name. 2021-11-21 21:06:40 -08:00
neiljp (Neil Pilgrim) cca1b7d679 mypy: Add types to terminal.py. 2021-11-21 21:06:40 -08:00
neiljp (Neil Pilgrim) 4982adcb17 bots: Migrate script name from zulip-terminal to zulip-bot-shell.
This change is intended to reduce confusion between zulip-bot-shell
(test bots interactively without a server) and the zulip/zulip-terminal
project and its associated command (zulip-term).
2021-11-19 11:48:37 -08:00
rht 56f5ee3d70 Matrix bridge: Say that the user may have to wait 1 minute. 2021-11-08 21:01:09 -08:00
rht c41ead698f Matrix bridge: Rename username to mxid.
The username doesn't include the Matrix homeserver domain name, while
the mxid does. Since we change the usage of the old "username" to
include the domain, it is incorrect to remain saying it as "username."
2021-11-08 21:01:09 -08:00
rht 59fd4f070a Matrix bridge: Remove hardcoded matrix.org from username.
This allows people to mirror from self-hosted Matrix instances.
2021-11-08 21:01:09 -08:00
Eeshan Garg 76b8aacf5c zulip_bots: Remove include_package_data=True argument from setup().
According to the `setuptools` docs, once `include_package_data=True`
is passed to `setup()`, it will only include package data specified
in `MANIFEST.in`, and will ignore the `package_data` argument passed
to `setup()`. Thus, the `py.typed` file was not included in our
latest PyPI release 0.8.1.

A quick way to fix this is to remove the `include_package_data=True`
argument and to let our explicit `package_data` argument values
govern what data is included in the release.

See https://github.com/pypa/setuptools/issues/1461 for background.
2021-10-27 11:15:01 -07:00
Eeshan Garg bdc4901f07 pypi: Include py.typed in MANIFEST.in.
According to the `setuptools` docs, once `include_package_data=True`
is passed to `setup()`, it will only include package data specified
in `MANIFEST.in`, and will ignore the `package_data` argument passed
to `setup()`. Therefore, `py.typed` was not included in our latest
PyPI release 0.8.1.

Since we specify all of our package data in the `MANIFEST.in` file
already, it makes more sense to include mention `py.typed` there so
that it is included in the expected fashion.

See https://github.com/pypa/setuptools/issues/1461 for background.

Fixes #732.
2021-10-27 11:14:48 -07:00
rht 58e51c7ae5 Slack bridge: Bump slack-sdk to 3.11.2.
We also upgrade the RTM client API from v1 to v2. This is so that we no
longer require aiohttp. If we use v1, it would still require aiohttp.
2021-10-19 16:26:40 -07:00
Eeshan Garg fec8cc50c4 pypi: Release version 0.8.1. 2021-10-19 18:03:52 -04:00
PIG208 c59b143d96 api: Make update_user_by_id compatible.
As part of supporting the change in zulip/zulip#18409, we add a
conditional to send the old/buggy format only to servers with feature
levels indicating they don't support the modern version.
2021-10-17 21:41:28 -07:00
Anders Kaseorg c6b6a82d90 zulip-ci: Remove /__w permission twiddling.
See https://github.com/zulip/zulip/pull/19968.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-10-14 14:06:36 -07:00
Anders Kaseorg 4787834d75 bridge_with_matrix: Fix test.
It was broken by commit e876a0541e
(#701).

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-10-14 13:56:37 -07:00
rht e876a0541e
Matrix bridge: Fix username typo.
The sample username didn't quite match the format of actual Matrix usernames.
2021-10-14 12:26:47 -07:00
PIG208 a06dd4cadf CI: Add test suites from zulip server.
Part of #683.
2021-10-13 09:26:56 -07:00
PIG208 d0edb0952e api: Replace function signatures for legacy zulip server.
To make sure that the API bindings is backward compatible with
older versions of zulip server that uses functions with different
signatures, we use a hack to replace the Client class with a
legacy-compatible version of it.
2021-10-13 09:26:56 -07:00
PIG208 05b9850ba3 api: Fetch server_settings when initializing Client.
We store the information about the version of the server and the feature
level for transparent compatibility handling.
2021-10-13 09:26:56 -07:00
rht 4e5e7b3d0f Slack bridge: Clarify config placeholder content. 2021-10-07 14:10:40 -07:00
rht 1ca696e75b Slack bridge: Explicitly require aiohttp.
It is required by the Slack library, but strangely not installed. So we
explicitly specify it.
2021-09-17 17:04:10 -07:00
Anders Kaseorg bdc139e9ed zulip_git_config: Add old default branch name for compatibility.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-08-31 15:04:35 -07:00
Anders Kaseorg 5da0857d51 zephyr_mirror_backend: Add missing parens for calling lower().
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-08-28 08:32:07 -07:00
Anders Kaseorg ffb8a38f26 test_default_arguments: Adjust for Python 3.10.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-08-26 16:54:59 -07:00
Anders Kaseorg 34f5c4ef02 git: Fix git_repository_name.
Without universal_newlines=True or text=True, subprocess.check_output
returns bytes, not str, so it makes no sense to compare its return to
"true".  But upstream Git’s behavior only depends on the filename, not
whether the repository is bare; emulate this more closely.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-08-24 21:01:05 -07:00
Anders Kaseorg d32d442c44 Upgrade mypy to 0.910.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-08-24 20:19:05 -07:00
Anders Kaseorg 626359596e Replace typing.Text with str.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-08-24 20:07:35 -07:00
Anders Kaseorg 189cf48573 chessbot: Upgrade python-chess to chess.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-08-24 19:01:58 -07:00
Anders Kaseorg 1e6513136a tests: Set encoding for mock HTTP responses.
Fixes warnings like ‘UserWarning: Trying to detect encoding from a
tiny portion of (2) byte(s).’

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-08-24 18:03:52 -07:00
Anders Kaseorg e8bb65b188 tests: Replace deprecated assertRaisesRegexp with assertRaisesRegex.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-08-24 17:20:53 -07:00
Anders Kaseorg 564fc0e527 Replace the custom test runners with pytest.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-08-24 17:07:00 -07:00
Anders Kaseorg cb00a29311 test_matrix: Run Python subprocess via sys.executable.
This works better with pytest on Windows.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-08-24 16:51:23 -07:00
Anders Kaseorg b02b84204a merels: Add missing __init__.py, and really fix the tests.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-08-24 16:05:34 -07:00
Anders Kaseorg 147e9f6b81 test-bots: Remove merels exclusion.
This test was fixed in commit ab97b37ce1
(#448).

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-08-24 14:22:32 -07:00
Anders Kaseorg 53e59c8c09 Rename default branch to ‘main’
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-08-24 12:50:52 -07:00
PIG208 285a946a1f bot_server: Add support for running botserver from bots registry. 2021-07-29 11:08:33 -07:00
PIG208 745f2cd173 zulip_bots: Add a boilerplate bot for external bots.
Add packaged_helloworld as an example of a PyPI package setup for
an external zulip bot that can be installed via pip and lanuched
without the need to include it in the zulip_bots/bots directory.
2021-07-29 11:08:33 -07:00
PIG208 66434d07cf bots: Indicate source of bot (from source/module/registry) upon startup.
Amend tests to include new parameter.
2021-07-29 11:08:33 -07:00
PIG208 4bc0c607c1 bots: Find external packaged bots via 'zulip_bots.registry' entry_point.
Now we will be able to execute `zulip-run-bot` with the `-r` argument
to search for and run bots from the `zulip_bots.registry` entry_point.

Each entry point should have the name correspond to the bot name,
and have the value be the bot module. E.g, an Python package for a
bot called "packaged_bot" should have an `entry_points` setup like
the following:

setup(
    ...
    entry_points={
        "zulip_bot.registry":[
            "packaged_bot=packaged_bot.packaged_bot"
        ]
    }
    ...
)

whose file structure may look like this:

packaged_bot/
├───packaged_bot/
|   ├───packaged_bot.py  # The bot module
|   ├───test_packaged_bot.py
|   ├───packaged_bot.conf
|   └───doc.md
└───setup.py  # Register the entry points here

Add test case.
2021-07-29 11:08:31 -07:00