1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00
Commit Graph

8056 Commits

Author SHA1 Message Date
Anthony Bilinski
2b41a06b55
feat(Settings): Add system for versioning and upgrading Settings
Similar to how History handles SCHEMA_VERSION. Run separately on global and
personal settings, since some state in global, and personal settings can’t be
done globally since they require the passkey.

Restrict a user from downgrading past the saved settings version, due to
possible compatibility breaks or old qTox versions re-introducing corrupt state
that was already healed.

Pass in new profile state for personal settings rather than relying on settings
file presence because personal settings can be stored in either the personal
settings file or global settings file. This was introduced in
aea9eea8a4 when personal settings were first
moved to their own file.
2022-03-06 06:00:13 -08:00
Anthony Bilinski
7083a7d9bd
chore(CI): Fix commit message check range
It was reversed before which works on normal PRs, but checks commits on
the destination branch when merging two upstream branches.
2022-03-05 18:19:05 -08:00
Anthony Bilinski
7a3474bf55
feat(chatlog): Add support for ed2k file links 2022-03-05 01:00:08 -08:00
Anthony Bilinski
3c682abc69
fix(docs): Add brew prefix to macOS build instructions
Update brew's qt5 to qt@5, following brew naming deprecation.
2022-03-04 22:04:26 -08:00
Anthony Bilinski
8a7461fc16
chore(CI): Run tests in parallel
Faster, with the bonus of catching unexpected dependencies between tests.
2022-03-03 12:09:50 -08:00
Anthony Bilinski
4fcc2251f4
chore(CI): Enable tests in macOS CI build 2022-03-03 12:09:50 -08:00
Anthony Bilinski
3170dd8d62
chore(CI): Don't try to deploy from forks
Gitstats and doxygen deploys require deploy keys to update qTox's website.
Don't try to do this from forks, since it will always fail.
2022-03-03 03:59:12 -08:00
Anthony Bilinski
bc751c8e1c
refactor(test): Move mocks into their own library
Avoid re-compiling sources for each test that uses them.
2022-03-02 23:30:04 -08:00
Anthony Bilinski
40846f886c
refactor(test): Deduplicate MockCoreSettings
Also add Mock sources to all tests, to handle tests that require both project
resources and mock without complicating auto_test
2022-03-02 23:30:04 -08:00
Anthony Bilinski
12b3b05217
test: Fix signal spy mixup for core_online_test
* Fix statusMessage -> userName mixup in change_status_message
* Create named constant for sleep interval waiting for friend's message to arrive
* Elaborate on comments around the sleeps a bit more, I was confused by them still
* Increase bootstrap timeout to 120s, it expired in CI at 65s
2022-03-02 23:30:04 -08:00
sudden6
e2d0472a9f
test: add more online test 2022-03-02 23:30:04 -08:00
Anthony Bilinski
e426994e5f
test: Fix issues with core_online_test
* Move static function variables from core to be class member variables,
  allowing two Core instances to run at once
* Replace deprecated QLatin1Literal with QLatin1String
* qvariant_cast slot argument to ToxPk, rather than trying to convert variant
  to bytes directly which is invalid
* Fix "wait for both to come online" accidentally waiting for Bob twice
* Move all sleeps to QTRY_VERIFY_WITH_TIMEOUT to speed up test
* Update settings* -> settings& based on Core API change
* Update Mock to match API change of IBootstrapListGenerator
* Register metatype of ToxPk, uint32_t, Status::Status
* Correct Alice's spy looking for Bob's pk
2022-03-02 23:30:04 -08:00
sudden6
54e72aa73d
test: add test case for real world Core usage 2022-03-02 23:30:03 -08:00
Anthony Bilinski
e18118c1bc
chore(CI): Don't try to upload installer on debug builds
The installer is only built on release builds. We used to ignore failure to
upload prior to 5fcf86b521. We stopped ignoring
because a07ab89cc8 tried to make our upload
targetted, but it only resolved the issue for the zip, not the installer.
2022-03-02 21:58:57 -08:00
Anthony Bilinski
714d8ec62b
Merge pull request #6502
Devan Carpenter (1):
      feat(chatlog): Add gemini:// to hyperlink regex
