Project: Automated Dependency Testing Pipeline for LibreHealth Toolkit

The LibreHealth Toolkit Dependency Testing Pipeline project aims to create a robust, Docker-based automated testing infrastructure that systematically evaluates the impact of dependency upgrades on the core platform. This infrastructure will enable continuous testing of various dependency version combinations, ensuring platform stability and identifying potential compatibility issues before they reach production.

The project focuses on core backend dependencies critical to the toolkit’s operation, independent of front-end implementations. This separation ensures that the testing pipeline remains relevant regardless of whether the installation uses legacy UI, Reference Application, or O3 modules/components.

Core Dependencies to Test:

  1. Java Runtime and Development Kit
  • LTS versions: 11, 17, 21
  • Quarterly updates within LTS versions
  • Different JVM implementations (OpenJDK, Eclipse Temurin)
  1. Database Layer
  • MySQL versions 8.0.x
  • MariaDB versions 10.x
  • Database connection pools
  • Hibernate ORM versions
  1. Spring Framework Stack
  • Spring Framework core
  • Spring Boot versions
  • Spring Security
  • Spring Data JPA
  • Spring Web MVC
  1. Supporting Libraries
  • Apache Commons libraries
  • Logging frameworks
  • XML processing libraries
  • JSON processing libraries
  • Connection pools

The deliverables of the project are as follows:

  • Develop a Docker-based testing infrastructure that can simulate different dependency combinations
  • Create automated test suites for core platform functionality
  • Implement version matrix testing for major dependencies
  • Generate comprehensive compatibility reports
  • Provide automated upgrade path recommendations
  • Create documentation for maintaining and extending the testing infrastructure

Testing Pipeline Implementation:

  • Dockerfile generation for different dependency combinations
  • Automated database schema upgrade testing
  • API compatibility verification
  • Performance benchmark comparisons
  • Security compliance checking
  • Regression testing suite

Pipeline Features:

  • Parallel testing of multiple dependency combinations
  • Automated test result aggregation
  • Performance metrics collection
  • Compatibility matrix generation
  • Failure analysis and reporting
  • Historical data tracking

Preliminary tasks:

  • Create base Docker configurations for current production dependencies
  • Implement basic test suite for core functionality
  • Set up CI/CD pipeline structure
  • Develop initial reporting framework

A developer working on this project needs to have skills in:

  • Docker and container orchestration
  • Java/JVM ecosystem
  • Database administration (MySQL/MariaDB)
  • CI/CD pipeline development
  • Test automation
  • Shell scripting
  • Performance testing and monitoring
  • Technical documentation

This infrastructure will significantly improve the reliability of LibreHealth Toolkit upgrades by providing comprehensive testing of dependency changes before they reach production environments. The Docker-based approach ensures consistent testing environments and reproducible results, while the automated pipeline enables continuous testing with minimal manual intervention.

The project output will help maintainers make informed decisions about dependency upgrades and provide users with clear upgrade paths that have been thoroughly tested. This systematic approach to dependency testing will enhance the overall stability and maintainability of the LibreHealth Toolkit platform.

Project size: Medium (~175 hours)
Mentors: @r0bby and @sunbiz

1 Like