Go to file
Alex Vandiver 52b8a84219 models: Drop unique index on user/message/emoji_name.
c7d0192755 added the unique constraint on
`user_profile_id,message_id,reaction_type,emoji_code`, but left the
existing constraint on `user_profile_id,message_id,emoji_name`.  As
explained in the comment added in 3cd543ee98, `emoji_name` cannot be
trusted to be unique, as it is possible to have an Unicode emoji
reaction and a custom emoji with the same name on a message.

Remove the overly-constraining unique index, now that c7d0192755 has
provided the correct one.
2023-02-26 17:10:01 -08:00
.github webpack: Move webpack configuration to web. 2023-02-24 06:35:58 -08:00
.tx provision: Replace transifex-client with new transifex-cli. 2022-12-13 12:34:08 -08:00
.vscode vscode: Recommend remote development extension. 2021-11-03 16:03:46 -07:00
analytics private-messages: Update translated backend strings use "direct message". 2023-02-24 11:47:26 -08:00
api_docs user groups: Make name and description optional in group update. 2023-02-26 16:22:24 -08:00
confirmation registration: Track create organization page in GA. 2023-02-05 10:24:32 -08:00
corporate stripe: Change realm.plan_type when upgrading a realm to Plus plan. 2023-02-08 10:28:13 -08:00
docs docs: Add a link to installer flag docs from backup instructions. 2023-02-24 12:25:48 -05:00
help help: Document stream notifications mobile feature. 2023-02-24 11:35:20 -08:00
locale i18n: Sync latest unbranched translations from Transifex. 2023-01-17 13:20:49 -08:00
pgroonga black: Reformat with Black 23. 2023-02-02 10:40:13 -08:00
puppet puppet: wal-g is a tarball with a single file, not a directory. 2023-02-14 18:18:36 -05:00
requirements requirements: Upgrade Python requirements. 2023-02-03 16:36:54 -08:00
scripts web: Move web app to ‘web’ directory. 2023-02-23 16:04:17 -08:00
static web: Move web app to ‘web’ directory. 2023-02-23 16:04:17 -08:00
stubs/taint actions: Split out zerver.actions.message_send. 2022-04-14 17:14:34 -07:00
templates email-notifications: Update email subjects with "PM" to "DM". 2023-02-24 11:47:26 -08:00
tools private-messages: Update frontend strings to use "direct message" or "DM". 2023-02-24 11:47:26 -08:00
var/puppeteer puppeteer_tests: Port to TypeScript. 2021-02-22 16:03:10 -08:00
web message_row: Allow time row to expand if it needs more width. 2023-02-26 17:05:01 -08:00
zerver models: Drop unique index on user/message/emoji_name. 2023-02-26 17:10:01 -08:00
zilencer docs: Remove spaces before commas. 2023-02-22 17:17:25 -08:00
zproject presence: Tweak and document presence tuning values. 2023-02-21 12:10:43 -08:00
.codecov.yml
.codespellignore contributor docs: Add a page on design discussions. 2022-09-30 12:15:04 -07:00
.editorconfig editorconfig: Restore indent_size = 2 for Markdown. 2021-08-20 23:14:37 -07:00
.eslintignore web: Move web app to ‘web’ directory. 2023-02-23 16:04:17 -08:00
.eslintrc.json eslint: Prohibit import cycles in TypeScript. 2023-02-24 11:33:36 -08:00
.gitattributes .gitattributes: Mark *.bmp, *.bson, *.mp3, *.pdf as binary. 2022-02-07 18:51:06 -08:00
.gitignore lint: Replace pycodestyle and pyflakes with ruff. 2022-11-03 12:10:15 -07:00
.gitlint lint: Re-enable imperative-mood checking. 2021-02-23 14:54:07 -08:00
.mailmap mailmap: Add entry for rht. 2022-11-17 00:05:17 -08:00
.npmignore
.prettierignore web: Move web app to ‘web’ directory. 2023-02-23 16:04:17 -08:00
.pyre_configuration pysa: Update .pyre_configuration to point to typeshed. 2020-09-22 15:44:47 -07:00
.readthedocs.yaml readthedocs: Add a configuration file. 2023-02-03 16:36:54 -08:00
.sonarcloud.properties
.yarnrc
CODE_OF_CONDUCT.md contributor docs: Add guidelines on moderating the Zulip community. 2022-12-02 16:57:41 -08:00
CONTRIBUTING.md docs: Remove paragraph about getting help finding issues in contributing. 2023-01-17 14:51:53 -08:00
Dockerfile-postgresql docker: Document the PostgreSQL Dockerfile build steps. 2022-04-26 18:00:00 -07:00
LICENSE license: Move copyright notice from LICENSE to NOTICE. 2021-02-05 09:28:12 -08:00
NOTICE docs: Bump copyright year. 2021-02-05 09:28:15 -08:00
README.md README: Add Ruff badge. 2023-01-04 16:22:12 -08:00
SECURITY.md SECURITY.md: Reorder and make clearer how to subscribe to announcements. 2022-01-07 15:56:26 -08:00
Vagrantfile vagrant: Add Fedora 36 support. 2022-09-08 16:12:59 -07:00
manage.py ruff: Fix SIM102 nested `if` statements. 2023-01-23 11:18:36 -08:00
package.json test-js-with-node: Fix source maps for coverage. 2023-02-24 13:54:29 -08:00
prettier.config.js prettier: Disable embedded language formatting for Markdown. 2021-08-20 23:14:37 -07:00
pyproject.toml ruff: Enable logging format rules. 2023-02-04 16:36:20 -08:00
stylelint.config.js yarn: Add package which allows creating css mixins. 2021-12-09 18:15:18 -08:00
tsconfig.json web: Move web app to ‘web’ directory. 2023-02-23 16:04:17 -08:00
version.py user groups: Make name and description optional in group update. 2023-02-26 16:22:24 -08:00
yarn.lock test-js-with-node: Fix source maps for coverage. 2023-02-24 13:54:29 -08:00

README.md

Zulip overview

Zulip is an open-source team collaboration tool with unique topic-based threading that combines the best of email and chat to make remote work productive and delightful. Fortune 500 companies, leading open source projects, and thousands of other organizations use Zulip every day. Zulip is the only modern team chat app that is designed for both live and asynchronous conversations.

Zulip is built by a distributed community of developers from all around the world, with 74+ people who have each contributed 100+ commits. With over 1000 contributors merging over 500 commits a month, Zulip is the largest and fastest growing open source team chat project.

Come find us on the development community chat!

GitHub Actions build status coverage status Mypy coverage Ruff code style: black code style: prettier GitHub release docs Zulip chat Twitter GitHub Sponsors

Getting started

You may also be interested in reading our blog, and following us on Twitter and LinkedIn.

Zulip is distributed under the Apache 2.0 license.