Skip to content

changelog: Describe changes since 30.0.270#2198

Merged
gnprice merged 1 commit intozulip:mainfrom
chrisbobbe:pr-changelog-2026-03-03
Mar 9, 2026
Merged

changelog: Describe changes since 30.0.270#2198
gnprice merged 1 commit intozulip:mainfrom
chrisbobbe:pr-changelog-2026-03-03

Conversation

@chrisbobbe
Copy link
Copy Markdown
Collaborator

No description provided.

@chrisbobbe chrisbobbe requested a review from gnprice March 4, 2026 03:09
@chrisbobbe chrisbobbe changed the title docs: Describe changes since 30.0.270 changelog: Describe changes since 30.0.270 Mar 4, 2026
@chrisbobbe chrisbobbe force-pushed the pr-changelog-2026-03-03 branch from aea670a to 5e7bec5 Compare March 4, 2026 03:15
Copy link
Copy Markdown
Member

@gnprice gnprice left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for preparing this! Comments below.

One general principle that I don't think I'd articulated: the user-visible changes mentioned in the merge log have two purposes:

  • They serve as input to preparing the highlights for users.
  • They give us something to refer to when we're curious about some change in the app's behavior and what to know which release introduced it.

So that second point serves as background for the items below where I ask for additional mentions there (for Flutter/deps upgrades, and for server-visible changes).

Comment on lines +24 to +25
* #2084: fix #1798. Show the Refresh/Subscribe banner in unsubscribed
channels even when you have permission to send messages.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was in the previous release, right?

