Commit Graph

31 Commits

Author SHA1 Message Date
467222d0ca fix(ui,db): harden NULL handling, fix CWE-134, optimize iterations
Some checks failed
CI Code / Code Coverage (push) Failing after 10m34s
CI Code / Check spelling (push) Failing after 10m47s
CI Code / Check coding style (push) Failing after 11m4s
CI Code / Linux (ubuntu) (push) Failing after 11m19s
CI Code / Linux (debian) (push) Failing after 11m28s
CI Code / Linux (arch) (push) Failing after 11m38s
security(CWE-134): fix format string injections + add CI check
fix(ui): subwindow lifecycle, newwin/newpad guards, fallback timestamps
fix(db): sqlite cleanup on failures, sqlite3_close_v2
fix(xmpp): queued_messages loop, barejid leak
perf(core): g_hash_table_iter_init instead of g_hash_table_get_keys
refactor(ui): CLAMP macro in _check_subwin_width
test: XEP-0012 and XEP-0045 functional tests

Author: jabber.developer2
Closes #58, #85
2026-02-06 19:27:40 +01:00
f8826b7c79 ci: improve CI stability with parallel builds and Valgrind
All checks were successful
CI Code / Check spelling (push) Successful in 20s
CI Code / Check coding style (push) Successful in 33s
CI Code / Code Coverage (push) Successful in 4m47s
CI Code / Linux (debian) (push) Successful in 6m9s
CI Code / Linux (ubuntu) (push) Successful in 6m13s
CI Code / Linux (arch) (push) Successful in 6m19s
Major changes:
Run 4 build configurations in parallel with Valgrind on Linux
Add test failure detection verification (meta-test)
Port allocation per build to prevent conflicts in parallel runs
Add --coverage-only flag for dedicated coverage builds
Code quality:

Add TEST_GROUPS constant, CMOCKA patterns, helper functions
Organize ci-build.sh into sections
2026-02-02 17:47:05 +01:00
85c817ee8c ci: speed up builds 4x with parallel tests, coverage, and ccache
All checks were successful
CI Code / Check spelling (push) Successful in 18s
CI Code / Check coding style (push) Successful in 31s
CI Code / Code Coverage (push) Successful in 15m25s
CI Code / Linux (debian) (push) Successful in 15m57s
CI Code / Linux (ubuntu) (push) Successful in 16m0s
CI Code / Linux (arch) (push) Successful in 16m6s
Split functional tests into 4 parallel groups and add check-functional-parallel target (~3x faster CI runs).
Add branch-aware LCOV coverage reporting with new --enable-coverage option and lcov summary in CI pipeline.
Enable ccache via -C configure flag for faster recompilations.
Install lcov in all Docker images and use --depth 1 git clones + parallel make -j$(nproc) for quicker container builds.
Update CONTRIBUTING.md with instructions for parallel test groups and adding new ones.

All changes are tightly related CI/performance improvements developed in sequence. No external service uploads (e.g. Codecov skipped due to Gitea incompatibility).
2026-01-21 16:35:17 +01:00
9fd62e2304 ci: restructure and optimize execution conditions
Some checks failed
CI API Docs / Test C API Documentation Generation (pull_request) Successful in 26s
CI API Docs / Test Python API Documentation Generation (pull_request) Failing after 28s
CI Code / Check coding style (pull_request) Has been cancelled
CI Code / Check spelling (pull_request) Has been cancelled
CI Code / Linux (arch) (pull_request) Has been cancelled
CI Code / Linux (debian) (pull_request) Has been cancelled
CI Code / Linux (ubuntu) (pull_request) Has been cancelled
- The code tests will ignore doc changes and vice versa.
- The CI is split in 2 parts for clarity
2025-09-17 01:00:30 +02:00
c94cd0b549 ci: add GitHub Actions workflow to test C and Python API doc generation
Introduce separate jobs to test C (Doxygen) and Python (Sphinx) API documentation generation. Ensures build failures are caught early, as API changes often produce warnings that developers miss without automated checks.
2025-09-10 19:05:32 +02:00
a3e23c3514 Temporarily disable Fedora tests
All checks were successful
CI / Check spelling (pull_request) Successful in 15s
CI / Check coding style (pull_request) Successful in 28s
CI / Linux (arch) (pull_request) Successful in 11m52s
CI / Linux (ubuntu) (pull_request) Successful in 11m59s
CI / Linux (debian) (pull_request) Successful in 12m2s
CI / Check spelling (push) Successful in 17s
CI / Check coding style (push) Successful in 30s
CI / Linux (ubuntu) (push) Successful in 10m9s
CI / Linux (arch) (push) Successful in 12m4s
CI / Linux (debian) (push) Successful in 13m0s
They are failing on our runners due to issues with dependency resolution.
2025-08-07 03:27:14 +02:00
0784662d40 Fix workflow
Current setup of the infratstrcture with DIND
was causing issues with volume binding,
leading to a false-positive error on code formatting check.

This commit addresses the issue by removing dependency on a container,
but at the same time it limits choice of formatting version.

This fix does not address the underlying issue with the architecture.

