docs/development/using.md
This page describes the basic edit/refresh workflows for working with the Zulip development environment. Generally, the development environment will automatically update as soon as you save changes using your editor. Details for work on the server, web app, and mobile apps are below.
If you're working on authentication methods or need to use the Zulip REST API, which requires an API key, see authentication in the development environment.
main branch moves quickly, and you should rebase
constantly with, for example,
git fetch upstream; git rebase upstream/main to avoid developing
on an old version of the Zulip codebase (leading to unnecessary
merge conflicts).tools/provision to update your development
environment after switching branches; it will run in under a second
if no changes are required.https://localhost:9991/devtools../tools/rebuild-dev-database.run-dev console
to make sure the backend has reloaded.zerver/models/*.py), you'll need
to use the Django migrations
process; see also the new
feature tutorial for an example.run-dev
console output, which will show tracebacks for any 500 errors your
Zulip development server encounters (which are probably caused by
bugs in your code)../manage.py shell or manage.py dbshell.run-dev) is running, you can visit
http://localhost:9991/ in your browser.web/src) or Handlebars
templates (web/templates), the browser window will be
reloaded automatically.templates/*), you'll need to reload
the browser window to see your changes.debug.js has some occasionally useful JavaScript profiling code.See the mobile project's documentation on getting set up to develop and contribute to the mobile app.