Go to file
Greg Price da8763d889 tools: Avoid `readlink -f` in *-pull-request scripts.
This is a feature of GNU readlink that isn't in the BSD readlink
found on macOS.

For using this and other GNU coreutils features in our scripts in
general, we could use a solution like mobile's tools/lib/ensure-coreutils.sh
to get GNU coreutils on the PATH -- check if it's there already,
if not then try to find a Homebrew install of it and use that, if not
then print a helpful message.

But even then there'd be a bootstrapping problem of how to find
ensure-coreutils.sh .  That involves exactly the same problem as we
have for finding git-tools.sh in these lines.  So in fact in mobile
for the task of finding ensure-coreutils.sh in the first place, we
do without `readlink -f` anyway.

The one consequence of this behavior-wise is that if you make a
symlink somewhere that points directly at that script (say in your
`~/bin/`), and try to run it using that symlink, it won't work.
(It'll still work just fine if there are symlinks somewhere higher
up in the paths involved -- just not for the script itself.)
An ideal CLI program really should support that, I think, but
lacking a better idea, this seems an acceptable compromise.
2021-04-30 14:57:13 -07:00
.github tools: Have `optimize-svg` do the optimization automatiically. 2021-04-19 10:16:54 -07:00
.tx cleanup: Delete trailing newlines. 2019-08-06 23:29:11 -07:00
analytics templates: Mark all void tags as self-closing. 2021-04-21 09:49:34 -07:00
confirmation python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
corporate python: Convert deprecated Django ugettext alias to gettext. 2021-04-15 18:01:34 -07:00
docs markdown: Rewrite all external images to use Camo. 2021-04-30 10:36:16 -07:00
frontend_tests widgets: Prevent edits to widgets. 2021-04-30 09:55:25 -07:00
locale i18n: Update translation data from Transifex. 2021-04-15 15:37:33 -07:00
pgroonga python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
puppet puppet: Add override for queue_workers_multiprocess. 2021-04-20 14:37:15 -07:00
requirements email: Open a single SMTP connection to send email batches. 2021-04-26 17:27:22 -07:00
scripts scripts: Tool to find the diff to an original settings.py prod template. 2021-04-27 21:50:33 -07:00
static widgets: Prevent edits to widgets. 2021-04-30 09:55:25 -07:00
stubs requirements: Upgrade mypy to 0.790. 2020-11-12 15:44:30 -08:00
templates user docs: Move "Create a poll" section in Sending messages. 2021-04-30 09:37:48 -07:00
tools tools: Avoid `readlink -f` in *-pull-request scripts. 2021-04-30 14:57:13 -07:00
var/puppeteer puppeteer_tests: Port to TypeScript. 2021-02-22 16:03:10 -08:00
zerver push_notifications: Give full stack information on an exception. 2021-04-30 14:03:52 -07:00
zilencer audit log: Create audit log when a realm is created. 2021-04-30 09:25:11 -07:00
zproject emails: Fix outgoing email handling inside the dev environment. 2021-04-28 18:00:37 -07:00
zthumbor python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
.browserslistrc browserslist: Drop 0.2% usage threshold to 0.15%. 2020-09-28 10:57:49 -07:00
.codecov.yml codecov: Change threshold to use percentage syntax. 2019-07-20 14:37:04 -07:00
.editorconfig lint: Add shfmt as a linter. 2020-10-15 15:16:00 -07:00
.eslintignore gitignore: Ignore zulip-thumbor-venv. 2021-03-04 18:06:21 -08:00
.eslintrc.json js: Extract password_quality module; remove zxcvbn from globals. 2021-04-24 13:08:52 -07:00
.gitattributes Revert "gitattributes: Mark yarn.lock as "binary", i.e. suppress diffs." 2019-05-20 19:31:14 -07:00
.gitignore ci: Use general terms for CircleCI. 2021-03-16 14:56:43 -07:00
.gitlint lint: Re-enable imperative-mood checking. 2021-02-23 14:54:07 -08:00
.mailmap mailmap: Document Alya's old email address. 2021-04-01 11:24:03 -07:00
.npmignore
.prettierignore lint: Use Prettier for JSON files. 2020-07-24 09:42:56 -07:00
.pyre_configuration pysa: Update .pyre_configuration to point to typeshed. 2020-09-22 15:44:47 -07:00
.sonarcloud.properties tools: Configure Zulip to be scannable by SonarCloud. 2020-06-24 12:41:17 -07:00
.yarnrc .yarnrc: Set ignore-scripts true. 2019-08-28 16:15:54 -07:00
CODE_OF_CONDUCT.md docs: Remove dead link to citizencodeofconduct.org. 2021-04-09 12:10:42 -07:00
CONTRIBUTING.md docs: Mention GitHub sponsors in contributing guide. 2021-03-23 15:57:25 -07:00
Dockerfile-postgresql docs: Standardize on PostgreSQL, not Postgres. 2020-10-28 11:55:16 -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 GitHub sponsors badge in README. 2021-03-23 15:56:46 -07:00
SECURITY.md docs: Fix more capitalization issues. 2020-10-23 11:46:55 -07:00
Vagrantfile vagrant: Add hyperV support to vagrant config. 2021-04-13 21:04:44 -07:00
babel.config.js i18n: Initialize FormatJS. 2021-04-13 17:41:10 -07:00
manage.py python: Normalize quotes with Black. 2021-02-12 13:11:19 -08:00
mypy.ini mypy: Enable strict_equality. 2021-04-13 11:18:52 -07:00
package.json i18n: Remove i18next. 2021-04-13 17:41:10 -07:00
postcss.config.js styles: Use range context queries to eliminate *_max variables. 2021-02-05 09:23:59 -08:00
prettier.config.js casper: Remove few traces of casper. 2020-08-30 17:16:02 -07:00
pyproject.toml isort: Move configuration into pyproject.toml. 2021-03-04 18:03:30 -08:00
setup.cfg pycodestyle: Improve comments documenting excludes. 2021-02-12 13:11:25 -08:00
stylelint.config.js styles: Consistently use generic fallback font families. 2021-04-05 15:18:41 -07:00
tsconfig.json dependencies: Add ts-node. 2021-02-22 16:03:10 -08:00
version.py events: Add 'is_moderator' field to the page_params object sent to clients. 2021-04-29 15:18:49 -07:00
webpack.config.ts js: Extract password_quality module; remove zxcvbn from globals. 2021-04-24 13:08:52 -07:00
yarn.lock i18n: Remove i18next. 2021-04-13 17:41:10 -07:00

README.md

Zulip overview

Zulip is a powerful, open source group chat application that combines the immediacy of real-time chat with the productivity benefits of threaded conversations. Zulip is used by open source projects, Fortune 500 companies, large standards bodies, and others who need a real-time chat system that allows users to easily process hundreds or thousands of messages a day. With over 700 contributors merging over 500 commits a month, Zulip is also the largest and fastest growing open source group chat project.

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

Getting started

Click on the appropriate link below. If nothing seems to apply, join us on the Zulip community server and tell us what's up!

You might be interested in:

You may also be interested in reading our blog or following us on Twitter. Zulip is distributed under the Apache 2.0 license.