2022-03-02 13:08:07 -08:00
Devan Carpenter
355dfb7a7f feat(chatlog): Add gemini:// to hyperlink regex 2022-03-02 20:19:42 +00:00
Anthony Bilinski
bad2e0aba9 chore(CI): Fix appimage missing rename for nightly zsync upload 2022-02-28 20:38:36 -08:00
Anthony Bilinski
ca4d4b8a98
chore(CI): Revert reversal of 64-bit and 32-bit DLL search paths
Instroduced in 80a0a4ae62, caught in post-merge
review here: https://github.com/qTox/qTox/pull/6483/files#r815294041
2022-02-26 09:40:46 -08:00
sudden6
cd8af735fc
fix: don't link emoji resources into targets that don't need them
The emoji resouce file is quite big, so link it only when really needed.
2022-02-25 23:22:28 +01:00
Anthony Bilinski
aeb8a9aca1
refactor(bootstrap): Use std::shuffle instead of custom not fully random logic
Simplifies logic and naming.
2022-02-24 16:28:59 -08:00
Anthony Bilinski
bf6d01598f
feat(CI): Run AddressSanitizer on Fedora build
Keep disabled for jobs that produce artifacts to not affect user performance.
Keep disabled for other distros that don't produce artifacts as well since other versions of Qt fail themselves in e.g. TestSmileyPack's QGuiApplication usage.

Don't enable thread sanitizer yet due to many Qt internal errors.

This should still give us a significant increase in qTox coverage, even if we have low platform coverage.
2022-02-24 07:28:11 -08:00
Anthony Bilinski
25b70761e5
chore(CI): Correct doxygen deploy access 2022-02-24 05:51:27 -08:00
Anthony Bilinski
0cb222c056
feat(i18n): Handle English plural forms in translations
Special case that only needs plurals translated.
2022-02-23 21:12:16 -08:00
Anthony Bilinski
b05c069dfe
fix(appimage): Patch snore to enable notifications in AppImage
Patch for other builds as well since the patch is harmless and it simplifies
the build script.

Fix #6411
2022-02-23 21:11:42 -08:00
Anthony Bilinski
f81c9bca29
chore(CI): Don't overwrite nightly release name and description
Allows maintainers to write a user friendly message rather than just having the
last commit desription.
2022-02-23 21:11:02 -08:00
Anthony Bilinski
b24610fc62
chore(CI): Revert nightly AppImage name to "nightly"
Changed in 41a555def9, I think by accident.
Causes our release uploader to no longer replace the old version, instead
adding a new version each time it runs.

Keeping named overwrite instead of removing release artifacts and
uploading new ones, since removing old artifacts would require a new job
that all other jobs depend on to avoid re-removing, and would also
create a gap while CI is running run where no artifact is available.

We could upload artifacts using actions/upload-artifact in each job then
download them at the end and update the release at that point too, if we
really want to keep sha name in the nightly release artifacts. I don't
see much value of having the sha in the filename though.
2022-02-23 21:11:02 -08:00
Anthony Bilinski
d3995bc87e
fix(doxygen): Re-enable deploying of doxygen to qtox.github.io
Hasn't been run since the travis days.

Now managed through a deploy key rather than an access token to limit scope to
a single repo. Private key is stored in qTox/qTox as a repository secret, and
the public portion is saved to qTox/doxygen as a deploy key.
2022-02-23 21:10:32 -08:00
Anthony Bilinski
e5d138f79c
chore(CI): Move gitstats and docs to ubuntu-latest
They're not platform dependent and the rest of our jobs run on ubuntu-latest.
Might as well move this one over so we don't have to remember to update it.

gitstats is not available in repo any longer, so install manually.
2022-02-23 21:10:03 -08:00
Anthony Bilinski
a1f19f44e2
chore(CI): Fix deploy-gitsats directory and target URI 2022-02-23 21:10:03 -08:00
Anthony Bilinski
0df98ce64f
fix(group): Change join leave message setting default to false
Matches the similar status change notification for 1:1 chats, and was the
original plan for this feature.
2022-02-23 04:48:19 -08:00
Anthony Bilinski
6f9123705a
fix(core): Fix logic error retrieving TCP port
Introduced in e7e30ada8c
2022-02-21 05:19:03 -08:00
Anthony Bilinski
4f798e9742
chore(docs): Update translation workflow
Weblate settings are changed to rebase commits onto our master continuously. All
that's needed to pull in translations now is to pull, rather than locking, using
a custom script, and resetting the Weblate repo.

Committing translatable strings is now done on every commit and checked on PR,
so that is no longer part of the import process.

