[PR #136] [MERGED] v2.0.0 Preparation #268

Closed
opened 2026-03-07 20:42:35 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/DBDiff/DBDiff/pull/136
Author: @jasdeepkhalsa
Created: 2/8/2026
Status: Merged
Merged: 2/9/2026
Merged by: @jasdeepkhalsa

Base: masterHead: pr/108


📝 Commits (10+)

  • 2fcac0f feat: upgrade dependencies to use latest Illuminate versions, update the code to follow changes in the dependencies
  • d3b9377 feat: Adding Docker image and Docker Compose environment
  • 10cb400 Updating the docker-compose PHP and MySQL versions and the composer.json to be compatible with it. Adding a test-runner and DOCKER.md instructions of how to use it
  • cce60aa feat: upgrade diff/diff to v3.0 for PHP 8.4 compatibility
  • 4b0280a Successfully running test-runner script
  • 01be68e Watch mode added with more developer friendly output
  • fadc31e Cleaning up the docker-compose workflow with start and stop scripts (renamed from test-runner and reset)
  • 35ad115 All databases from 8.0 now working with DBDiff PHPUnit Tests
  • 79b6a82 WIP: Comprehensive DB tests with fixtures covering multiple scenarios
  • 77e2711 The error Unknown option "--verbose" occurred because PHPUnit 11 was used in the Docker container (as seen in your output: PHPUnit 11.5.51). Starting with PHPUnit 10, the --verbose flag was removed in favor of more specific flags or default behavior. I have fixed this by removing the deprecated --verbose flag from both the automated start.sh script and the manual run-comprehensive-tests.sh script.

📊 Changes

85 files changed (+4329 additions, -1979 deletions)

View changed files

.dockerignore (+13 -0)
.env.example (+39 -0)
.github/FUNDING.yml (+0 -4)
.github/workflows/release.yml (+56 -0)
.github/workflows/tests.yml (+57 -0)
📝 .gitignore (+5 -0)
.sonarcloud.properties (+15 -0)
DOCKER.md (+221 -0)
📝 README.md (+99 -30)
SECURITY.md (+25 -0)
📝 composer.json (+24 -10)
composer.lock (+0 -1821)
docker-compose.yml (+237 -0)
docker/Dockerfile (+66 -0)
docker/docker-entrypoint.sh (+26 -0)
images/akal-logo.svg (+22 -0)
phpunit.xml (+0 -17)
📝 scripts/build (+3 -2)
📝 scripts/post-install.sh (+2 -9)
scripts/release.sh (+61 -0)

...and 65 more files

📄 Description

Changelog: v2.0.0 Preparation

Refactor, Modernization, and Infrastructure Overhaul

🏗️ Infrastructure & Local Development

  • Dockerized Environment: Introduced a complete docker-compose setup with mysql and php services to ensure a consistent development environment.
  • Start/Stop Scripts: Added ./start.sh (with parallel execution support) and ./stop.sh to manage the lifecycle of the dev environment.
  • Watch Mode: Implemented a watch mode for the test runner to provide instant feedback during development.

🔌 Modernization & Compatibility

  • PHP 8.x Support: Updated codebase to support PHP 8.0 through PHP 8.4.
    • Fixed "Dynamic Property" deprecations (PHP 8.2+).
    • Fixed static calls to non-static methods (PHP 8.0+).
  • Dependency Upgrades:
    • Upgraded illuminate/* packages (Database, View, Container) to support versions v8 - v11.
    • Upgraded phpunit/phpunit to support v10 & v11.
    • Upgraded diff/diff to v3.0 for PHP 8.4 compatibility.

🧪 Testing & Quality Assurance

  • Comprehensive Test Suite:
    • Added 10+ new comprehensive integration tests covering various schema and data difference scenarios.
    • Added Record Mode to automatically generate and update test fixtures.
    • Implemented Deterministic Sorting for SQL dumps to prevent flaky tests across platforms.
  • MySQL 9 Support: Updated fixtures and logic to ensure compatibility with MySQL 9.x.
  • Test Runner Improvements:
    • Removed deprecated flags (e.g., --verbose) for PHPUnit 11 compatibility.
    • Added --fast flag for rapid iteration.
    • Added --testdox output for detailed, human-readable test results.

🔒 Security & CI/CD

  • Automated Releases: Added GitHub Actions workflows for automated PHAR builds and releases.
  • Security Hardening:
    • Added SECURITY.md policy.
    • Configured SonarCloud for automated code quality and security analysis.
    • Addressed multiple security hotspots and improved Dockerfile security.

📚 Documentation

  • New Guides: Added DOCKER.md for local development setup.
  • Project Docs: Refactored README.md to reflect the modern workflow and installation steps.

🚀 Why this is v2.0.0

This release breaks backward compatibility with the v1.0.0 era (PHP 7.3/7.4) infrastructure in favor of modern standards. It enables the tool to run on the latest PHP versions and work with modern database servers (MySQL 8/9), making it a true "v2.0" evolution of the software.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/DBDiff/DBDiff/pull/136 **Author:** [@jasdeepkhalsa](https://github.com/jasdeepkhalsa) **Created:** 2/8/2026 **Status:** ✅ Merged **Merged:** 2/9/2026 **Merged by:** [@jasdeepkhalsa](https://github.com/jasdeepkhalsa) **Base:** `master` ← **Head:** `pr/108` --- ### 📝 Commits (10+) - [`2fcac0f`](https://github.com/DBDiff/DBDiff/commit/2fcac0f13e0f55582f523de1ab45c83c5082c668) feat: upgrade dependencies to use latest Illuminate versions, update the code to follow changes in the dependencies - [`d3b9377`](https://github.com/DBDiff/DBDiff/commit/d3b937734eb83f4351bba7e1ca5e1057894b7097) feat: Adding Docker image and Docker Compose environment - [`10cb400`](https://github.com/DBDiff/DBDiff/commit/10cb4002f39b7c402c468759407efda1bfe5e68e) Updating the docker-compose PHP and MySQL versions and the composer.json to be compatible with it. Adding a test-runner and DOCKER.md instructions of how to use it - [`cce60aa`](https://github.com/DBDiff/DBDiff/commit/cce60aacc68f0672153d6070e8dca28dae8f793c) feat: upgrade diff/diff to v3.0 for PHP 8.4 compatibility - [`4b0280a`](https://github.com/DBDiff/DBDiff/commit/4b0280a7c15af244dd7edc56808cb8d36640c994) Successfully running test-runner script - [`01be68e`](https://github.com/DBDiff/DBDiff/commit/01be68efd1bf457715a8cff4d5426a381d814cbb) Watch mode added with more developer friendly output - [`fadc31e`](https://github.com/DBDiff/DBDiff/commit/fadc31e55dff69c596a7a8a127c1a742fb7a04e8) Cleaning up the docker-compose workflow with start and stop scripts (renamed from test-runner and reset) - [`35ad115`](https://github.com/DBDiff/DBDiff/commit/35ad115a42f1a08ec85b61f3b46a35e0cb9e0ea4) All databases from 8.0 now working with DBDiff PHPUnit Tests - [`79b6a82`](https://github.com/DBDiff/DBDiff/commit/79b6a8294bdfd5db3f35254083aca87c7b193ce4) WIP: Comprehensive DB tests with fixtures covering multiple scenarios - [`77e2711`](https://github.com/DBDiff/DBDiff/commit/77e27114fd55c85bd6d9d134116183b6752e9a71) The error Unknown option "--verbose" occurred because PHPUnit 11 was used in the Docker container (as seen in your output: PHPUnit 11.5.51). Starting with PHPUnit 10, the --verbose flag was removed in favor of more specific flags or default behavior. I have fixed this by removing the deprecated --verbose flag from both the automated start.sh script and the manual run-comprehensive-tests.sh script. ### 📊 Changes **85 files changed** (+4329 additions, -1979 deletions) <details> <summary>View changed files</summary> ➕ `.dockerignore` (+13 -0) ➕ `.env.example` (+39 -0) ➖ `.github/FUNDING.yml` (+0 -4) ➕ `.github/workflows/release.yml` (+56 -0) ➕ `.github/workflows/tests.yml` (+57 -0) 📝 `.gitignore` (+5 -0) ➕ `.sonarcloud.properties` (+15 -0) ➕ `DOCKER.md` (+221 -0) 📝 `README.md` (+99 -30) ➕ `SECURITY.md` (+25 -0) 📝 `composer.json` (+24 -10) ➖ `composer.lock` (+0 -1821) ➕ `docker-compose.yml` (+237 -0) ➕ `docker/Dockerfile` (+66 -0) ➕ `docker/docker-entrypoint.sh` (+26 -0) ➕ `images/akal-logo.svg` (+22 -0) ➖ `phpunit.xml` (+0 -17) 📝 `scripts/build` (+3 -2) 📝 `scripts/post-install.sh` (+2 -9) ➕ `scripts/release.sh` (+61 -0) _...and 65 more files_ </details> ### 📄 Description # Changelog: v2.0.0 Preparation **Refactor, Modernization, and Infrastructure Overhaul** ### 🏗️ Infrastructure & Local Development * **Dockerized Environment**: Introduced a complete `docker-compose` setup with `mysql` and `php` services to ensure a consistent development environment. * **Start/Stop Scripts**: Added `./start.sh` (with parallel execution support) and `./stop.sh` to manage the lifecycle of the dev environment. * **Watch Mode**: Implemented a watch mode for the test runner to provide instant feedback during development. ### 🔌 Modernization & Compatibility * **PHP 8.x Support**: Updated codebase to support PHP 8.0 through **PHP 8.4**. * Fixed "Dynamic Property" deprecations (PHP 8.2+). * Fixed static calls to non-static methods (PHP 8.0+). * **Dependency Upgrades**: * Upgraded `illuminate/*` packages (Database, View, Container) to support versions **v8 - v11**. * Upgraded `phpunit/phpunit` to support **v10 & v11**. * Upgraded `diff/diff` to **v3.0** for PHP 8.4 compatibility. ### 🧪 Testing & Quality Assurance * **Comprehensive Test Suite**: * Added **10+ new comprehensive integration tests** covering various schema and data difference scenarios. * Added **Record Mode** to automatically generate and update test fixtures. * Implemented **Deterministic Sorting** for SQL dumps to prevent flaky tests across platforms. * **MySQL 9 Support**: Updated fixtures and logic to ensure compatibility with MySQL 9.x. * **Test Runner Improvements**: * Removed deprecated flags (e.g., `--verbose`) for PHPUnit 11 compatibility. * Added `--fast` flag for rapid iteration. * Added `--testdox` output for detailed, human-readable test results. ### 🔒 Security & CI/CD * **Automated Releases**: Added GitHub Actions workflows for automated PHAR builds and releases. * **Security Hardening**: * Added `SECURITY.md` policy. * Configured **SonarCloud** for automated code quality and security analysis. * Addressed multiple security hotspots and improved Dockerfile security. ### 📚 Documentation * **New Guides**: Added `DOCKER.md` for local development setup. * **Project Docs**: Refactored `README.md` to reflect the modern workflow and installation steps. *** ### 🚀 Why this is v2.0.0 This release breaks backward compatibility with the v1.0.0 era (PHP 7.3/7.4) infrastructure in favor of modern standards. It enables the tool to run on the latest PHP versions and work with modern database servers (MySQL 8/9), making it a true "v2.0" evolution of the software. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-07 20:42:35 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/DBDiff#268
No description provided.