Commit Graph

6005 Commits

Author SHA1 Message Date
Mateusz Mandera
f28cd99bc3 renumber-migrations: Print current HEAD before amending prior commits.
Some checks failed
Code scanning / CodeQL (push) Has been cancelled
Zulip production suite / Ubuntu 22.04 production build (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:bookworm, true, false, Debian 12 (Python 3.11, backend + documentation), bookworm) (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:jammy, false, true, Ubuntu 22.04 (Python 3.10, backend + frontend), jammy) (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:noble, false, false, Ubuntu 24.04 (Python 3.12, backend), noble) (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:resolute, false, false, Ubuntu 26.04 (Python 3.14, backend), resolute) (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:trixie, false, false, Debian 13 (Python 3.13, backend), trixie) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm, --test-custom-db, Debian 12 production install with custom db name and user, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:jammy, , Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga, jammy) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:noble, , Ubuntu 24.04 production install, noble) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:resolute, , Ubuntu 26.04 production install, resolute) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:trixie, , Debian 13 production install, trixie) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm-7.0, 7.0 Version Upgrade, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm-8.0, 8.0 Version Upgrade, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:jammy-6.0, 6.0 Version Upgrade, jammy) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:noble-10.0, 10.0 Version Upgrade, noble) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:noble-9.0, 9.0 Version Upgrade, noble) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:resolute-12.0, 12.0 Version Upgrade, resolute) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:trixie-11.0, 11.0 Version Upgrade, trixie) (push) Has been cancelled
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
2026-05-30 23:15:16 +08:00
Mateusz Mandera
99e26b0664 renumber-migrations: Suggest setting @{u} when unset. 2026-05-30 23:15:16 +08:00
Alex Vandiver
bc08509a15 renumber-migrations: Squash renames into the introducing commits.
After auto-resolving (or interactively resolving) conflicts, the
tool used to leave the renames as uncommitted changes for the user
to fold back into the right commits by hand. With more than a
trivial branch, that's tedious and error-prone.

