Commit Graph

139 Commits

Author SHA1 Message Date
Yat Ho
6a6b0dbcc5 ci: run clang-tidy-libtransmission for app/test-only changes (#8612)
* ci: run `clang-tidy-libtransmission` for app/test-only changes

* fix: fix another new clang-tidy regression

---------

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2026-02-24 23:49:55 -06:00
Yat Ho
a420577587 ci: use gtkmm4 for FreeBSD (#8580) 2026-02-20 07:57:28 -06:00
Yat Ho
f495047a33 ci(qt): run clang-tidy on Linux (#8557)
* ci(qt): run clang-tidy

* chore(qt): silence warnings
2026-02-19 09:30:05 -06:00
Yat Ho
642c12cbb5 ci: speed up by using native arm64 runners (#8571)
* ci: run x86_64 only for BSD

* ci: native arm64 runner
2026-02-19 00:20:43 -06:00
Charles Kerr
1b1ccc08dc ci: run fewer redundant jobs (#8543)
* ci: move crypto tests into their own matrix

they do not need to run on both bsd 14 and bsd 15

* ci: remove matrix for the DISABLE_UTP test

the "enabled" half of the matrix is redundant with other CI runs

* ci: cancel prior CI jobs when new commit(s) are pushed

* ci: futureproof fedora matrix by using aliases fedora-latest, fedora-rawhide

* ci: remove the -from-tarball job suffixes

* ci: fold the debian-11 job into the debian job matrix

* fixup! ci: fold the debian-11 job into the debian job matrix

fix: sh->bash mismatch

* ci: always use the default version of freebsd, openbsd

* ci: always use the default version of netbsd

* ci: always use the default version of dragonflybsd

* ci: remove unused fail-fast setting
2026-02-18 14:40:46 -06:00
Yat Ho
6abccce6c6 ci: delete leftover ENABLE_DEPRECATED references (#8535) 2026-02-17 18:00:10 -06:00
Yat Ho
fc309238ce ci(gtk): run clang-tidy (#8251)
* ci: infra for parallel clang-tidy runs

* ci(gtk): run clang-tidy

* chore(gtk): silence warnings

* code review: use constexpr auto

* code review: use constants over magic numbers in Utils.cc

* code review: use `std::ignore` to ignore return value

* code review: add back visibility labels that indicated sections

* fix: wrap each command argument in single quotes
2026-02-17 17:53:01 -06:00
Charles Kerr
ae332d575c Revert "ci: run big-endian tests in GitHub Actions (#8539)" (#8548)
This reverts commit 7eeb78174c.
2026-02-17 09:36:16 -06:00
Charles Kerr
7eeb78174c ci: run big-endian tests in GitHub Actions (#8539)
* ci: run big-endian tests in GitHub Actions

* ci: use debian:stable-slim and ubuntu-latest for big-endian tests

this way we will not have to periodically bump them

* ci: do not use -j nproc in qemu

* ci: cross-compile and then run the big-endian tests in qemu
2026-02-16 21:51:38 -06:00
Yat Ho
1e14cc605b refactor: migrate to Madler's crc32c (#8475) 2026-02-15 15:16:01 -06:00
Yat Ho
3f9d3b945b fix(ci): install NetBSD X Window binary sets when building gtk (#8503) 2026-02-14 17:20:47 -06:00
Yat Ho
a00a8ba511 ci: include .github/actions in check-diffs (#8482) 2026-02-13 13:55:11 -06:00
Yat Ho
c7ea8d688e ci(GHA): bsd (#7901)
* ci: add freebsd

* ci: add openbsd

* ci: add netbsd

* ci: add dragonflybsd

* ci: don't run arm64 bsd runners in pull requests
2026-02-13 09:44:53 -06:00
Yat Ho
93a65c9c66 ci: test gtk4 where available (#8459)
* ci: test gtk4 where available

* ci: bump Fedora versions
2026-02-13 08:43:22 -06:00
Yat Ho
6943855f7d fixup! ci(app): run clang-tidy (#8442) (#8460) 2026-02-12 11:35:58 -06:00
Yat Ho
e3853d9750 build: remove ENABLE_DEPRECATED (#8461) 2026-02-12 09:56:50 -06:00
Yat Ho
cd920a7bec ci(app): run clang-tidy (#8442)
* fix(app): clang-tidy warnings

* build(app): convert checks to list

* build(app): fix clang-tidy `HeaderFilterRegex`

* ci(app): run clang-tidy

* fix: ftbfs

* wtf
2026-02-12 00:23:00 -06:00
Yat Ho
5320fc1a49 ci: workaround system header warnings on macOS (#8384) 2026-02-05 22:31:33 -06:00
Yat Ho
39803eb0f0 build: support building with system sigslot (#8371) 2026-02-04 22:46:16 -06:00
Charles Kerr
90402fd97b refactor: move StatsMode to tr::app (#8330)
* refactor: add StatsMode to libtransmission-app

* test: add display-mode unit tests

* feat: add apicompat for StatsMode

* refactor: use StatsMode in Qt client

* refactor: add template method for gtr_set_pref()

* refactor: use StatsMode in GTK client

* ci: use the all-tests alias instead of hardcoding tests

* ci: copy runtime DLLS into test output directory for Windows test binaries
2026-02-03 09:52:49 -06:00
Yat Ho
e38ace6b0f fix: -DENABLE_UTP=OFF FTBFS (#8301) 2026-01-31 12:53:58 -06:00
Yat Ho
3d09c4df4e build: support building with system fast_float (#8206) 2026-01-30 15:20:21 -06:00
Yat Ho
754b295d2a chore(core, tests): fix modernize-loop-convert (#8235)
* chore(core, tests): fix `modernize-loop-convert`

* ci: bump sanitizer-tests-ubuntu to 24.04

Get newer clang to fix FTBFS.
2026-01-28 18:53:40 -06:00
Yat Ho
e687db8f26 build: support building with system utf8cpp (#8191) 2026-01-28 15:33:50 -06:00
Yat Ho
02ca4e3e2b build: support building with system gtest (#8196)
* build: support building with system gtest

* chore: include gtest headers with h-char include
2026-01-27 20:15:11 -06:00
Yat Ho
c738b9fe4d build: support building with system wide-integer (#8209) 2026-01-27 12:22:32 -06:00
Yat Ho
bcac3bd461 build: support building with system small (#8208) 2026-01-26 10:01:51 -06:00
Yat Ho
665f689e44 build: support building with system {fmt} (#8187) 2026-01-23 11:04:16 -06:00
Yat Ho
f319bc6bf6 ci: update and test more Debian versions (#8153) 2026-01-22 09:06:41 -06:00
Yat Ho
35599a2d14 ci: bump to peter-evans/create-pull-request@v8 (#8177) 2026-01-21 11:06:54 -06:00
Yat Ho
6327cc6c2e build: add USE_SYSTEM_DEFAULT option (#8176)
* build: add `USE_SYSTEM_DEFAULT` option

* ci: use `USE_SYSTEM_DEFAULT`
2026-01-21 09:08:04 -06:00
Charles Kerr
83d49b3c7f ci: add run-tests composite action (#8159)
* ci: add run-tests composite action

* fixup! ci: add run-tests composite action

send sanitizer log messages to stderr

otherwise, they will break transmission-show tests

* fixup! ci: add run-tests composite action

fix windows, alpine breakage

* fixup! ci: add run-tests composite action

fix: sanitizer logging to stderr

* fixup! ci: add run-tests composite action

disable asan leak detection on macOS: the feature is unsupported there

* fixup! refactor: extract platform detection into its own composite action (#8158)

ensure bash is installed on alpine linux
2026-01-21 08:24:46 -06:00
Yat Ho
7de5795cde ci: only setup nodejs if make-web == true (#8171) 2026-01-20 11:12:41 -06:00
Charles Kerr
6248b9d303 refactor: extract platform detection into its own composite action (#8158) 2026-01-16 12:59:30 -06:00
Charles Kerr
36ea62cf6e ci: add install-deps composite action (#8152) 2026-01-16 10:10:00 -06:00
Yat Ho
5f16036459 ci: update and test more Fedora versions (#8151) 2026-01-16 00:28:12 -06:00
Yat Ho
66a7dcff2e ci: use cmake --install (#8149) 2026-01-15 22:49:00 -06:00
Yat Ho
c0c3700ec2 ci: remove redundant QT_QPA_PLATFORM definitions (#8150) 2026-01-15 22:15:44 -06:00
Yat Ho
6ba8ec7e6f ci: bump actions and deps (#8141)
* ci: bump to `actions/checkout@v6`

* ci: bump to `actions/setup-node@v6`

* ci: bump to `actions/upload-artifact@v6`

* ci: bump to `actions/download-artifact@v7`

* ci: bump to `actions/cache@v5`

* ci: bump to `actions/setup-java@v5`

* ci: use gradle 8.13

* ci: bump to vcpkg `389d14fa0e0692f36967e9eb5499e909317644d5`

* ci: bump to `github/codeql-action@v4`

* ci: bump to ndk 27.3.13750724

* fix: define android namespace

* ci: don't pin ubuntu runner version for non-native builds
2026-01-15 14:15:47 -06:00
Charles Kerr
8dea0e863f fix: several CI errors (#8124)
* Revert "build(cmake): support building with (almost) all system 3rd-party libraries (#7554)"

This reverts commit a89ca4f2c9.

* fixup! refactor: use a map of getters, setters for `session_get` and `session_set` properties (#8024)

fix: capture-by-reference error in session_accessors()

* fix: 'Qt depends on a UTF-8 locale' CI warning

* fix: 'qt.qpa.xcb: could not connect to display' CI error
2026-01-13 13:16:40 -06:00
Yat Ho
a89ca4f2c9 build(cmake): support building with (almost) all system 3rd-party libraries (#7554)
* build: overhaul tr_add_external_auto_library

* build: use package-provided CMake config file libevent

* build: use package-provided CMake config file miniupnpc

* build: update libutp find module

* build: make LIBNAME an optional parameter

* build: use package-provided CMake config file libdeflate

* build: update libb64 find module

* build: update libnatpmp find module

* build: update libpsl find module

* build: support system fast_float library

* chore: reformat long brew commands

* build: support system fmt library

* build: support system rapidjson library

* build: support system small library

* build: support system library utf8cpp

* build: support system library WideInteger

* build: support system library gtest

* fix: incorrectly labeled test suites

* build: remove unused parameters from tr_add_external_auto_library

* build: update crc32c cmake script

* fix: dht system library

* fix: add libutp interface target

* code review: move TrGtest.cmake

* code review: move tr_get_fmt_version into Findfmt.cmake

* code review: use option() for gtest

* code review: move find_package(PkgConfig) out of loop

* build: delete FindCrc32c.cmake

Impossible to parse package version from distributed source files.

* code review: Finddht.cmake

* build: delete FindFastFloat.cmake

Impossible to parse package version from distributed source files.

* code review: Findfmt.cmake

* code review: Findlibb64.cmake

* code review: Findlibdeflate.cmake

* code review: Findlibevent.cmake

* code review: Findlibnatpmp.cmake

* code review: Findlibpsl.cmake

* code review: Findlibutp.cmake

* code review: Findlibminiupnpc.cmake

* code review: FindRapidJSON.cmake

* build: delete FindSmall.cmake

Impossible to parse package version from distributed source files.

* build: only accept cmake config package for utf8cpp

Impossible to parse package version from distributed source files.

* build: delete FindWideInteger.cmake

Impossible to parse package version from distributed source files.

* build: add `USE_SYSTEM_DEFAULT`

* ci: drop Fedora 40 and adopt Fedora 43

* ci: try to silence system header warnings

* ci: use `cmake --install`

* Revert "build: only accept cmake config package for utf8cpp"

This reverts commit 2158d631fd.

* build: harden utf8cpp find module

* chore: bump wide-integer

Pick up bf9398f9da and bcc726a30f

* refactor: gtest should be included with angled brackets

Now that gtest is built as a system library, it should be included with angled brackets instead of quotes.

* code review: fixup libutp variables before `find_package_handle_standard_args`

* code review: define `WIDE_INTEGER_HAS_LIMB_TYPE_UINT64` only for targets depending on WideInteger

* chore: bump wide-integer

Pickup 4b2258acac so that wide-integer tests won't run in Transmission project.
2026-01-12 09:04:47 -06:00
Charles Kerr
d177f9f903 test: add unit tests for Prefs (#8112)
* fix: hicpp-use-auto,modernize-use-auto

* refactor: make Prefs::getKey() a static method

refactor: make Prefs::isCore() a static method

refactor: make Prefs::type() a static method

* refactor: Application takes a Prefs& arg, not a std::unique_ptr<Prefs> arg

* fix: bugprone-exception-escape

save settings by calling prefs.save() from main()

* refactor: load settings by calling prefs.load() from main()

* refactor: use preferred declaration order in Prefs

* fixup! fix: bugprone-exception-escape

* refactor: add Prefs::current_values()

* refactor: clean up namespace use in Prefs.cc

* feat: add QString, QDateTime serializers

* test: add scaffolding for testing Qt code

test: add tests for Prefs

* refactor: remove unused #includes

* build: add clang-tidy rules to tests/qt/

* refactor: clean up the new test code a little

* chore: add missing copyright statement

* ci: ensure Qt6Test is installed

build: check for QTest when ENABLE_TESTS + ENABLE_QT are ON

* fixup! feat: add QString, QDateTime serializers

* fix: Wswitch warning

* build: do not disable tests in release/windows/build-qt5.psl, build-qt6.psl

* ci: set QT_QPA_PLATFORM for running new Qt tests

* test: build cleanly in Qt 5.15

* fixup! fixup! feat: add QString, QDateTime serializers

fix QDateTime serializer on macOS

* fixup! ci: set QT_QPA_PLATFORM for running new Qt tests

install xcb-util-cursor on alpine
2026-01-11 19:23:00 -06:00
Yat Ho
8a0d5f0648 fix(mac): copyright notices (#8068)
* chore(mac): fix copyright year

* chore(mac): use em dash in copyright notice

* fix(ci): check for emdash in copyright notice

* fix(ci): process QuickLookExtension plist files
2026-01-05 21:47:26 -05:00
namoen0301
398fe70b02 GHA CI: Add support for Windows arm64 (#7758) 2025-12-31 06:25:27 +00:00
Yat Ho
2ee411d222 ci: set ENABLE_TESTS to make-tests on alpine (#7914) 2025-12-10 11:48:48 -06:00
Charles Kerr
4bbc2e9c42 ci: use clang for alpine-musl build (#7879) 2025-12-05 18:26:35 -06:00
Yat Ho
9dd9aab902 build: bump clang tools to 20 (#7573)
* build: bump to clang-format-20

* build: bump to clang-tidy-20

* chore: revert edc59ba5d8
2025-12-01 23:18:02 -06:00
Yat Ho
78dd0242cf ci: disable fail-fast for new macOS runners (#7857) 2025-11-26 11:26:18 -06:00
Dzmitry Neviadomski
5a995aa335 Update macos actions (#7845)
* ci: move macos-13 actions to macos-14

We have some GitHub Actions which we try to run on the oldest version of
macOS available. That's currently macos-13, but GitHub is deprecating it:

> This is a scheduled macos-13 brownout.
> The macOS-13 based runner images > are being deprecated. For more details,
> see https://github.com/actions/runner-images/issues/13046.

We last bumped this from macos-12 to macos-13 in 43f5ca8 #7275

* ci: do not specify architectures in macOS CI builds

GitHub has is phasing out su pport for macOS x86_64 runners

* ci: fold the macos-X-from-tarball jobs into a single job

* ci: fold macos-26 and macos-14 jobs into a single job

* Use macos-15-intel runners instead of macos-14 (arm64).

If we test compilation two times, at least do it on different host
archs.
Also macOS 15 supports latest Xcode with macOS 26.1 SDK.

* Make job names more meaningful

* Fix indentation in macos-xcodebuild-universal

---------

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2025-11-25 16:52:34 -06:00
Dzmitry Neviadomski
aa08c28cb1 Try out xcbeautify and fix missing artifacts (#7824) 2025-11-23 17:01:48 -06:00