As an additional change, package versions are updated.
2025-06-20 14:54:12 +02:00
Michael Vetter
5b9516b483 Merge pull request #2022 from profanity-im/fixes
Memory fixes
2025-03-13 09:58:09 +01:00
Michael Vetter
b5f0cc0bd4 Fix more potential leaks in aesgcm_download 2025-03-13 09:48:27 +01:00
Steffen Jaeckel
ef476cbf96 Cancel all running build jobs on force-push of a PR branch
Signed-off-by: Steffen Jaeckel <s@jaeckel.eu>
2025-03-12 10:15:39 +01:00
Michael Vetter
d7398d11e1 ci: re-enable arch
This reverts commit 3def839c0e.
2025-01-05 18:39:58 +01:00
Michael Vetter
a4cbf3e4c5 ci: disable macOS for now
We get some build fails there and I don't see what's the problem on a
first glance. Noone else stepped up neither.
2024-06-14 13:24:24 +02:00
Steffen Jaeckel
4c26462827 Ensure instances of auto types are initialized
Follow-up of #1913

Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
2023-11-06 22:22:35 +01:00
Michael Vetter
35c3068a2d ci: reenable macos
This reverts commit a815e251b6.
2023-08-25 19:36:29 +02:00
Michael Vetter
a815e251b6 ci: disable macos until they have libstrophe 0.12.3 in brew 2023-08-03 08:45:41 +02:00
Michael Vetter
181772bd5c Add spellcheck to CI 2023-04-15 12:03:57 +02:00
Michael Vetter
663c773bff Switch to clang-format check action
Instead of running clang-format outselves on the old Ubuntu version.
This let's us easily configure which version of clang-format we want to
execute.

Used action:
https://github.com/marketplace/actions/clang-format-check

Properly fix:
https://github.com/profanity-im/profanity/pull/1774
2023-04-14 21:43:31 +02:00
Michael Vetter
4786073171 ci: disable TW
TW curently has problems:
```
Problem: the to be installed sqlite3-devel-3.39.2-1.2.x86_64 requires 'libsqlite3-0 = 3.39.2', but this requirement cannot be provided
  not installable providers: libsqlite3-0-3.39.2-1.2.i586[repo-oss]
                   libsqlite3-0-3.39.2-1.2.x86_64[repo-oss]
```
2022-09-07 12:22:32 +02:00
Michael Vetter
cdebb559bb ci: enable tumbleweed
This reverts commit 5c5c453219.

And removes the old python(2) pull in.

For some reason we get:
`Package python3-embed was not found in the pkg-config search path.`
with python38-devel but not with python310-devel. Let's bump it to that
version.
2022-08-18 15:02:36 +02:00
Michael Vetter
8f2f0edf7a ci: enable macos ci
This reverts commit d5bb93b927.
2022-08-09 13:37:40 +02:00
Michael Vetter
d5bb93b927 ci: disable macos until they have libstrophe 0.12.2 2022-08-08 14:09:10 +02:00
Michael Vetter
2394d033b9 ci: Remove TW for now
Until they fixed this:
```
Problem: the to be installed ncurses-devel-6.3.20220604-20.1.x86_64 requires 'libncurses6 = 6.3.20220604-20.1', but this requirement cannot be provided
Problem: the to be installed gtk2-devel-2.24.33-2.8.x86_64 requires 'pkgconfig(cairo)', but this requirement cannot be provided
Problem: the to be installed ncurses-devel-6.3.20220604-20.1.x86_64 requires 'libncurses6 = 6.3.20220604-20.1', but this requirement cannot be provided
  not installable providers: libncurses6-6.3.20220604-20.1.i586[repo-oss]
                   libncurses6-6.3.20220604-20.1.x86_64[repo-oss]
 Solution 1: downgrade of libncurses6-6.3.20220604-20.2.x86_64 to libncurses6-6.3.20220604-20.1.x86_64
 Solution 2: do not install ncurses-devel-6.3.20220604-20.1.x86_64
 Solution 3: break ncurses-devel-6.3.20220604-20.1.x86_64 by ignoring some of its dependencies
```
2022-06-16 20:16:04 +02:00
Steffen Jaeckel
67fa33ba4e add CI job to check coding style
Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
2022-03-30 18:26:10 +02:00
Michael Vetter
05435d2714 ci: re-enable tumblweed
Old docker/libseccomp from GH got updated.

This reverts commit 5c5c453219.
2021-12-03 16:50:00 +01:00
Michael Vetter
d6633e0920 ci: re-enable ubuntu
This reverts commit cc206ee8cc.
2021-12-03 16:14:26 +01:00
Michael Vetter
a980ab14a0 ci: re-enable macos
They have libstrophe 0.11.0 now.
This reverts commit 472a3ceec4.
2021-12-03 15:56:56 +01:00
Michael Vetter
472a3ceec4 ci: disable osx until they updated libstrophe 2021-10-28 20:15:40 +02:00
Michael Vetter
cc206ee8cc ci: remove ubuntu
Fails and I don't have time to check why.
Something package related most likely.
2021-10-22 16:57:24 +02:00
Michael Vetter
5c5c453219 Disable Tumbleweed CI
```
 (248/297) Installing: system-group-hardware-20170617-19.2.noarch [..error]
Installation of system-group-hardware-20170617-19.2.noarch failed:
Error: Subprocess failed. Error: RPM failed: ERROR: neither groupadd nor busybox found!
error: %prein(system-group-hardware-20170617-19.2.noarch) scriptlet failed, exit status 1
error: system-group-hardware-20170617-19.2.noarch: install failed

Abort, retry, ignore? [a/r/i] (a): a
Warning: %posttrans scripts skipped while aborting:
    pam-1.5.1-2.2.x86_64.rpm
    shadow-4.8.1-5.2.x86_64.rpm
```

Seems to be a bug in old docker/libseccomp from GH.
2021-02-17 19:30:26 +01:00
Michael Vetter
3def839c0e Disable Arch CI
Again something wrong this Arch.
Not time to invest right now but we need a working CI for PRs.
2021-02-17 16:24:59 +01:00
William Wennerström
81c02d1231 Switch from Travis CI to GitHub Actions
Travis have been slow and the macOS runner is outdated (and a bunch of
other recurring issues).
2020-12-17 15:09:25 +01:00