## Desbordante/desbordante-core — v2.4.1…v2.5.0

_374+ commits._

### Features
- **Add FDHits paper** (b89a66c)
- **Add SD verifier paper** (5cc3153)
- **Add gSpan optimization paper** (6b942e9)
- **Add AFD measures example** (c1b010d)
- **Add fixes and improvements after review** (55107c3)
- **Add multithreading with custom thread pool** (c035727)
- **Add algorithmic optimizations** (bed2407)
- **Add basic optimizations** (2bb6344)
- **Added Vinogradov spring research paper** — A research paper titled 'GA-RFD-Vinogradov Dmitri-2026 spring' has been added to the documentation. (51c2d86)
- **feat(cfd): update snapshots for CFD examples** (92df0e7)
- **feat(CFD): enhance examples with educational content** (aaa0af2)
- **feat(CFD): enhance CFD Python bindings** (9b2bd17)
- **Add examples to Frequent Episode Mining algorithms (AFEM, MaxFEM, TKE)** (c8e6af6)
- **Add AFEM algorithm** (b82af82)
- **Add TKE algorithm** (f7c9f5e)
- **Add snapshot tests for AR and GDD verification** (a5971d1)
- **Add GCC+UBSan workaround** (40814b1)
- **Add CreateStrippedPartitions** (07a3c2b)
- **Add missing const** (6118db8)
- **Add PAC-related names and descriptions** (eedb242)
- **Drop Python 3.8 and 3.9 support** (35f4670)
- **Add ICU to README build instructions** (2c07fa6)
- **Add missing includes** (b65df51)
- **Add differential strategy option Python converters** (aac4c18)
- **add paper** (0137f18)
- **Add static map tests to CMakeLists** (f4f4ff9)
- **Add CIND mining tests to CMakeLists** (2b653c6)
- **Add ParMaxFEM algorithm (#676)** (ea9bcaa)
- **Revert "Add ParMaxFEM algorithm (#676)"** (e4583f7)
- **Add ParMaxFEM algorithm (#676)** (5ce3043)
- **Add CIND verification tests to CMakeLists** (b1e00ea)
- **Add IND mining example with DataFrames** (f838f0c)

### Fixes
- **Fix syntax warnings in AFD-PFD comparison example** (25a620c)
- **Fix incorrect values being passed to measures** (199cb1d)
- **Fix Tane zeroary FD measure calculation** (ac865b9)
- **Fix G2 error calculation in Tane** (ef2cba8)
- **Fix baseline expiration in performance tests** (e47c082)
- **Fix performance tests memory limit** (6338a02)
- **Fix missing option converter** (d7d288e)
- **Fix FDFirst options** (0c0a871)
- **Fix CIND tests enum renaming mistake** (7c40c82)
- **Fix verifier tests** (6f742d4)

### Backend
- **Prepare for 2.5.0 release** (4a51480)
- **Bump cibuildwheel to 4.2.1 for Python 3.15** (1b148bb)
- **FD PAC and UCC PAC verification paper** (06c7289)
- **Ignore example datasets in typos check as well** (d07ede7)
- **Make AFD calculator output consistent** (ed577af)
- **Rewrite G3 calculation** (340508d)
- **Rename CalculateG2 to CalculateG2Error** (168dac4)
- **Update AFD examples** (c381d18)
- **Skip Tane Rho, Phi, G2 and G3 performance tests** (13838f3)
- **Temporarily remove ICU** (72ca3b3)
- **Remove incorrect cache check in DataStats** (0479d51)
- **Move ICU find command to desbordante_deps.cmake** (49ae9d6)
- **Simplify position list indexing** — Removed a specialized position list index variant that handled singleton values, replacing it with standard position list indexes throughout the AFD metrics and TANE functional dependency discovery algorithms. This simplification streamlines the codebase while maintaining the same core functionality. (b211961)
- **Check LHS size before inserting into FDTree** (64c9bb8)
- **Fixing FDFirst test** (20ccac6)
- **Separate FD First implementation from common CFD code** (086345f)
- **Simplify CFD PrefixTree implementation** (3b88496)
- **Remove unused functions** (908c0d7)
- **Remove CFD printing methods** (a87b8e2)
- **Replace the cfd_list_ type with CFDList** (b4cd5a2)
- **Remove unused and redundant methods from tidslist_util.cpp** (1d29b76)
- **Delete a file partition_tidlist_util.cpp** (54b9ecd)
- **Remove the use of wrapper methods and the all_attrs_ field** (6e33a6a)
- **Remove CFD dataset formatting API and tests** (0865a26)
- **Clean up install-dependencies action** (c21cc7a)
- **Remove headers listing all algorithms for a task** (5a4c57d)
- **Remove PositionListIndex::freq_** (bc4f7f1)
- **Remove extra references to nulls** (80e2889)
- **Disambigulate DataFrames if no name is given** (1ad096e)
- **Use set instead of _Unchecked_set in FastOD** (fb5d184)
- **Rename _Find_xx to FindXx in "self-hosted" bitset** (8f43b20)
- **Remove extra algorithm inclusions in bind_afd.cpp** (618a5d7)
- **Link the DD target correctly** (1d266b2)
- **Remove extra magic_enum linking in CMake** (5f1e025)
- **Remove extra magic_enum usage** (adec218)
- **Move create_dd.h to python_bindings** (ac21a3b)
- **Remove arbitrary runtime algorithm creation code** (17c038f)
- **Remove CreateAlgorithmInstance usage in Mind** (79a0eb2)
- **Added tests and update examples fo AFD** (c214dfa)
- **Added Python bindings for AFD** (efb7332)
- **Added AFD model, metrics, and algorithm classes** (189314c)
- **Implement bindings for custom metrics** (68c609c)
- **Implement options for custom metrics** (ee2a995)
- **Implement "algorithm side" of custom metrics** (c441f1a)
- **Remove GCC-10 workaround in Benchmark results I/O** (04c4895)
- **Explicitly use clang++ for clang-tidy-check** (3773fba)
- **Use the enum options string in py_to_any.cpp** (6bf839a)
- **Generate enum option descriptions at compile time** (a55bf52)
- **Make EnumToStr constexpr** (41cae00)
- **Move magic_enum include from builtin.h** (a1f2745)
- **Remove HyMD-related GCC 10 workarounds** (7c3531d)
- **Update READMEs with newer dependencies** (0ad2913)
- **Bump tool versions in CI** (34ce371)
- **Construct PLIs immediately in HPIValid, HyFD, HyUCC** (6fb444d)
- **Extract input to value ID columns transformation** (2a3e668)
- **Insert missing pragma once** (962c644)
- **Remove extra include** (53d990b)
- **Get rid of extra assertions** (8229b6f)
- **Implement Domain PAC examples** (872027d)
- **Implement Domain PAC bindings** (2aa6a7c)
- **Implement Domain PAC verifier tests** (53f2f27)
- **Implement Domain PAC verifier** (751d937)
- **Implement base PAC verifier** (516d55b)
- **Implement base PAC model classes** (c878b6e)
- **Make model::Type::Destructor take const pointer** (7af1dd5)
- **Simplify RelationalSchema creation** (7a24ab9)
- **Only serialize column names in RelationalSchema** (15d1f95)
- **Remove unused code in FDep** (977838a)
- **Move cmake test discovery to test run from post build** (160c3a0)
- **Use correct option setting logic in Python tests** (9772a08)
- **Refactor CFD classes** (3eb8731)
- **Remove parameters from the CFDDiscovery class** (7327655)
- **Update README.md** (13ff9cb)
- **Make internal methods of Algorithm in Python private** (5d14fcc)
- **Remove custom bitset hashing** (11e30c1)
- **Remove most of non-const non-auto variable usage** (ccd29d2)
- **Remove extra hidden visibility specifiers** (7fdffe9)
- **Export unexported option classes** (117f7f1)
- **Remove intersection count PLI variable** (d86e5b0)
- **Simplify single-statement ExecuteInternal methods** (37a89fe)
- **Remove util::TimedInvoke** (a665fc6)
- **Remove unused time accounting from IND and CIND** (2ebc72d)
- **Remove log-only time accounting statements** (83e2d10)
- **Remove time return in algorithms** (c0a51c4)
- **Remove performance test code from DataStats tests** (8f046aa)
- **Remove extra chrono includes** (c657fc0)
- **Rewrite includes in algo_factory.cpp** (898ec80)
- **Link compile_feats target to benchmark** (4c9cf52)
- **Improve FdMine::Reconstruct performance** (6e3754f)
- **Avoid extra operations in Aid::CreateNegativeCover** (1152f39)
- **Avoid processing large LHS dependencies in AID-FD** (6e9baec)
- **Remove extra clang-format off around enums** (2324c01)
- **Pin macOS CI runners to macos-15** (281d99d)
- **Remove usage of CreateAlgorithm in CindAlgorithm** (30fd4cf)
- **Implement ValueToPy** (734b97d)
- **Reduce debug info in sanitizer CI builds** (6eae112)
- **Use different filenames for each SDVerifier test** (35404e8)
- **feat(SD) implement Sequential Dependencies validation algorithm** (4e8125e)
- **Remove algorithm_types include from algo_factory** (713aa28)
- **Enable safe vertical hashing by default** (14e1fd3)
- **Make DataFrame reader take table name from .attrs** (3b734f1)
- **Reformat all code** (c8f1552)
- **Update test run hint in test_data_stats.cpp** (5293af9)
- **Remove Desbordante_test invocation from README** (16271c2)

### Docs
- **docs(SD): add Python example for SD validation** (71c000b)

### Chore
- **Build: Clean up CMake dependencies for IND algorithms** (b679a0c)
- **refactor(cfd): PR review fixes** (dc03367)
- **refactor(CFD): RawCFD input for CFDVerifier** (9a64033)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/Desbordante/desbordante-core?utm_source=github-action)._