Skip to content

WPB-27373: drop trial from Meeting at API version V17 - #5363

Merged
blackheaven merged 8 commits into
developfrom
gdifolco/WPB-27373-meeting-drop-trial
Jul 25, 2026
Merged

WPB-27373: drop trial from Meeting at API version V17#5363
blackheaven merged 8 commits into
developfrom
gdifolco/WPB-27373-meeting-drop-trial

Conversation

@blackheaven

Copy link
Copy Markdown
Contributor

https://wearezeta.atlassian.net/browse/WPB-27373

Checklist

  • Add a new entry in an appropriate subdirectory of changelog.d
  • Read and follow the PR guidelines

@blackheaven
blackheaven requested review from a team as code owners July 22, 2026 14:34
@zebot zebot added the ok-to-test Approved for running tests in CI, overrides not-ok-to-test if both labels exist label Jul 22, 2026
@blackheaven
blackheaven force-pushed the gdifolco/WPB-27373-meeting-drop-trial branch from 213bf0d to 0daeccf Compare July 23, 2026 07:09
@battermann
battermann requested a review from Copilot July 23, 2026 07:16

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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 trial starting 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.

Comment thread libs/wire-api/src/Wire/API/Routes/Version.hs Outdated

@battermann battermann left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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?

Comment thread libs/wire-api/src/Wire/API/Meeting.hs Outdated
@blackheaven

Copy link
Copy Markdown
Contributor Author

Nice catch, I thought it was not bumped, on it!

@blackheaven
blackheaven requested a review from battermann July 23, 2026 09:47
@blackheaven blackheaven changed the title WPB-27373: drop trial from Meeting at API version V18 WPB-27373: drop trial from Meeting at API version V17 Jul 23, 2026
@battermann
battermann requested a review from Copilot July 24, 2026 12:47

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 14 out of 14 changed files in this pull request and generated no new comments.

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
blackheaven force-pushed the gdifolco/WPB-27373-meeting-drop-trial branch from 5c24c4c to 2da3d77 Compare July 24, 2026 20:04
@blackheaven
blackheaven merged commit 1837cf8 into develop Jul 25, 2026
9 checks passed
@blackheaven
blackheaven deleted the gdifolco/WPB-27373-meeting-drop-trial branch July 25, 2026 08:05
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.

4 participants