Skip to content

v2.9.0

Latest

Choose a tag to compare

@jmrenouard jmrenouard released this 05 Jul 17:37

Release Notes - v2.9.0

Date: 2026-07-05

📝 Executive Summary

2.9.0 2026-07-05

- chore: automated project metadata update
- chore: remove execution.log from git repository and sync docs
- feat: recommend slow query log when disabled (#517)
- feat: update Total buffers output message format to display temptable sizing when active.
- fix: update commit process
- fix: update documentation and code
- test: add socket preservation tests to test_issue_781.t.
- test: add unit test for remote host physical memory detection and validation (issue #796).
- test: add unit test for temptable output formatting in Total buffers.
- ci: optimize pre-commit hook to only run unit tests when code, tests, or dependencies are modified.
- chore(build): allow build scope in compliance auditor
- chore(build): rewrite dev_sync and doc_sync in Perl for consistency
- chore(deps): update devops-infra/action-commit-push digest to fa0c793 (#929)
- chore(deps): update shogo82148/actions-setup-mysql digest to 076e636 (#930)
- chore(main): add doc links in localhost warnings and support custom local subdomains
- chore(main): add roadmap to the whitelist of allowed scopes in compliance checks.
- chore(main): hide hostname, ssl, and replication warnings on localhost (#933)
- chore(main): whitelist deps and system commit scopes in check_compliance.pl to support Dependabot and host metrics commits.
- chore(metadata): add GitHub issue templates for bugs and feature requests
- feat(cli): create an agent-ready output format (JSON/YAML) so that MySQLTuner can be easily integrated by AI agents.
- feat(cli): resolve remote memory, socket override, and temptable sizing issues
- feat(main): recommend enabling slow query log if disabled (#517)
- feat(metadata): fix test badge and update version references in READMEs
- feat(report): add pgBadger-inspired query distribution, locking latency, and temp table memory/disk spill visual analytics to HTML report
- feat(report): add verbose execution timing measurements for each section, showing both elapsed time and its percentage relative to the total script execution time.
- feat(report): add verbose timings, step percentages, and snapshot summary
- feat(report): categorize recommendations in HTML report and add Connections/Performance panels, Storage engines table, and SQL modeling stats grid.
- feat(report): finalize HTML report, YAML output, and historical comparison
- feat(report): finalize a complete HTML report file beginning in v2.8.45.
- feat(report): implement Phase 13 sectional global indicators and KPIs
- feat(report): move dump_csv_files execution step to immediately before make_recommendations.
- feat(report): print an environment audit snapshot summary (server, user, RAM, swap, versions, uptime) right after get_all_vars.
- feat(report): support historical comparison of database diagnostics and performance metrics over time.
- fix(cli): add mutually exclusive guard for json and yaml options.
- fix(cli): preserve --socket in connection arguments when --host is specified.
- fix(main): add undefined and 'NULL' guards to hr_num to eliminate uninitialized value warnings.
- fix(main): add undefined/NULL guards to hr_num to resolve uninitialized warnings
- fix(main): address PR #931 code review feedback and enhance test validations
- fix(main): calculate health score early in historical comparison to ensure scores exist for trend analysis.
- fix(main): calculate query cache efficiency using Com_select on MariaDB (MDEV-4981)
- fix(main): calculate query cache efficiency using Com_select on MariaDB, where Com_select includes query cache hits (MDEV-4981).
- fix(main): exclude MariaDB user roles and support zero-config TLS
- fix(main): exclude MariaDB user roles from SSL remote user audit
- fix(main): format YAML null as tilde (~) and multiline values using literal block style.
- fix(main): guard InnoDB log file size and log size percentage checks against uninitialized variables.
- fix(main): guard version and version comment checks in MariaDB parallel replication and query cache blocks.
- fix(main): implement cached version comparison parser to eliminate uninitialized value warnings and improve performance.
- fix(main): only recommend increasing innodb_log_buffer_size when log waits occur
- fix(main): sanitize and redact sensitive credentials from json/yaml output exports.
- fix(main): skip local /proc/loadavg read during remote database audits.
- fix(main): support MariaDB 11.4+ zero-configuration TLS and avoid false missing certificate warnings
- fix(report): flush console output trace when opening raw log files late in dumpdir mode.
- fix(test): add undef fallbacks to human_size, hr_bytes and hr_bytes_rnd mocks in tests.
- test(hook): verify pre-commit hook runs tests when test files change
- test(lab): add unit test test_issue_480.t for table_open_cache_instances recommendation (#480)
- test(lab): add unit test test_issue_517.t for slow query log recommendations (#517)
- test(lab): add unit test test_issue_810.t for issue 810
- test(lab): add unit test test_issue_810.t for remote host forcemem MB interpretation correctness (issue #810)
- test(lab): add unit test test_issue_938.t for InnoDB write log efficiency
- test(lab): add unit tests for query cache efficiency logic on MySQL and MariaDB in tests/test_issue_927.t (renamed from tests/issue_927.t).
- test(lab): normalize all repro_issue_*.t and issue_*.t test file names to test_issue_*.t
- test(lab): split unit_coverage_boost4.t into smaller topic-oriented unit tests: unit_cli_helpers.t, unit_client_privileges.t, unit_cloud_commands.t, unit_fs_info.t, unit_os_vm.t
- test(lab): utilize isolated tempfile for mock json to avoid race conditions in tests/unit_phase13_kpis.t.
- test(report): add verbose timing and audit snapshot summary formatting checks to tests/verbose_timing.t.
- test(report): update HTML report unit tests to verify connections, performance, storage, and modeling HTML sections.
- test(security): add test cases for MariaDB role exclusion and zero-configuration TLS
- test(versions): add unit tests for version caching and comparisons, resolve redundant warnings, and use tempfile in tests/unit_versions.t.
- docs(metadata): promote HTML reports and add E2E examples
- docs(metadata): remove timestamp from doc-sync generated files
- docs(roadmap): link strategic technical evolutions specification and enforce changelog staging
- docs(roadmap): specify and implement Phase XIV pgBadger-inspired HTML report modules
- docs(roadmap): specify Phase XVI (AI Agent Integration) and Phase XVII (Dockerized MCP Daemon).
- docs: add LightPath as sponsor, relocate coffee button, and use star-history chart
- docs: regenerate release notes
- docs: update repository links to major/MySQLTuner-perl and add GitHub stars badge

📈 Diagnostic Growth Indicators

Metric Current Progress Status
Total Indicators 15 0 🛡️
Efficiency Checks 0 0 🛡️
Risk Detections 2 0 🛡️
Information Points 13 0 🛡️

🛠️ Internal Commit History

  • docs(releases): regenerate release notes and changelog (2ce031f)
  • docs(metadata): promote HTML reports and add E2E examples (30d5255)
  • docs: regenerate release notes (7e1cd64)
  • feat(report): add pgBadger-inspired query, lock, and temp table visual analytics to HTML report (246e0c0)
  • docs: regenerate release notes (272ff7d)
  • docs: regenerate release notes (093984a)
  • fix(main): only recommend increasing innodb_log_buffer_size when log waits occur (1aa3eaf)
  • docs: regenerate release notes (385594b)
  • docs: regenerate release notes (ae41134)
  • docs: regenerate release notes (6db4faf)
  • docs: regenerate release notes (9865449)
  • fix(main): exclude MariaDB user roles and support zero-config TLS (aee6781)
  • docs: regenerate release notes (f715c47)
  • docs: regenerate release notes (d46e3c8)
  • docs: regenerate release notes (38ecb2f)
  • docs: regenerate release notes (3b9c75a)
  • docs: regenerate release notes (2cfd624)
  • chore(main): add doc links in localhost warnings and support custom local subdomains (9f67656)
  • docs: regenerate release notes (b74e098)
  • docs: regenerate release notes (0005a69)
  • chore(build): allow build scope in compliance auditor (2bba15f)
  • chore(build): rewrite dev_sync and doc_sync in Perl for consistency (645c3d9)
  • chore(main): hide hostname, ssl, and replication warnings on localhost (#933) (4f3e70e)
  • docs: regenerate release notes (be838ab)
  • docs: regenerate release notes (389c4ad)
  • docs: regenerate release notes (d424fae)
  • docs: regenerate release notes (1575463)
  • docs: regenerate release notes (7006061)
  • feat(cli): resolve remote memory, socket override, and temptable sizing issues (7e3a39c)
  • test(hook): verify pre-commit hook runs tests when test files change (41abef0)
  • docs: regenerate release notes (9b9e007)
  • ci: optimize pre-commit hook to only run unit tests when code, tests, or dependencies are modified (596df4c)
  • docs: regenerate release notes (5759b73)
  • fix: update documentation and code (1008ba4)
  • docs: regenerate release notes (7fd2391)
  • test(lab): add unit test test_issue_810.t for issue 810 (6ece0c3)
  • docs: regenerate release notes (0b5c859)
  • feat: recommend slow query log when disabled (#517) (da6d437)
  • docs: add LightPath as sponsor, relocate coffee button, and use star-history chart (31e3638)
  • docs: update repository links to major/MySQLTuner-perl and add GitHub stars badge (4cd208e)
  • docs: regenerate release notes (a754147)
  • fix(main): add undefined/NULL guards to hr_num to resolve uninitialized warnings (0a87482)
  • docs(roadmap): link strategic technical evolutions specification and enforce changelog staging (136a977)
  • docs: regenerate release notes (abe582a)
  • fix(main): address PR #931 code review feedback and enhance test validations (64c28ce)
  • feat(metadata): fix test badge and update version references in READMEs (a1be73c)
  • docs(metadata): remove timestamp from doc-sync generated files (4575b0a)
  • fix(main): calculate query cache efficiency using Com_select on MariaDB (MDEV-4981) (780c861)
  • feat(report): add verbose timings, step percentages, and snapshot summary (c23198a)
  • feat(report): implement Phase 13 sectional global indicators and KPIs (5f9cebb)
  • chore: remove execution.log from git repository and sync docs (2a9b66e)
  • feat(report): finalize HTML report, YAML output, and historical comparison (66ebab8)

⚙️ Technical Evolutions

➕ CLI Options Added

  • --innodb_buffer_stats_by_schema
  • --innodb_buffer_stats_by_table
  • --processlist
  • --schema_auto_increment_columns
  • --schema_index_statistics
  • --schema_object_overview
  • --schema_redundant_indexes
  • --schema_table_lock_waits
  • --schema_table_statistics
  • --schema_table_statistics_with_buffer
  • --schema_tables_with_full_table_scans
  • --schema_unused_indexes
  • --session
  • --stage-timings
  • --statement_analysis
  • --statements_with_errors_or_warnings
  • --statements_with_full_table_scans
  • --statements_with_runtimes_in_95th_percentile
  • --statements_with_sorting
  • --statements_with_temp_tables
  • --yaml

➖ CLI Options Deprecated

  • --data
  • --template

✅ Laboratory Verification Results

  • Automated TDD suite passed.
  • Multi-DB version laboratory execution validated.
  • Performance indicator delta analysis completed.