Commits on Weblate are squashed using the "squash git commits" addon. It is
configurable to squash all commits into one and add co-author commit messages,
like we do now. Instead I've set it to just squash commits from a single author
for clearer attribution.
2022-02-21 03:32:48 -08:00
Anthony Bilinski
7aa8d7178e
refactor(bootstrap): Store public key as ToxPk rather than QString 2022-02-21 02:51:41 -08:00
Anthony Bilinski
e7e30ada8c
fix(core): Use node's TCP ports when connecting to TCP relay
Allows connecting to TCP relays that aren't acting as bootstrap nodes, and
connecting to TCP relays that have different or additional TCP ports compared
to UDP ports.
2022-02-21 02:51:34 -08:00
Anthony Bilinski
3d36cf47e8
refactor(bootstrap): Rename UDP port from port to udpPort 2022-02-21 02:49:23 -08:00
Anthony Bilinski
2f92a5f2f0
fix(CI): Remove "setup" from Windows zip file name
Matches previous behaviour, and the zips don't do any installation.
2022-02-20 18:15:52 -08:00
Anthony Bilinski
c726b9ce23
fix(CI): Don't upload Windows setup exe to nightly release
Matches previous behaviour from travis. Avoids spreading a possibly buggy
nightly around a tester's system.
2022-02-20 18:15:49 -08:00
Anthony Bilinski
de924cfdc7
feat(chatlog): Disable join and leave system messages based on setting 2022-02-20 18:15:00 -08:00
Anthony Bilinski
069ab92fd0
feat(UI): Add UI For controlling group join and leave system messages setting 2022-02-20 18:14:55 -08:00
Anthony Bilinski
1be5b99d17
feat(Settings): Add setting for hiding group join and leave system messages
Messages can become spammy is long lasting quiet groups, drowning out real user
messages
2022-02-20 17:32:23 -08:00
Anthony Bilinski
e5df648e1a
refactor(settings): Use IGroupSettings in GroupChatForm
Move interface signals from Settings to be declared by the interface itself
2022-02-20 17:32:23 -08:00
Anthony Bilinski
0adf4a00f3
refactor(chatform): Remove useless static cast 2022-02-20 17:32:23 -08:00
Anthony Bilinski
18643da271
refactor(chatform): Pass Settings to GroupChatForm instead of calling getInstance()
One small step away from propagating singleton use
2022-02-20 17:32:22 -08:00
Anthony Bilinski
939bf6a2c1
chore(CI): Re-remove GH action if-no-files found conditions
Was accidentally reintroduced in c85e24e7db after
being removed in 5fcf86b521
2022-02-20 17:30:19 -08:00
Anthony Bilinski
3180d23ee2
fix(core): Don't apply Windows file transfer rename on other platforms
Filename cleaning was originally introduced for Windows
https://github.com/qTox/qTox/issues/1304. It's unneeded on other platforms, so
leave file names as they're sent there.

Fix #5242
2022-02-20 17:14:10 -08:00
Anthony Bilinski
11450afa81
feat(i18n): Check for new translatable strings on every PR
We've only been updating translatable strings for Weblate rarely based on
MAINTAINING.md#translations-from-weblate. Since Weblate pulls in commits live
from qTox, we should generate the translatable strings as soon as they're
introduced so that translators can not waste time translating deleted strings,
and can spend time translating new strings.

We can't auto-commit the changes in CI due to our requirement of signed
commits, so just fail CI if any new strings are found.

Move it into its own job, it doesn't depend on docker or the build, and doesn't need to run for debug/release/full/minimal
2022-02-20 17:04:05 -08:00
Anthony Bilinski
5f8704cf0f
chore(i18n): Update translation files for Weblate
For some reason, re-running update-translation-files.sh right on
1031b315b9 which it generates more new changes.
Rerunning further doesn't generate yet more changes.
2022-02-20 17:04:05 -08:00
Anthony Bilinski
345e33b531
chore(docs): Remove generic git instructions from docs
General version control, git, or github instructions can be found in abundance
elsewhere. Keep qTox docs more focused on qTox.
2022-02-20 16:29:40 -08:00
Anthony Bilinski
9ac44ee09c
fix(history): Replace invalid Tox ID saved in peers table with Tox public key
Due to an old bug that has since be fixed, old history dbs can contain both a
Tox ID version and Tox public key version of the same friend, and always
themselves. They could have n more duplicates if they've updated their nospam.

Tox ID is an invalid length to be stored in strongly typed ToxPk, and in
general having multiple entries belonging to the same user effectively violates
our UNIQUE constraint on public_key.

Introduced in 7168d2b858

Fix #6485
2022-02-20 14:27:33 -08:00
Anthony Bilinski
80a0a4ae62
fix(CI): Correct Wine lib path for winehq manual install
Install path changed in 79feb19d7d,
but paths were not updated to match.

Fix #6481
2022-02-20 14:24:08 -08:00