0.14.0-rc1 (2019-11-29)
Features
- The project now uses Typescript for its source code. (#808)
- Add support for PostgreSQL (#815)
- Add migration script for migrating NeDB databases to PostgreSQL. (#816)
- Add config option
excludedUsers
to exclude users from bridging by regex. (#820) - Support room upgrades on PostgreSQL. (#824)
- Delay ident responses until pending clients have connected. Thanks to @heftig for the initial PR. (#825)
- Allow admins to specify a bind port and/or hostname in the config. (#857)
- When !storepass is called, reconnect the user to ensure the password is set. (#864)
- Track last seen times of users between restarts (#876)
- Add dry run mode to the debugApi /reapUsers command. (#879)
- The bridge now supports error tracing via sentry (#897)
Bugfixes
- Inviting the bridge bot to an existing bridged room will no longer cause the room to be bridged as an admin room. Invites must also use
is_direct
. (#846) - Fix counter for leaving users. (#855)
- Replace calls to
/state
with more efficient calls, where possible. (#865) - Topic changes from Matrix no longer cause a ghost user to join the room. (#866)
- Ensure bot clients stay connected after being disconnected. (#867)
- Fix issue where the internal ipv6 counter would not be correctly set (#873)
- Fix bug where users could not store or remove their password (#874)
- Fix a bug where users could not generate registration files (#875)
- Fix uploaded long message URL's not sent to IRC side. (#889)
- Debug API is now correctly enabled on startup (#893)
- Quit the app with exitcode 1 if it fails to start (#894)
- The !storepass command now reconnects users with their new password. (#900)
Deprecations and Removals
- Statsd is deprecated in this release, and will be removed in the next. Users are encouraged to use prometheus instead, which has richer logging capabilites. (#837)
- Remove warnings/hacks around
config.appservice
. Users should have upgraded to the new format by now. (#849)
Internal Changes
- Refactor Datastore for Typescript (#809)
- Add linting support for Typescript files. (#810)
- Fatal exceptions are now logged to stdout in addition to logs. (#812)
- Refactor Datastore code to be more generic. (#814)
- Move schema.yml from /lib/config to / (#819)
- Use Towncrier for changelog management (#821)
- Internal conversions of model classes to Typescript (#822)
- Convert ClientPool and associated dependencies to Typescript (#826)
- Convert logging to Typescript (#827)
- Convert DebugApi to Typescript (#829)
- Typescriptify QuitDebouncer (#830)
- Typescriptify BridgedClient and dependencies (#831)
- Convert generator and formatter functions to Typescript (#832)
- Typescriptify IrcEventBroker (#833)
- Use seperate DBs for each integration test. (#834)
- Typescriptify IrcBridge (#836)
- Typescriptify irc syncer classes (#839)
- Do not call keepalive() callbacks if the user doesn't need to be kept alive. (#844)
- Typescriptify matrix handler class (#845)
- Remove
crc
andprom-client
packages. (#846) - Swap to using promises over timers for queuing messages on IRC connections. (#848)
- Typescriptify irc handler class (#850)
- Updates to Dockerfile to add multiple stages and support Typescript (#853)
- Rewrite provisioner/* in Typescript (#861)
- Refactor bot command handling into own class. (#863)
- Move some IRC specific functions from IrcBridge to ClientPool (#877)
- Use the DB to prefill some membership caches, reducing the number of HTTP calls made and speeding up bridge startup. (#881)
- Room directory visibility state for bridged rooms is now cached in the database (#882)
- Gracefully close irc connections on SIGTERM (#895)
- Log when a newly discovered irc user's profile is updated. (#896)