WPB-27373: drop trial from Meeting at API version V17 - #5363
Merged
Conversation
blackheaven
force-pushed
the
gdifolco/WPB-27373-meeting-drop-trial
branch
from
July 23, 2026 07:09
213bf0d to
0daeccf
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
This PR introduces API version V18 changes for Meetings by removing the deprecated trial field from the Meeting response (while keeping legacy representations for V15鈥揤17), and wires V18 into versioned Swagger documentation.
Changes:
- Add API V18 and serve updated Meetings responses without
trialstarting at V18, while preserving V15鈥揤17 responses via legacy types/wrappers. - Add legacy Meeting response types (
MeetingLegacy,MeetingWithConversationLegacy) and Galley handler wrappers to serve older versions. - Extend versioned Swagger docs to include V18.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| services/galley/src/Galley/API/Public/Meetings.hs | Routes legacy (鈮17) vs V18 Meetings handlers under distinct named endpoints. |
| services/galley/src/Galley/API/Meetings.hs | Adds legacy handler wrappers converting trial-less Meetings into legacy response shapes. |
| services/brig/src/Brig/API/Public.hs | Adds Swagger UI generation for API version V18. |
| libs/wire-subsystems/test/unit/Wire/MeetingsSubsystem/InterpreterSpec.hs | Removes unit tests asserting trial behavior on meeting creation. |
| libs/wire-subsystems/src/Wire/MeetingsSubsystem/Interpreter.hs | Stops mapping stored trial into the public Meeting type. |
| libs/wire-api/src/Wire/API/Routes/Version.hs | Adds V18 and associated rendering/int mappings. |
| libs/wire-api/src/Wire/API/Routes/Public/Galley/Meetings.hs | Splits Meetings endpoints into legacy (V15鈥揤17) and V18 variants with updated response types. |
| libs/wire-api/src/Wire/API/Meeting.hs | Removes trial from Meeting and introduces legacy Meeting response types plus conversion helpers. |
| changelog.d/1-api-changes/wpb-27373-meeting-drop-trial | Documents the API behavior change starting at V18 and legacy behavior for V15鈥揤17. |
battermann
requested changes
Jul 23, 2026
battermann
left a comment
Contributor
There was a problem hiding this comment.
Why do you introduce v18? v17 is development version and can still be changed.
Please consider the comment on versioned ToSchema instances.
I wonder why there are no golden test?
Contributor
Author
|
Nice catch, I thought it was not bumped, on it! |
battermann
approved these changes
Jul 24, 2026
Remove the deprecated `trial` field from the `Meeting` API type starting at V18. The four Meeting-returning endpoints (create/update/get/list-meetings) are split into legacy (`@v17`, `Until 'V18`, returning MeetingLegacy) and new (`From 'V18`, trial-less Meeting) variants; the empty-body endpoints (delete + invitation mutations) are unchanged. Legacy responses hardcode `trial = false` (team meetings are never trial; continues WPB-26771). The storage layer (StoredMeeting.trial, the meetings.trial column, and the interpreter's trial computation) is deliberately left intact -- no migration or destructive column change. V18 is added as a development version; V17 remains development. - Add MeetingLegacy / MeetingWithConversationLegacy + toLegacy* converters - Add legacy handler wrappers and wire <@> order to match the route order - Stop surfacing trial in storedMeetingToMeeting - Drop the two trial unit-test cases
Address PR review feedback: - Revert the V18 API version bump; drop 'trial' from 'Meeting' at V17 (the in-development version) in place instead of introducing V18. - Replace the MeetingLegacy/MeetingWithConversationLegacy types, the legacy handler wrappers and the duplicated routes with the codebase's Versioned/ VersionedRespond combinators: a single Meeting type with version- parameterized ToSchema instances, and a single handler per endpoint shared across all version variants. - V15/V16 (released) still render the deprecated 'trial' field as false for backwards compatibility; V17 omits it. - Add roundtrip and versioning-contract golden tests for Meeting.
Add manual golden tests locking the JSON wire format for both API shapes of Meeting: the current V17 Meeting (no trial) and the legacy Versioned 'V15 Meeting (renders "trial": false). Pins the trial-versioning contract after the deprecated trial field was dropped.
testMeetingCreatePersonalUserTrial and testMeetingCreateTeamNonTrial asserted the deprecated trial field on the V17 Meeting response, which this branch removes (V15-V16 still render it false), so they failed with "trial" is missing from object. Creation still returns 201. The trial-versioning contract is locked by meetingTrialVersioningTests (Roundtrip/Aeson) and the Meeting golden tests; team create coverage remains via testMeetingCreate.
blackheaven
force-pushed
the
gdifolco/WPB-27373-meeting-drop-trial
branch
from
July 24, 2026 20:04
5c24c4c to
2da3d77
Compare
This was referenced Aug 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
https://wearezeta.atlassian.net/browse/WPB-27373
Checklist
changelog.d