Koha::QA - Koha Quality Assurance Utilities

License: GPL v3

Shared QA modules for Koha and Koha plugins.

Purpose

This repository contains reusable Perl modules for Quality Assurance checks that can be used by:

  1. Koha core (https://git.koha-community.org/Koha-community/Koha)
  2. QA test scripts (https://gitlab.com/koha-community/qa-test-tools)
  3. Plugin certification (https://gitlab.com/joubu/koha-plugin-certification)

Instead of duplicating QA logic across multiple repositories, this central module provides a single source of truth.

Tests

To run the tests:

perl Makefile.PL
make js-deps
make
make test
make clean

Release

To cut a new release:

  1. Verify MANIFEST is correct before doing anything else: build from a fresh clone, not your working tree (a working tree can have local files, like a Carton cpanfile.snapshot, that mask a MANIFEST referencing something git doesn't actually track).

    git clone . /tmp/koha-qa-manifest-check
    cd /tmp/koha-qa-manifest-check
    perl Makefile.PL
    

    Checking if your kit is complete... must say nothing is missing. If it does, the listed file either needs to be tracked in git or removed from MANIFEST (and added to MANIFEST.SKIP, so a later make manifest doesn't re-add it from a file that only happens to exist locally).

  2. Bump $VERSION in lib/Koha/QA.pm and add an entry to Changes, then commit.

  3. Tag the release:

    git tag -a vX.Y.Z -m "Release X.Y.Z"
    
  4. Build the distribution tarball:

    perl Makefile.PL
    make dist
    
  5. Push the branch and tags, then upload to CPAN:

    git push origin main --follow-tags
    cpan-upload Koha-QA-X.Y.Z.tar.gz
    

    cpan-upload (from CPAN::Uploader, cpanm CPAN::Uploader if missing) needs PAUSE credentials configured, or pass -u YOUR_PAUSE_ID and it will prompt for the password.

License

This software is licensed under the GPLv3 license. See the LICENSE file for details.

Copyright 2017-2026 Koha Development Team