Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[0.2.0] - 2025-01-20
Added
- New
whodunit install
CLI command to generate configuration initializer - Per-model configuration override capability via
whodunit_config
block - Column enabling/disabling - set individual columns to
nil
to disable them - Configuration validation to prevent disabling both creator and updater columns
- Comprehensive generator with Rails app detection and safety prompts
- Enhanced YARD documentation reflecting simplified architecture
Changed
- BREAKING:
soft_delete_column
now defaults tonil
instead of:deleted_at
- BREAKING: Removed automatic soft-delete detection - now purely configuration-based
- BREAKING: Simplified
being_soft_deleted?
logic to check only configured column - Migration helpers now respect column enabling/disabling configuration
- Updated all documentation to reflect simplified, configuration-based approach
- Improved test infrastructure with better configuration isolation
Removed
- BREAKING:
SoftDeleteDetector
class and all auto-detection logic - BREAKING:
SOFT_DELETE_COLUMNS
constant and pattern-matching detection - Complex database schema introspection for soft-delete detection
Performance
- Eliminated expensive auto-detection queries during model initialization
- Reduced computational overhead by trusting user configuration
- Simplified callback and association setup based on explicit configuration
[0.1.0] - 2025-01-15
Added
- Initial release of Whodunit gem
- Thread-safe user context with
Whodunit::Current
- Smart soft-delete detection for multiple gems (Discard, Paranoia, ActsAsParanoid)
- Automatic creator/updater/deleter tracking via
Whodunit::Stampable
- Database migration helpers with configurable data types
- Rails controller integration with automatic user detection
- Comprehensive test suite with 93.4% coverage
- YARD documentation for API reference
- RuboCop integration for code style enforcement
- SimpleCov integration for test coverage tracking
- Github CI workflow with ruby version matrix strategy for 3.1.1=>7.2, 3.2.0=>7.2, 3.3.0=>8.0.2, 3.4.4=>edge
- Github CD (Release) workflow on version release and manual via workflow dispatch dry-run support
- Documentation deployment Github pages workflow/pipeline
Features
- Configurable Data Types: Support for bigint, integer, string, and UUID column types
- Smart Detection: Multi-layered soft-delete detection across popular gems
- Zero Configuration: Automatic Rails integration via Railtie
- Thread Safety: Built on Rails CurrentAttributes for proper request isolation
- Performance: Zero overhead when no user is set
- Flexibility: Manual user management for background jobs and admin actions
Supported Ruby, and Ruby on Rails Versions
- Rails 7.2+
- Ruby 3.1+