Comment on lines +10 to +11
* (Android) We now show your organization's name instead of its URL
in notifications, with Zulip Server 8+. (#570)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* (Android) We now show your organization's name instead of its URL
in notifications, with Zulip Server 8+. (#570)
* (Android) We now show your organization's name instead of its URL
in notifications. (#570)

We don't officially support older versions than that anyway; so no need to add a qualifier and have people wondering if it applies to them.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We support 7.x servers:

/// The Zulip Server version below which we should refuse to connect.
///
/// When updating this, also update [kMinSupportedZulipFeatureLevel]
/// and the README.
// TODO(#1838) address all TODO(server-7)
const kMinSupportedZulipVersion = '7.0';

/// The Zulip feature level reserved for the [kMinSupportedZulipVersion] release.
///
/// For this value, see the API changelog:
///   https://zulip.com/api/changelog
const kMinSupportedZulipFeatureLevel = 185;

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't yet cause the app to stop working at those versions, but we only officially support versions from the last 18 months:
https://zulip.readthedocs.io/en/stable/overview/release-lifecycle.html#client-apps

I think there are probably very few people using server versions older than 8, but a large number of people who don't know what version the server they're using is on and don't know whether 8 is an old or a very new version.

Comment on lines +37 to +38
* #2043: fix #1567. Fixed a bug on Android where sometimes
opening a notification wouldn't navigate to the conversation.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was a pretty annoying issue for some folks, so I think definitely a highlight.

* #2155
* #1882: fix #1558. When we can't load a user's avatar,
show a generic placeholder.
* #2125: fix #894. Handle flags for @-topic mentions.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not a user-visible change, except on possible future servers (see commit, 348c4fa)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(fine to note this, but should make clear it's only future-proofing, because otherwise it sounds like it has some sort of effect now)

### Highlights for developers

* Merge log: PRs, with fixed issues and user-visible changes.
* #2103
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a Flutter upgrade; I've been noting those here because they may well have user-visible effects (even if we haven't identified a specific one).

Comment on lines +35 to +36
* #2140
* #2141
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Flutter version pinning in #2140 would be good to include as an item above here in developer highlights.

Also the change to CI output in #2141. And I guess the CI split in #2145 below.

* #2135
* #2145
* #2134
* #2129
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

another deps upgrade PR

* #2175: fix #1260. Show translated user-facing strings for @-mentions
of system groups.
* #2171: Set up Patrol for integration tests.
* #2176
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#2176 isn't exactly user-visible, but it is server-visible: it causes device registration. So it'd be good to mention here, because that change is something we could potentially end up wanting to know which release introduced (when investigating changes we see happening from the server side).

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm confused; #2181 (not yet merged) adds the registerClientDevice call, but #2176 doesn't.

Tracking push-device data is server-visible, so I propose this:

  * #2176: Tracks push-device data from servers in the E2EE-notification protocol.

@gnprice gnprice added the integration review Added by maintainers when PR may be ready for integration label Mar 5, 2026
@chrisbobbe chrisbobbe force-pushed the pr-changelog-2026-03-03 branch from 5e7bec5 to c42699c Compare March 9, 2026 18:18
@chrisbobbe
Copy link
Copy Markdown
Collaborator Author

Thanks for the review! Revision pushed.

Copy link
Copy Markdown
Member

@gnprice gnprice left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Comment on lines +10 to +11
* (Android) We now show your organization's name instead of its URL
in notifications, with Zulip Server 8+. (#570)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't yet cause the app to stop working at those versions, but we only officially support versions from the last 18 months:
https://zulip.readthedocs.io/en/stable/overview/release-lifecycle.html#client-apps

I think there are probably very few people using server versions older than 8, but a large number of people who don't know what version the server they're using is on and don't know whether 8 is an old or a very new version.

Comment on lines +70 to +71
* #2176: Tracks push-device data from servers in the E2EE-notification
protocol.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The key info here is what the server operator can see (since there's no behavior the user can see). That part is:

Suggested change
* #2176: Tracks push-device data from servers in the E2EE-notification
protocol.
* #2176: Register client device with server.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But #2176 doesn't do that, as I mentioned in #2198 (comment) . Aren't we awaiting that in #2181 (not yet merged)?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah sorry, I missed that comment. (GitHub did the thing where the page updated to show your main comment, and your revision, but not your replies to the subthreads above.)

Yeah, that's right. I was scanning the git log --oneline for the whole sequence since the last release, and probably I saw this:
70fa425 api: Add route registerClientDevice
and confused it with the step in #2181 where we actually start calling that route.

I don't think there's any server-visible behavior in us tracking the device data either: the server is sending us that data in the initial snapshot and in events either way, and the change is just that we parse it and have data structures tracking it. So this can go back to just the bare PR number, then.

Copy link
Copy Markdown
Collaborator Author

@chrisbobbe chrisbobbe Mar 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah I think I misspoke above with

Tracking push-device data is server-visible

I was looking for your intended meaning, i.e. maybe a functional change in #2176 that you wanted to call out but that you misremembered as being the POST /register_client_device call.

There is a functional change in #2176 (involving server behavior), but of a kind we probably don't need to call out here: it adds exposure to validation errors when we consume the initial snapshot and events.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah and I wrote my comment 8 minutes ago without GitHub ever hinting that you had replied 🥲—anyway, yes, I'll do this:

So this can go back to just the bare PR number, then.

@chrisbobbe chrisbobbe force-pushed the pr-changelog-2026-03-03 branch from c42699c to cda591a Compare March 9, 2026 21:26
@chrisbobbe
Copy link
Copy Markdown
Collaborator Author

Thanks for the review! Revision pushed, resolving the above and also adding #2195 to the merge log since it landed after my last revision. It's a user-visible change (so I've added words for it in the merge log) but not a feature we need to highlight for users.

@gnprice
Copy link
Copy Markdown
Member

gnprice commented Mar 9, 2026

Thanks! Looks good; merging, with one nit fix:

-  * #2129: Flutter and package upgrades. 
+  * #2129: Flutter and package upgrades.

(trailing space)

@gnprice
Copy link
Copy Markdown
Member

gnprice commented Mar 9, 2026

Oh and one other:

  ## Commit message ##
-    docs: Describe changes since 30.0.270
+    changelog: Describe changes since 30.0.270

(same convention as previous such updates)

@gnprice gnprice force-pushed the pr-changelog-2026-03-03 branch from cda591a to 51493b3 Compare March 9, 2026 21:31
@gnprice gnprice merged commit 51493b3 into zulip:main Mar 9, 2026
1 of 2 checks passed
@chrisbobbe chrisbobbe deleted the pr-changelog-2026-03-03 branch March 9, 2026 22:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

integration review Added by maintainers when PR may be ready for integration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants