whodunit-chronicles 0.1.0.pre → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 527e3470b4156a28e1972948cc79cbe4ce2ee72ec7582692434e98611c5e0071
4
- data.tar.gz: 51302c24757877422d8ec97f894aa4af06561d9d53fa60ac65f6bc94d4b89705
3
+ metadata.gz: 9b961b73fe4f8a8b195a51a4c37078b87ebd55effbb47bef6c1128896fc567b2
4
+ data.tar.gz: ec689969f3bc3acea94f92eeca518d756b06313f8833e8af0f29066e0574199c
5
5
  SHA512:
6
- metadata.gz: 5ce050e09a6f0407c2d5c64b2196910f84834fc17408a3477fd082fbab04a346fb69dbc43d28fbd1d8868f25915206c6af6b9ac1ffe52700d7c0b2e9e46916b9
7
- data.tar.gz: cea9a584c9fb99306a6cbcbdd8afc87f23f14db4ec6e90f96c8364006defb869ce3abd69fb72a02a4e4a79ce9144494e96c47dacca27e9ef669f4bb0ff44558a
6
+ metadata.gz: 4f32308b39334f4fc2b40fc178ce06d49cc98cd20eb284a6c45affc3561397b738781d20395284ff81b79d93c35daa2eceda598a6f057df1c655b1cea0e6dc59
7
+ data.tar.gz: 85719789afd7e4de120ec6534473d39238d9b4d58e0355cdf00e983bd51af9292e9b23cb89a7d7acce086f610527dc41fb01bd699169520c77881ffee32d185c
data/.codeclimate.yml ADDED
@@ -0,0 +1,50 @@
1
+ version: "2"
2
+ checks:
3
+ argument-count:
4
+ config:
5
+ threshold: 4
6
+ complex-logic:
7
+ config:
8
+ threshold: 4
9
+ file-lines:
10
+ config:
11
+ threshold: 250
12
+ method-complexity:
13
+ config:
14
+ threshold: 5
15
+ method-count:
16
+ config:
17
+ threshold: 20
18
+ method-lines:
19
+ config:
20
+ threshold: 25
21
+ nested-control-flow:
22
+ config:
23
+ threshold: 4
24
+ return-statements:
25
+ config:
26
+ threshold: 4
27
+ similar-code:
28
+ config:
29
+ threshold: # language-specific defaults. an integer indicates the minimum number of lines within a block of similar code.
30
+ identical-code:
31
+ config:
32
+ threshold: # language-specific defaults. an integer indicates the minimum number of lines within a block of identical code.
33
+ plugins:
34
+ rubocop:
35
+ enabled: true
36
+ config:
37
+ file: .rubocop.yml
38
+ exclude_patterns:
39
+ - "config/"
40
+ - "db/"
41
+ - "dist/"
42
+ - "features/"
43
+ - "**/node_modules/"
44
+ - "script/"
45
+ - "**/spec/"
46
+ - "**/test/"
47
+ - "**/tests/"
48
+ - "**/vendor/"
49
+ - "**/*_test.rb"
50
+ - "**/*_spec.rb"
data/.rubocop.yml CHANGED
@@ -7,6 +7,7 @@ AllCops:
7
7
  - 'tmp/**/*'
8
8
  - 'bin/**/*'
9
9
  - 'node_modules/**/*'
10
+ - 'examples/**/*'
10
11
 
11
12
  # Use plugins for extensions
12
13
  plugins:
@@ -89,4 +90,4 @@ Performance/Casecmp:
89
90
  Enabled: true
90
91
 
91
92
  Performance/StringReplacement:
92
- Enabled: true
93
+ Enabled: true
data/.yardopts CHANGED
@@ -1,12 +1,14 @@
1
1
  --markup markdown
2
2
  --markup-provider kramdown
3
- --output-dir docs
4
- --exclude spec/
5
- --exclude vendor/
6
3
  --main README.md
7
- --title "Whodunit API Documentation"
8
- --charset utf-8
4
+ --output-dir docs
5
+ --protected
6
+ --private
7
+ --title "Whodunit Chronicles API Documentation"
8
+ --readme README.md
9
+ --files CHANGELOG.md,LICENSE
9
10
  lib/**/*.rb
10
11
  -
11
12
  README.md
12
13
  CHANGELOG.md
14
+ LICENSE
data/CHANGELOG.md CHANGED
@@ -7,6 +7,81 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.2.0] - 2025-01-28
11
+
12
+ ### Added
13
+
14
+ - **MySQL/MariaDB Support**: Complete multi-database adapter architecture
15
+ - MySQL adapter using trilogy gem for high-performance connections
16
+ - Binary log streaming support for MySQL change capture
17
+ - Cross-database compatibility testing
18
+ - **Enhanced Testing Suite**: Comprehensive test coverage improvements
19
+ - New test files: `table_test.rb`, `connection_test.rb`, `persistence_test.rb`
20
+ - Enhanced PostgreSQL adapter tests with connection and replication scenarios
21
+ - Increased line coverage from 91.28% to 97.29% (+6.01 percentage points)
22
+ - 227 tests with 552 assertions providing robust validation
23
+ - **Ruby 3.4+ Compatibility**: Forward compatibility improvements
24
+ - Added `bigdecimal` dependency for Ruby 3.4+ support
25
+ - Explicit dependency management for removed stdlib components
26
+ - **CI/CD Enhancements**: Improved automation and quality gates
27
+ - Matrix testing across PostgreSQL and MySQL databases
28
+ - Enhanced MySQL integration testing with proper connection handling
29
+ - Security scanning integration and automated dependency updates
30
+
31
+ ### Changed
32
+
33
+ - **Architecture Refactoring**: Modular component extraction
34
+ - Extracted AuditProcessor into separate, focused components
35
+ - Improved service layer with multi-adapter support patterns
36
+ - Enhanced configuration system supporting both PostgreSQL and MySQL
37
+ - **Database Adapter Pattern**: Extensible multi-database support
38
+ - Abstract adapter base class for consistent interface
39
+ - Database-specific implementations with optimized performance
40
+ - Unified change event system across different database types
41
+ - **Test Infrastructure**: Comprehensive testing improvements
42
+ - Enhanced mock-based testing for complex database operations
43
+ - Improved test organization with better separation of concerns
44
+ - Integration test scenarios for real-world usage patterns
45
+
46
+ ### Fixed
47
+
48
+ - **MySQL CI Integration**: Resolved connection and setup issues
49
+ - Fixed MySQL container configuration and health checks
50
+ - Improved database readiness detection and timeout handling
51
+ - Enhanced error reporting and debugging for CI environments
52
+ - **Dependency Management**: Ruby version compatibility
53
+ - Added explicit `bigdecimal ~> 3.1` dependency for Ruby 3.4+
54
+ - Resolved trilogy gem loading issues in newer Ruby versions
55
+ - Improved gem specification with proper version constraints
56
+
57
+ ### Technical Improvements
58
+
59
+ - **Code Coverage**: Significant testing improvements
60
+ - Line coverage: 97.29% (647/665 lines covered)
61
+ - Branch coverage: 83.6% (158/189 branches covered)
62
+ - Comprehensive unit tests for all core modules
63
+ - **Performance Optimizations**: Multi-adapter efficiency
64
+ - Database-specific SQL generation and parameter binding
65
+ - Optimized connection management across different adapters
66
+ - Efficient batch processing for both PostgreSQL and MySQL
67
+ - **Error Handling**: Enhanced resilience and debugging
68
+ - Improved error messages and stack trace reporting
69
+ - Better handling of database-specific error conditions
70
+ - Enhanced logging for troubleshooting and monitoring
71
+
72
+ ### Development Experience
73
+
74
+ - **Documentation**: Enhanced developer resources
75
+ - Updated README with MySQL/MariaDB configuration examples
76
+ - Improved inline documentation for multi-adapter usage
77
+ - Better error messages and troubleshooting guides
78
+ - **Testing Framework**: Improved development workflow
79
+ - Faster test execution with better mock strategies
80
+ - More reliable CI/CD pipeline with matrix testing
81
+ - Enhanced debugging capabilities for test failures
82
+
83
+ ## [0.1.0] - 2025-01-21
84
+
10
85
  ### Added
11
86
 
12
87
  - Comprehensive GitHub Actions CI/CD pipeline with multi-Ruby testing
@@ -32,7 +107,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
32
107
  - **Core Architecture**: Complete zero-latency audit streaming implementation
33
108
  - **PostgreSQL Adapter**: Logical replication streaming with WAL decoding
34
109
  - **ChangeEvent System**: Unified change representation across database adapters
35
- - **AuditProcessor**: Intelligent transformation of changes into audit records
110
+ - **Processor**: Intelligent transformation of changes into audit records
36
111
  - **Configuration Management**: Comprehensive settings with validation using dry-configurable
37
112
  - **Service Orchestration**: Thread-safe service with error handling and retry logic
38
113
  - **Abstract Adapter Pattern**: Extensible design supporting multiple database systems