Age | Commit message (Collapse) | Author |
|
make_array() has been introduced to cover for shortcomings on macOS and
Windows. These shortcomings are no more there, so we can just use the
standardrlibrary.
|
|
|
|
|
|
That `std::move(_data)` never worked because the passed object is
a precursor to RequestData, and RequestData always takes things by
const-ref or by value, never by rvalue. Also, explicit mention of
RequestData is unnecessary, as its constructors are implicit by design.
|
|
Also: add a Matrix chat badge.
[skip ci]
|
|
|
|
|
|
Also: build with Qt 6 first, so that it fails sooner.
|
|
Although Qt 5 didn't complain about that, you could never really use
sendToDevices() in its slot (or even invocable) capacity because
Qt's meta-type system could not handle move-only UsersToDevicesToEvents.
Qt 6 is more stringent; the build fails at trying to instantiate
QMetaType for that type (with a rather unhelpful error message thrown
by Clang, and more helpful but very verbose diagnostic from MSVC)
because it does not provide a copy constructor.
However, sendToDevice doesn't really need to have full-blown events
in that parameter; just the content of the event is equally fine.
This commit does exactly that: replaces UsersToDevicesToEvents with
UsersToDevicesToContent that contains QJsonObject's instead of
EventPtr's. The code around is updated accordingly.
Also: factor out the key event JSON creation from
makeMessageEventForSessionKey() because it's the same JSON for each
target device; the function therefore is called encryptSessionKeyEvent()
now.
|
|
- CodeQL analysis was executed on every job that ran Clang, humping
the total execution time by 10+ minutes alone. Now it only runs on
a single job.
- libolm is no more compiled but installed from the repo, along with
libssl-dev; and both are installed in the same transaction as ninja
and valgrind, shaving out one apt transaction
- One more Windows job has been added to test building with Qt 6.3.1
on that OS.
- Qt version is pushed earlier in the job matrix, as it becomes more
significant than the compiler for a given platform.
|
|
Qt 6 builds are allowed to fail for now.
|
|
Also, use MSVC 2019 on Windows.
|
|
Its platform has been lagging behind most of the time; but more
importantly, the value from its analysis is almost non-existent, with
just one considerable issue being identified over the recent year if not
more. These days we have clang-tidy and Sonar that are much better at
static code analysis.
[skip ci]
|
|
[skip ci]
|
|
CONTRIBUTING.md got bitrotten in quite a few places.
[skip ci]
|
|
|
|
It takes well over an hour to build the whole lineup for now; while
the single right fix for that is making quotest capable of running in
parallel, a few GCC jobs can be safely dropped for now (and we'll see
if they should be brought back when parallel quotest unleashes the CI).
|
|
...meaning, clients have to compile in C++20 mode too from now.
|
|
|
|
New:
- refresh tokens support (changes in login.* and registration.*;
RefreshJob);
- GetRelatingEvents[WithRelType[AndEventType]]Job
Changed space_hierarchy.*:
- childrenState is of type StateEvents now; limit and maxDepth are
(omittable) integers, not doubles.
- no more unused `stripped_state.h` file inclusion.
|
|
|
|
|
|
|
|
The latest GTAD no more emits public_rooms_chunk.h
(public_rooms_response.h already has the same definition), and skips on
PublicRoomsResponse structure that is never used.
|
|
|
|
|
|
This reimplements #558 in a more reliable way. Deconstruction of
AccountRegistry may (or may not, yay for static initialisation) occur
after deconstruction of QCoreApplication, in which case an attempt
to determine the directory for the state fails because it depends on
the application object existence.
|
|
Add GTAD as a submodule
|
|
Also: make all cloning for update-api shallow, for optimisation.
|
|
Code generation in libQuotient is pretty sensitive to GTAD version
(or even a particular commit at times); so it makes sense to have GTAD
as a submodule in order to control the revision CI uses.
(amended with the GTAD commit that uses the right yaml-cpp commit)
|
|
This only updates 3 files affected by the change in the previous commit.
|
|
Also: drop inlining PublicRoomResponse by the name because it's already
inlined by $ref before that. This configuration needs the latest GTAD
(revision 51c53ed3) to work correctly; earlier GTAD will produce FTBFS
code.
|
|
|
|
|
|
deferring until sending event
|
|
|
|
|
|
|
|
|
|
|
|
There was a fairly nasty change where `from` parameter in /messages
became optional and that led to two QString parameters (`from` and `dir)
switching positions. Because they have the same type, the problem only
shows at runtime. This commit fixes Room::getPreviousContent() to pass
the parameters at right positions; client code won't feel anything
(unless it uses GetRoomEventsJob directly).
|
|
This is mainly to plug the definition of a string-to-variant map
for one-time keys (see
https://spec.matrix.org/v1.2/client-server-api/#key-algorithms) into
the CS API generated code (see the "shortcut OneTimeKeys" commit for
gtad.yaml); but along with it came considerable streamlining of code
in qolmaccount.cpp. Using std::variant to store that map also warranted
converters.h to gain support for that type (even wider than toJson()
that is already in dev - a non-trivial merge from dev is in order).
|
|
|
|
This requires OneTimeKeys in keys.yaml to be marked as such (done in
quotient-im/matrix-spec but it's not there in matrix-org/matrix-spec).
|
|
Also: use quotient-im/matrix-spec main branch again, now that it has
adjusted definitions; drop un(der)used partials
|
|
|
|
On Debug builds this would lead to an assertion failure inside Qt.
|
|
|
|
QtKeychain master suffers from
https://github.com/frankosterfeld/qtkeychain/issues/213.
|
|
|