Skip to content

Release 2025-07-11 - (expected chart version 5.18.0) - #4660

Merged
akshaymankar merged 37 commits into
masterfrom
release_2025-07-11_14_25
Jul 14, 2025
Merged

Release 2025-07-11 - (expected chart version 5.18.0)#4660
akshaymankar merged 37 commits into
masterfrom
release_2025-07-11_14_25

Conversation

@zebot

@zebot zebot commented Jul 11, 2025

Copy link
Copy Markdown
Contributor

[2025-07-11] (Chart Release 5.18.0)

Release notes

API changes

Features

Bug fixes and other updates

Documentation

Internal changes

supersven and others added 30 commits June 16, 2025 17:04
Master->Develop after release
The field name is `team`.

---------

Co-authored-by: Leif Battermann <leif.battermann@wire.com>
Each consumer can consume up to unacknowledged 500 messages. Beyond
this, messages need to be acknowledged. This prevents overloading the
consumer with new messages.
These are left-overs from analyzing prior flakiness.
…auto) (#4617)

* integration tests: make creation of scim users more flexible.

* Update docs.

* Add integration test for validateSAMLEmail.

* Add integration test for changing externalId and emails fields subsequently.

* Cleanup test code.

* Simplify internal API; remove zombie code.

* ...  and the edit war continues...

* Fix copy pasta in error message.
…tions` capability (#4626)

* gundeck: Update mock implementation to include RabbitMQ complexities

The tests now fail correctly because gundeck is not sending native pushes to
clients with consumable-notifications capability

* gundeck: Send push notifications to clients with `consumable-notifications` capability

* changelog

* Use `supportsConsumableNotifications` helper everywhere

* Redundant imports

* gundeck: Fail unit tests when gundeck doesn't push to cells

Also create pushes with no recipients, as that is valid too in case an event is
only meant for cells.

* gundeck: Send events to cells even if they have no rabbitmq recipients (broken earlier in the same PR)
If we want to do this, we also need to version-control the response of
`GET /v8/feature-configs` (can be done) and events (can also be done,
but we're not currently doing that anywhere).
Signed-off-by: Emmanuel Ferdman <emmanuelferdman@gmail.com>
…tial sync (#4631)

* cannon: Replace message count mechanism with detecting the end of initial sync

The message count recieved in the queue info gotten as response of declaring the
queue may include some expired messages which have not yet made it to the head
of the queue. This makes the message count mechanism useless to the clients for
detecting the end of initial sync.

This commit detects end of initial sync based on sending a transient
notification in the queue. If we recieve this notification back, it would mean
that the queue is empty and the initial sync is complete.

The timing of sending this notification must be carefully chosen, it is sent in
one of these two conditions:

  1. If the message count in the queue info is 0, the queue must be empty as the
  expired messages are already considered expired when they reach the head of
  the queue. So its a good time to publish our end-of-initial-sync notification.
  If the queue is indeed empty we'll recieve it and forward it to the client,
  letting it know that it can consider itself up to date.

  2. If number of unacked messages becomes 0 right after recieving an
  acknowledgement and the initial sync hasn't already completed, this could mean
  either the queue is empty or there is some delay in receiving the next message
  from RabbitMQ. Here we publish our end-of-initial-sync notification. If there
  was a delay in receiving the next message from RabbitMQ, the consumer thread
  will increase the count for unacked messages and we'll get another opportunity
  to check this. Otherwise, the consumer thread will recieve this
  end-of-initial-sync notification and forward it to the client.

* changelog

* cannon: Slightly optimize end-of-initial-sync detection

* cannon: Use atomicModifyIORef' instead of modifyIORef'

The IORef is being manipulated from two different threads, so it should use the
atomic version of the function.

* cannon: Undo small part of optimisation

Description in the comment

* use latest unacked delivery tag instead of a counter

* insert sync message on websocket connection

* charts/cannon: Allow configuring rabbitMsMaxConnections and rabbitMqMaxChannels

These option were implemented previously but we forgot to add them in the helm
chart.

* cannon: Queue synchronization message as Persistent

Use configurable TTL with default value set to 28 days like for normal
notifications.

* cannon: Only add sync_marker to API version v9

* integration: Rename testQosLimit to testPrefetchCount

* changelog: config opt for cannon

* integration: createEventsWebSocketWitSync creates a random marker

Instead of expecting it to be passed in

---------

Co-authored-by: Leif Battermann <leif.battermann@wire.com>
* Move most API changes to V10

V9 API will only contain changes needed for clients to enable the
consumable-notifications capability.

* Rename ConversationV8 -> ConversationV9

* Leftover renames

* integrations: Use v10 by default

* integrations: Use API v8 for federation-v2

* integrations: Fix tests broken due to hardcoding
…out conversation update to users not in the conversation (#4644)
It's payload differs between the versions (incompatibly): We render the
backend_url differently for versions up to V9 and from V10.

This is a fix to an illegal change of the ratified schema versions. These
versions are now in their original state, again.
…ocation (#4646)

* integration-setup: Use ECR instead of docker hub for bitnami images

Docker hub has very strict rate limits, this causes issues when running
flake-news.

* integration-setup: Allocate more CPU for rabbitmq, postgresql and federator

All are being throttled during test runs
akshaymankar and others added 7 commits July 10, 2025 12:03
… with RabbitMQ is broken (#4652)

* background-worker/dead-user-notifs-watcher: Reconnect when connection with RabbitMQ is broken

* integration: Add test to check if dead user notifications watcher reconnects with RabbitMQ

* background-worker: Rename BackendDeadUserNotificationWatcher -> DeadUserNotificationWatcher

* background-worker: Move cleanup code for BackendNotificationPusher in its module

* background-worker: Use named loggers for different workers

* Give names to all RabbitMQ connections

* background-worker: Expose worker running status in metrics

* changelog

* background-worker: Report workers not running until they actually start
* add section on self-deleting messages into docs

* change documentation to use internal galley endpoints

* add changelog section for documentation on selfDeletingMessages

* Update docs/src/understand/team-feature-settings.md

change how we refer to team settings.

---------

Co-authored-by: Julia Longtin <julia.longtin@wire.com>
)

Only logs in if the credentials are provided.
* Inline receiveDataMessage from websockets library

* Track activity of websocket connection

* Handle inactivity

* Add timeouts to cannon options

* Test web socket timeout

* Properly close web socket on timeout

* Fix asyncs in rabbitmq websocket app

* Add CHANGELOG entry

* Add docs for websocket inactivity options

* Regenerate nix packages

* Lint

* Change status code

Co-authored-by: Akshay Mankar <akshay@wire.com>

---------

Co-authored-by: Akshay Mankar <akshay@wire.com>
@zebot
zebot requested review from a team as code owners July 11, 2025 14:26
@zebot zebot added the ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist label Jul 11, 2025
@akshaymankar
akshaymankar merged commit c29f652 into master Jul 14, 2025
8 checks passed
@akshaymankar
akshaymankar deleted the release_2025-07-11_14_25 branch July 14, 2025 13:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants