quotient-im / libQuotient

A Qt library to write cross-platform clients for Matrix
https://quotient-im.github.io/libQuotient/
GNU Lesser General Public License v2.1
132 stars 56 forks source link

Matrix 1.10 #736

Closed KitsuneRal closed 4 months ago

KitsuneRal commented 5 months ago

The Quotient soft fork of Matrix spec has been too hastily upgraded to Matrix 1.10 that introduced local $ref objects in API descriptions, which were not supported by GTAD. It turned out to be relatively straightforward to add this support on GTAD side, so here it goes. Not many significant changes, actually:

Closes #731.

sonarcloud[bot] commented 5 months ago

Quality Gate Failed Quality Gate failed

Failed conditions
8.4% Duplication on New Code (required ≤ 3%)

See analysis details on SonarCloud

TobiasFella commented 5 months ago

generated CS API files are not covered by API/ABI portability guarantees

Do we have that written down somewhere? I'd like to point distros at it, when necessary

TobiasFella commented 5 months ago

I'm afraid we are using ChildRoomsChunk by name...

Could we delay that specific change until 0.9?

KitsuneRal commented 5 months ago

generated CS API files are not covered by API/ABI portability guarantees

Do we have that written down somewhere? I'd like to point distros at it, when necessary

Errr, looks like we don't. I was under impression that I've put some lines in README.md or at least CONTRIBUTING.md but I don't seem to find that. Anyway, if you use it, I think I can do the reverse-rename just by altering GTAD configuration; will follow up in this PR.

KitsuneRal commented 5 months ago

ChildRoomsChunk is back; the *ValidationData piece still alters the API, formally; but I believe it's not in use so far. But the fact that API/ABI guarantees are implied for these files rather complicates matters. I think I can still roll out a backwards-compatible version of this but it's a bummer.

KitsuneRal commented 5 months ago

Heh, apparently I cannot; some changes involve adding arguments (even though with default values) to functions, and that constitutes ABI breakage. Guess I'll have to pin an older version of Matrix spec for libQuotient 0.8.x instead; or just entirely disable automatic API generation in the current stable version.

KitsuneRal commented 5 months ago

Given that we're not pushing it for 0.8 any more, SpaceHierarchyRoomsChunk is back here again.