Zulip 服务器和 Web 应用程序。开源团队聊天可帮助团队保持高效和专注。
Go to file
Mateusz Mandera 07e99eace9 billing: Fix license counting in exempt_from_license_number_check case.
Fixes two bugs involving organization with
exempt_from_license_number_check enabled:
1. If the organization had e.g. 100 users and upgraded their plan,
   specifying 50 licenses, the generated LicenseLedger and thus the
   corresponding invoice was still for 100 users.
2. The organization was unable to use the billing/plan endpoint (update
   plan endpoint) to make their number of licenses less than the current
   number of users.

Organizations with exempt_from_license_number_check are supposed to be
able to declare whatever license number they want, as this attribute
allows having pricing schemes where an organization only pays us for a
subset of their users.
2023-09-26 09:59:15 -07:00
.github ci: Temporarily upgrade postgresql-client-common before upgrading. 2023-09-15 07:50:17 -07: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 realm: Differentiate reserved realms from in-use realms. 2023-09-25 12:48:14 -07:00
api_docs org_settings: Add backend for realm_jitsi_server_url setting. 2023-09-21 17:39:10 -07:00
confirmation python: Annotate type aliases with TypeAlias. 2023-08-07 10:02:49 -07:00
corporate billing: Fix license counting in exempt_from_license_number_check case. 2023-09-26 09:59:15 -07:00
docs help: Document unarchive_stream management command. 2023-09-19 15:04:07 -07:00
help help: Document "Show unread count for" display preference. 2023-09-24 15:28:50 -07:00
locale sync-translations: Normalize translations to NFC. 2023-09-08 17:51:47 -07:00
patches dependencies: Patch source-sans to correct format() for variable fonts. 2023-09-13 17:08:53 -07:00
pgroonga migrations: Import BaseDatabaseSchemaEditor from its canonical module. 2023-03-05 14:46:28 -08:00
puppet puppet: Add postgresql-client depenencies to monitoring. 2023-09-22 11:45:00 -07:00
requirements requirements: Upgrade Python requirements. 2023-09-15 10:12:26 -07:00
scripts pgroonga: Do not attempt to configure pgroonga without a database. 2023-09-22 11:45:00 -07:00
static help: Add mobile instructions to "Unsubscribe from a stream". 2023-08-30 11:30:53 -07:00
stubs/taint actions: Split out zerver.actions.message_send. 2022-04-14 17:14:34 -07:00
templates corporate: Remove Twitter third-party JavaScript and branding. 2023-09-21 08:53:37 -07:00
tools bots: Extract code for showing integration url modal in new file. 2023-09-26 09:15:20 -07:00
var/puppeteer puppeteer_tests: Port to TypeScript. 2021-02-22 16:03:10 -08:00
web bots: Extract code for showing integration url modal in new file. 2023-09-26 09:15:20 -07:00
zerver realm: Differentiate reserved realms from in-use realms. 2023-09-25 12:48:14 -07:00
zilencer zilencer: Log how long the remote server delayed the push notification. 2023-09-24 15:24:02 -07:00
zproject views: Add a /health healthcheck endpoint. 2023-09-20 09:53:59 -07:00
.codecov.yml codecov: Change threshold to use percentage syntax. 2019-07-20 14:37:04 -07:00
.codespellignore codespell: Fix newly found typos. 2023-04-03 22:39:21 -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: Follow @typescript-eslint/no-parameter-properties rule rename. 2023-07-21 15:58:42 -07:00
.gitattributes .gitattributes: Mark *.bmp, *.bson, *.mp3, *.pdf as binary. 2022-02-07 18:51:06 -08:00
.gitignore dependencies: Switch to pnpm. 2023-03-20 15:48:29 -07:00
.gitlint lint: Update line-length for commit message to 72 in gitlint. 2023-05-01 10:35:52 -07:00
.mailmap mailmap: Put sorted list back in order. 2023-08-02 17:19:05 -07:00
.npmignore Add proxy notes to new README.dev.md troubleshooting section. 2016-03-29 21:54:05 -07:00
.npmrc dependencies: Switch to pnpm. 2023-03-20 15:48:29 -07:00
.prettierignore dependencies: Switch to pnpm. 2023-03-20 15:48:29 -07: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 tools: Configure Zulip to be scannable by SonarCloud. 2020-06-24 12:41:17 -07:00
CODE_OF_CONDUCT.md docs: Rename "private message" -> "direct message". 2023-06-23 14:36:16 -07:00
CONTRIBUTING.md docs: Link to new guide on suggesting features and improvements. 2023-06-12 17:05:42 -07: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
manage.py ruff: Fix PERF401 Use a list comprehension to create a transformed list. 2023-08-07 17:23:55 -07:00
NOTICE docs: Bump copyright year. 2021-02-05 09:28:15 -08:00
package.json dependencies: Upgrade JavaScript dependencies. 2023-09-15 14:09:49 -07:00
pnpm-lock.yaml dependencies: Upgrade JavaScript dependencies. 2023-09-15 14:09:49 -07:00
prettier.config.js prettier: Disable embedded language formatting for Markdown. 2021-08-20 23:14:37 -07:00
pyproject.toml ruff: Enable B023 Function definition does not bind loop variable. 2023-09-11 18:03:45 -07:00
README.md README: Update Ruff badge. 2023-03-21 11:46:20 -07:00
SECURITY.md docs: Update .html links pointing to "Upgrade Zulip" or "Modify Zulip". 2023-08-11 16:49:32 -07:00
stylelint.config.js dependencies: Upgrade JavaScript dependencies. 2023-07-21 15:58:42 -07:00
tsconfig.json dependencies: Install `@types/jquery.validation for type annotation. 2023-08-14 16:00:20 -07:00
Vagrantfile vagrant: Add Fedora 36 support. 2022-09-08 16:12:59 -07:00
version.py org_settings: Add backend for realm_jitsi_server_url setting. 2023-09-21 17:39:10 -07:00

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.