For each `(old, new)` rename, find the most recent commit between
`@{u}` and `HEAD` that added `old`, build a `fixup!` commit
targeting it via `git commit --only` (so any unrelated already-
staged changes the user had don't get folded in), and then run `git
rebase --autosquash --autostash @{u}` so the renames land in the
commits that introduced each local migration. Skip the squash for
any renamed file with no in-branch add (untracked or already
committed elsewhere); leave that change in the working tree.

Refuse upfront if `@{u}..HEAD` contains any merge commit, since
`git rebase -i --autosquash` would silently linearize them and
`--autostash` would make recovery awkward.

`--no-rebase` skips the squash for users who want to handle commit
placement themselves.
2026-05-30 23:15:16 +08:00
Alex Vandiver
c212c126b6 renumber-migrations: Default to moving local migrations past the tip.
The interactive prompt previously asked the user to order every
conflicting migration, and the renumberer bumped each loser by one
position at a time. A branch with a single new migration that
collides several positions behind the upstream tip therefore had to
walk through one prompt per intervening commit.

Use `git ls-tree @{u}` to detect which conflicting migrations are
branch-local. When `@{u}` resolves and every conflict group has
exactly one local file, renumber all local migrations at-or-past
the first conflict contiguously past the upstream tip, in NNNN
order: the new NNNNs fill in from `upstream_tip + 1` and increment
by 1, with each file's in-app dep rewritten to the previous file
in the new chain. Non-conflicting local migrations between the
first conflict and the new tip are renumbered too, so the chain
stays intact and there's no NNNN gap.

When `@{u}` can't be resolved, fall back to the existing interactive
prompt per group. If `@{u}` is available but a conflict has 0 or
2+ local files (backport or order-ambiguous), error out and let
the user resolve manually.
2026-05-30 23:15:16 +08:00
Alex Vandiver
2e0394425b renumber-migrations: Process conflict groups one at a time.
Pull the conflict-detection scan into a `find_conflict_groups`
helper that returns one list per colliding NNNN prefix, sorted by
prefix. Have `main()` operate on the lowest-numbered group, re-glob
after each pass, and stop when no group is left. Sets up the
follow-up commit's per-group decision (auto-resolve vs. interactive
prompt).

Interactive callers now get one prompt per conflict group rather
than a single combined prompt for every conflicting file at once,
which is also a smaller blast radius if the user gives a wrong
order.
2026-05-30 23:15:16 +08:00
Alex Vandiver
ac8399ce34 renumber-migrations: Extract a renumber_one helper.
Pull the dep rewrite + rename into a small helper. No behavior
change; preparing for a second caller in a follow-up commit.
2026-05-30 23:15:16 +08:00
Alex Vandiver
87e800813a renumber-migrations: Tidy up structure and naming.
* Move the body of the `if __name__ == "__main__":` block into a
  `main()` function and lift `MIGRATIONS_TO_SKIP` to module scope
  near the other module-level definitions at the top of the file.
* Replace the misnamed `stack: list[str]` with a `seen_prefixes:
  set[str]`, and de-indent the rename branch by `continue`-ing on
  the "first occurrence" path.
* Use `removesuffix(".py")` instead of `replace(".py", "")`.
* Rewrite `validate_order` as a single permutation check, with an
  error message that says what was expected and what was received.
* Drop the unused `files_list` parameter from `resolve_conflicts`
  and replace its `range(len(...))` with `enumerate`.
2026-05-30 23:15:16 +08:00
Alex Vandiver
60f644016c renumber-migrations: Restrict dep rewrite to in-app tuples.
The previous regex `[\d]+(_[a-z0-9]+)+` matched any digit run
followed by `_word` segments, anywhere in the file. That includes
unrelated tokens like the Python integer literal `1_000` and
cross-app dependency tuples such as `("auth", "0001_initial")`,
both of which were silently rewritten to the renumbered migration's
new predecessor name.

Match only tuples whose app label matches the app being renumbered,
and rewrite just the migration-name string. Refuse outright to
renumber a file with multiple in-app dependency tuples (a migration
merge), since rewriting all of them to the same predecessor would
produce a self-referential migration; those need to be renumbered
by hand.
2026-05-30 23:15:16 +08:00
Dhruv Shetty
fdf7a75a6c populate_db: Add attachments in messages.
3% of generated messages now include a text markdown
file attachment, created via the upload API.

Fixes part of #14991.

Co-authored-by: Andrew Wang
<73965466+wandrew0@users.noreply.github.com>
2026-05-29 09:06:22 +05:30
Evy Kassirer
77a2945308 event_types: Rename EventX classes to XEvent.
A pure mechanical rename: classes that subclassed BaseEvent
moved their "Event" prefix to a suffix, e.g. EventAlertWords
-> AlertWordsEvent. This puts the type name first, which
reads more naturally and matches how we've been naming things
in newer code.

Helper classes whose names embed an event class (e.g.
AttachmentFieldForEventAttachmentRemove) follow the rename
through to AttachmentFieldForAttachmentRemoveEvent.

tools/check-schemas is updated to construct names with the
new suffix, and a comment in that file is updated likewise.

Co-authored-by: Steve Howell <showell30@yahoo.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 16:35:37 -07:00
Aman Agrawal
1ba33c17dc ci: Pin Docker base images to linux/amd64.
GitHub Actions runners we target are linux/amd64, but
images on Apple Silicon (arm64) hosts produces an arm64
image and `docker push` publishes a manifest CI cannot run.

Pinning at the FROM line forces qemu emulation on arm64 hosts,
trading build time for a reproducible amd64 artifact regardless
of where the build happens.
2026-05-21 23:50:45 +08:00
Mateusz Mandera
8b189cdf30 backport: Give a sensible error when trying to backport an unmerged PR.
When trying to backport a pull request that hasn't yet been merged on
GitHub, we'd get an unhelpful error due to the empty `$merge_commit`
value:
```
gh: ` 0` does not appear to be a valid cursor.
```

This commit introduces an explicit check and a clear error.
2026-05-18 22:33:17 -04:00
Anders Kaseorg
6f01ccb8be ci: Disable interactive prompts from apt in production tests.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-05-18 17:44:16 -07:00
Anders Kaseorg
e7d517915d dependencies: Upgrade JavaScript dependencies.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-05-13 14:20:32 -07:00
Anders Kaseorg
202b6735ee provision: Install Java ≥ 17.
This is required by vnu-jar now.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-05-13 14:20:32 -07:00
Lauryn Menard
a6e0214423 docs: Update links in README files for moved directory-structure.
Some checks failed
Code scanning / CodeQL (push) Has been cancelled
Zulip production suite / Ubuntu 22.04 production build (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:bookworm, true, false, Debian 12 (Python 3.11, backend + documentation), bookworm) (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:jammy, false, true, Ubuntu 22.04 (Python 3.10, backend + frontend), jammy) (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:noble, false, false, Ubuntu 24.04 (Python 3.12, backend), noble) (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:resolute, false, false, Ubuntu 26.04 (Python 3.14, backend), resolute) (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:trixie, false, false, Debian 13 (Python 3.13, backend), trixie) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm, --test-custom-db, Debian 12 production install with custom db name and user, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:jammy, , Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga, jammy) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:noble, , Ubuntu 24.04 production install, noble) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:resolute, , Ubuntu 26.04 production install, resolute) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:trixie, , Debian 13 production install, trixie) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm-7.0, 7.0 Version Upgrade, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm-8.0, 8.0 Version Upgrade, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:jammy-6.0, 6.0 Version Upgrade, jammy) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:noble-10.0, 10.0 Version Upgrade, noble) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:noble-9.0, 9.0 Version Upgrade, noble) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:trixie-11.0, 11.0 Version Upgrade, trixie) (push) Has been cancelled
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
The directory structure article was moved to the subsystems section
of the docs.
2026-05-13 18:01:30 +05:30
Aman Agrawal
7972b0bd30 webpack: Pass --allowed-hosts as separate flags.
webpack-dev-server's `--allowed-hosts` CLI flag is repeatable
(documented as `<value...>` in webpack-cli's SERVE-OPTIONS-v5.md,
declared as `multiple: true` with `path: "allowedHosts[]"` in
webpack-dev-server's `bin/cli-flags.js`) and does not split on
commas. The previous comma-joined form caused the entire string
`"127.0.0.1,.zulipdev.com,.zulipdev.org"` to be stored as a
single literal entry in `allowedHosts`, which matched no real
host and never triggered the leading-dot wildcard branch.

The practical symptom was webpack-dev-server rejecting the
WebSocket handshake with "Invalid Host/Origin header" when the
dev server was accessed via the default `zulipdev.com:9991`
EXTERNAL_HOST: only the hardcoded fallbacks for localhost, IP
literals, and `options.host` (= 127.0.0.1) still passed.
Running with `--interface=` masked the bug because that path
takes the `--disable-host-check` branch (which becomes
`--allowed-hosts=all`).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-08 19:06:46 -07:00
Anders Kaseorg
a2fb7b672a message_summary: Replace litellm with the OpenAI Python SDK.
Switch the topic summarization integration from the litellm wrapper
library to the OpenAI Python SDK directly. The SDK can be pointed at
any OpenAI-compatible endpoint via a new TOPIC_SUMMARIZATION_API_BASE
setting, so provider/model strings like "groq/llama-3.3-70b-versatile"
become a plain model name plus a base URL.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-05-07 16:18:53 -07:00
Alex Vandiver
06e6f28b79 bootstrap-aws-installer: Lock root password. 2026-05-06 19:37:13 +00:00
Aman Agrawal
467b4047b8 provision: Add Fedora 44 support.
Fedora 44 ships Postgres 17 in PGDG and shares Fedora 43's package
list, so support is just a matter of accepting the new version in
the provision check.
2026-05-06 07:34:15 +05:30
Anders Kaseorg
e7b6ea9bb6 workflows: Remove ignores for check-capitalization, check-frontend-i18n.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-04-27 15:24:22 -07:00
Anders Kaseorg
2028724c10 workflows: Unset PYTHONWARNINGS for uv lock --check.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-04-27 15:24:22 -07:00
Sachin Kumar
2d44200fc7 provision: Add native support for GitHub Codespaces.
This automates backend provisioning, fixes RabbitMQ hostname resolution,
grants PostgreSQL passwordless sudo, and explicitly forwards only the
required web port (9991).
2026-04-26 22:28:01 -07:00
Aman Agrawal
75afa9c055 provision: Replace Fedora 38 support with Fedora 43.
Fedora 38 reached end of life upstream; replace it with Fedora 43,
which ships dnf5 and a recent enough groonga to skip the source
build. Concretely, to make `tools/provision` run cleanly on
Fedora 43:

* dnf5 (Fedora 41+) dropped the `groupinstall` alias and no longer
  resolves the "Development Tools" display name, so switch the
  Fedora branch of `setup-yum-repo` to
  `dnf group install development-tools` (by group ID). Move the
  existing CentOS/RHEL `groupinstall` calls into their own branches
  so they keep working on yum/dnf4.

* Map Fedora 43 to PostgreSQL 17, and add `groonga-devel`,
  `xxhash-devel`, `meson`, and `redhat-rpm-config` to the Fedora
  package list. PGroonga 4.0.6 switched its build system to meson;
  on Fedora, PostgreSQL's `pg_config` exports CFLAGS containing
  `-specs=/usr/lib/rpm/redhat/redhat-hardened-cc1` and
  `-specs=.../redhat-annobin-cc1`, and without `redhat-rpm-config`
  the PGroonga build fails with "cannot read spec file".
  `xxhash-devel` is required because `xxhash-libs` is often pulled
  in transitively (by blosc2, pyarrow, etc.) without its headers,
  in which case meson detects libxxhash via pkg-config and skips
  the vendored fallback that would otherwise build it from source.

* Use the packaged groonga from Fedora's main repo (15.0.4 on
  Fedora 43, satisfying PGroonga 4.0.6's >= 14.1.0 requirement)
  instead of compiling groonga from source. This removes the only
  remaining caller of `scripts/lib/build-groonga` and the
  BUILD_GROONGA_FROM_SOURCE plumbing in provision.py, which the
  prior Fedora 38 path was the only user of.

Verified end-to-end on a Fedora 43 host and in a fresh fedora:43
podman container: setup-yum-repo, the package install, and the
PGroonga source build against the system groonga all complete
cleanly.
2026-04-25 22:27:34 -07:00
Lauryn Menard
29639e76ea test-api: Reset uploaded realm emoji for realm export tests.
Because of how the test runner varies settings.LOCAL_UPLOADS_DIR,
we reset the realm uploaded emoji for the realm export tests for
both the python and curl examples. Previously, the realm export
was failing after the success response with the export ID was
sent.
2026-04-24 10:57:05 -07:00
Evy Kassirer
d35eee14c8 sidebars: Sync Tab and arrow key navigation in sidebars.
When a user Tabs to a sidebar element and presses arrow keys,
sync the ListCursor to the focused element's row and navigate
from there, then move focus to the new row. This makes switching
between Tab and arrow key navigation preserve position.

When Tab is pressed from a search input after arrow key
navigation, focus moves to the highlighted row rather than the
next element in DOM order. Pressing Tab also clears the cursor
highlight so it doesn't persist alongside focus styling.

For the right sidebar, arrow keys from section headers, "view
all" links, and the "invite" link navigate to the nearest
visible user row in the appropriate direction.

The new logic in activity_ui.ts is jQuery/DOM traversal glue
(closest/nextAll/addBack, document.activeElement, focus()) that
is better verified end-to-end than with mocked node tests, and
buddy_list.ts and essentially every other *_ui.ts sidebar file
are already in EXEMPT_FILES. Add activity_ui.ts there for
consistency rather than writing low-value mock-heavy tests.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-23 18:11:39 -07:00
Niloth P
33cf58dd91 screenshots: Remove document.querySelector by using page.$eval.
Co-authored-by: Anders Kaseorg <anders@zulip.com>
2026-04-23 17:14:12 -07:00
Anders Kaseorg
94f8ec0658 Revert "run-dev: Abbreviate error message when receiving an https request."
This reverts commit bf4933942c (#29034).

The logging issue was fixed upstream in aiohttp 3.11.8.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-04-23 14:37:30 -07:00
Dhruv Shetty
ba5ff3a8dc run-dev: Add -H short option for --help-center-dev-server. 2026-04-23 09:18:41 -07:00
Anders Kaseorg
cf386e43a0 Vagrantfile: Share the checkout at the host’s path.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-04-23 09:18:20 -07:00
Agnish Bauri
197a5939f5 api docs: Document all /bot_storage endpoint methods.
Co-authored-by: Lauryn Menard <lauryn@zulip.com>
2026-04-22 22:59:16 -07:00
Anders Kaseorg
34ed22a117 install: Support Ubuntu 26.04.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-04-22 22:00:04 -07:00
Anders Kaseorg
b926085168 production-verify: Strip (Ubuntu) from nginx version.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-04-22 22:00:04 -07:00
Anders Kaseorg
cc3d4b6459 build-pgroonga: Upgrade PGroonga from 4.0.1 to 4.0.6.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-04-22 22:00:04 -07:00
Anders Kaseorg
ce2c9c2dc4 test-backend: Use fork method for multiprocessing.
We have problems with the new Python 3.14 default method forkserver.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-04-22 22:00:04 -07:00
Anders Kaseorg
dd0a8e9c4f async_utils: Skip NoAutoCreateEventLoopPolicy on Python ≥ 3.14.
Its behavior is the default now; asyncio.DefaultEventLoopPolicy and
asyncio.set_event_loop_policy are deprecated.

https://docs.python.org/3.14/whatsnew/3.14.html#id10

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-04-22 22:00:04 -07:00
Anders Kaseorg
e15f1c2a52 coveragerc: Use exclude_also.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-04-22 22:00:04 -07:00
Anders Kaseorg
7ed614474d python-warnings: Update glom SyntaxWarning pattern for Python 3.14.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-04-22 22:00:04 -07:00
Anders Kaseorg
7c4e2a2ef2 python-warnings: Filter Python 3.14 SyntaxWarning from IPython.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-04-22 22:00:04 -07:00
Anders Kaseorg
f58649b9bf install-shfmt: Upgrade shfmt from 3.13.0 to 3.13.1.
Some checks failed
Code scanning / CodeQL (push) Has been cancelled
Zulip production suite / Ubuntu 22.04 production build (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:bookworm, true, false, Debian 12 (Python 3.11, backend + documentation), bookworm) (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:jammy, false, true, Ubuntu 22.04 (Python 3.10, backend + frontend), jammy) (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:noble, false, false, Ubuntu 24.04 (Python 3.12, backend), noble) (push) Has been cancelled
Zulip CI / ${{ matrix.name }} (zulip/ci:trixie, false, false, Debian 13 (Python 3.13, backend), trixie) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm, --test-custom-db, Debian 12 production install with custom db name and user, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:jammy, , Ubuntu 22.04 production install and PostgreSQL upgrade with pgroonga, jammy) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:noble, , Ubuntu 24.04 production install, noble) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:trixie, , Debian 13 production install, trixie) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm-7.0, 7.0 Version Upgrade, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:bookworm-8.0, 8.0 Version Upgrade, bookworm) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:jammy-6.0, 6.0 Version Upgrade, jammy) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:noble-10.0, 10.0 Version Upgrade, noble) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:noble-9.0, 9.0 Version Upgrade, noble) (push) Has been cancelled
Zulip production suite / ${{ matrix.name }} (zulip/ci:trixie-11.0, 11.0 Version Upgrade, trixie) (push) Has been cancelled
Zulip production suite / Required jobs (push) Has been cancelled
Zulip CI / Required jobs (push) Has been cancelled
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-04-21 16:46:02 -07:00
PieterCK
a2235c50cb ms_teams_importer: Convert hosted content message attachments.
Fixes #37427.
2026-04-20 09:12:37 -07:00
sathwikshetty33
dd3ee35dc0 webhooks/travis: Improve message template.
Remove travis/view.py from not_yet_fully_covered list,
as it now has 100% coverage.
2026-04-20 08:53:46 -07:00
Anders Kaseorg
a23a3e7847 dependencies: Upgrade JavaScript dependencies.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-04-17 15:39:27 -07:00
Anders Kaseorg
d6df5337ff requirements: Upgrade Python requirements.
Also enable a 24-hour dependency cooldown:
https://docs.astral.sh/uv/concepts/resolution/#dependency-cooldowns

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-04-17 15:04:02 -07:00
harsh_0303
57df539a5a screenshots: Replace jQuery globals in screenshot scripts.
Recent frontend dependency changes removed global jQuery
exposure in the webpack build.

The screenshot scripts were still using $ inside
page.evaluate callbacks, which caused ReferenceError
at runtime.

Replace those jQuery calls with equivalent DOM
operations using querySelectorAll, remove,
classList.remove, and style updates.
2026-04-17 14:59:39 -07:00
Shubham Padia
4a3895e60f run-dev: Fix typo no -> not when backend does not respond to requests. 2026-04-16 20:50:04 -07:00
apoorvapendse
5c7adf65d1 gifs: Introduce KLIPY as a GIF provider.
Signed-off-by: apoorvapendse <apoorvavpendse@gmail.com>
2026-04-11 22:51:27 -05:00
Niloth P
988ed04982 webhooks/jira: Add test coverage for user mentions.
- Remove Jira from the test-backend exclusions.
- Use silent mention syntax for matching users.
2026-04-11 20:29:31 -07:00
Alex Vandiver
28dac31d58 backport-all-prs: Derive backport branch from unmerged tags.
This means skipping, e.g., 12.0-beta1.
2026-04-05 20:55:51 -07:00
Anders Kaseorg
a68a815414 install-shfmt: Upgrade shfmt from 3.12.0 to 3.13.0.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2026-03-25 04:06:09 -07:00