Files
cproof/scripts/README.md
Michael Vetter a8c7850a97 chore: Unify build configuration script into one
Earlier ci/meson-build.sh and ci/ci-build.sh.
The latter we then renamed to the more descriptive build-configuration-matrix.sh.

Both scripts are doing the same thing but for different build systems.
So lets merge them together.

Signed-off-by: Michael Vetter <jubalh@iodoru.org>
2026-03-21 01:05:16 +01:00

1.8 KiB

Scripts

This directory contains various scripts used for development, CI, and maintenance.

lint-and-test.sh

Central validation script mainly for local development.

  • Purpose: Runs spelling checks, code formatting, and unit testing.
  • Usage: ./scripts/lint-and-test.sh [options]
  • Options:
    • --fix-formatting: Automatically apply clang-format fixes.
    • --autotools / --meson: Run unit tests using the specified build system.
    • --hook: Run in "hook mode" (checks only staged files).
    • --install: Install the script as a git pre-commit hook.

build-configuration-matrix.sh

Exhaustive build configuration matrix testing. It ensures that Profanity compiles and passes unit tests across a variety of feature configurations for both Autotools and Meson.

  • Purpose: Verifies architectural compatibility by testing many combinations of build flags.
  • Usage: ./scripts/build-configuration-matrix.sh [autotools|meson] [extra-args]
  • Extra Arguments: Any arguments passed after the build system are forwarded directly to the configuration command (./configure or meson setup).
  • Environment: Primarily used in CI (GitHub Actions), but can be run locally to verify all configurations.

changelog-helper.py

Generates a sorted changelog from git commits since the last tag.

  • Purpose: Automates the creation of release notes by parsing Conventional Commit messages.
  • Usage: python3 scripts/changelog-helper.py [--pr]
  • Options: Use --pr to append Pull Request numbers to each entry.

check-new-xeps.py

Checks for updates to XMPP Extension Protocols (XEPs).

  • Purpose: Compares the versions of XEPs implemented in Profanity (tracked in profanity.doap) against the latest versions available at xmpp.org.
  • Usage: python3 scripts/check-new-xeps.py