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.
[0.1.9] - 2026-01-03¶
Added¶
- Custom Rules Engine - Extensible validation system for defining custom checks
@ruledecorator for registering custom validation functionslist-rulescommand to view all registered rulesrun-rulecommand to execute rules manually (interactive or by name)- Support for positional and keyword arguments in custom rules
- Automatic rule discovery from configured paths and packages
[custom_rules]configuration section withpathsandpackagesoptions- Lifecycle Hooks System - Attach custom rules to development workflow events
DevRulesEventenum with 6 lifecycle events:PRE_COMMIT,POST_COMMIT,PRE_PUSH,PRE_PR,PRE_DEPLOY,POST_DEPLOY@emit_eventdecorator for triggering hooks at specific lifecycle pointshooksparameter in@ruledecorator to register rules for automatic executionignore_defaultsparameter to skip interactive prompts when rules run as hooks- Automatic execution of hooked rules during
icommitandcommitcommands - Example Custom Rules - Production-ready validation examples
validate_no_breakpoints- Detects debugging statements in staged changes (Python, JavaScript, Ruby)validate_docstrings- Validates documentation coverage using interrogate- AI-Powered Commit Messages - Generate commit message suggestions using diny
enable_ai_suggestionsconfig option in[commit]section- Automatic AI-generated commit message suggestions during interactive commits
- Graceful fallback with timeout handling if AI generation fails
- Security warnings and opt-in configuration
- Prompter Interface - Standardized CLI interaction system
- New
Prompterabstract interface for consistent user interaction GumPrompterimplementation for enhanced terminal UITyperPrompterfallback for environments without gum- Centralized input/output handling across all CLI commands
- Enhanced Documentation - Comprehensive guides and examples
- Complete MkDocs documentation site with multi-audience navigation
- Developer guides: getting-started, concepts, configuration, CLI, examples
- Integration guides: GitHub, CI/CD, Slack
- API documentation for adapters, core, DTOs, notifications, utils
- Lifecycle hooks documentation with working examples
- Demo GIFs showcasing custom rules and hooks in action
Changed¶
- Rules CLI Experience - Improved interactive rule execution
- Rules without arguments now show "No arguments required" message
- Better argument prompting with type information and defaults
- Cleaner output formatting and error messages
- Commit Workflow - Enhanced commit command with AI suggestions
- AI-generated commit messages appear as default values during interactive commits
- Timeout protection (30s default) for AI generation
- Visual feedback with yaspin spinner during AI generation
- Code Organization - Better structure and maintainability
- Moved rule argument prompting to core engine for reusability
- Extracted event system logic into dedicated
events_engine.pymodule - Created
enum.pyfor centralized event definitions - Improved separation of concerns across modules
Fixed¶
- GitHub issues without status field now handled gracefully
- Improved color handling in gum integration
- Better error messages for rule execution failures
Technical Improvements¶
- Extensibility - Plugin-like architecture for custom validations
- Type Safety - Enhanced type hints and annotations throughout codebase
- Documentation Coverage - Added docstrings to all major modules and functions
- Testing - Support for testing custom rules independently
- Developer Experience - Clear feedback during hook execution with success/error messages
Documentation¶
- Added comprehensive README section on custom rules and lifecycle hooks
- Included two complete working examples with explanations
- Added best practices guide for rule development
- Updated features list to highlight lifecycle hooks capability
- Added demo GIFs for visual learning
Breaking Changes¶
None - All new features are opt-in and backward compatible
[0.1.8] - 2025-12-24¶
Added¶
- Role-based access control - New system to restrict operations with roles and permissions
add_role- Command to add new rolesassign_role- Command to assign roles to users- Slack notifications - Integration for sending notifications via Slack for deployment events
- Dependency injection - Implemented using typer_di library for better CLI command structure
- Code refactoring - Added decorators to reduce code duplication in command functions
Changed¶
- Validation refactoring - Refactored ensure_git_repo validation using decorators
- Configuration loading - Replaced direct config file loading with injected values
Fixed¶
- Various bug fixes including exception handling, JSON decode errors, runtime validations, status validations, message formatting, and deployment detection
- Improved multibranch pipeline deployment detection and URL generation
Technical Improvements¶
- Enhanced error handling and defensive programming
- Better code organization and maintainability
[0.1.7] - 2025-12-21¶
Added¶
- Functional Groups - New command group for managing feature branches with integration cursors
functional-group-status- View status of all functional groupsadd-functional-group- Create a new functional groupset-cursor- Update integration cursor for a functional groupremove-functional-group- Remove a functional groupsync-cursor- Sync changes through the integration workflow- Prompt History - New history management system for interactive prompts
- Remembers previous inputs for branch names, commit messages, and more
- Offers suggestions based on past inputs
- Persists history between sessions
- Interactive branch management - New feature to select and delete merged branches interactively
- Yaspin integration - Added yaspin for better visual feedback during long-running operations
- Status validation - Added warning messages for allowed statuses when updating issue status
Changed¶
- Refactored PR validation - Improved PR issue status validation with better error handling
- Documentation updates - Added demo gifs showing forbidden file detection and branch creation
- Commit experience - Enhanced commit user experience with better feedback and error messages
- Interactive workflows - Improved CLI workflows with better prompts and suggestions
Fixed¶
- Remote branch detection - Now checks if a branch has a remote associated branch without network access
- Message display - Fixed header decoration display for large content
- Status update flow - Resolved spinner conflicts during PR issue status validation
Technical Improvements¶
- Code organization - Improved code structure for better maintainability
- User feedback - Enhanced status messages and progress indicators with yaspin
- Configuration validation - Added validation when loading GitHub configuration
- History management - Added persistent storage for command history and suggestions
[0.1.6] - 2025-12-18¶
Added¶
- Shell mode - Interactive shell mode for typing less (
devrules shell) - Gum integration - Enhanced terminal UI with gum for interactive prompts and table formatting
- Cross-repository card validation - New
forbid_cross_repo_cardsoption to prevent branches from issues belonging to other repos - Branch validation - New
require_issue_numberoption to enforce issue numbers in branch names - Project management commands - New
add-projectcommand to add GitHub projects to configuration - Issue description command - New
describe-issuecommand to display GitHub issue body (alias:di) - Issue status filtering - Added status filter option to
list-issuescommand - Comprehensive Git hooks guide - New documentation for Git hooks integration
Changed¶
- Documentation guidance now displays after commits and shows staged files correctly
- Messages centralized for consistency across CLI commands
- Repository state validation breaks early when issues are found
- Documentation organized with better structure and references
- Interactive UI improved with gum for branch creation, commits, and pull requests
Fixed¶
- SyntaxWarning for invalid escape sequence - Fixed by using raw string literal in
config_cmd.py - Branch validation -
require_issue_numberconfig option now properly validated - Duplicate confirmation prompt removed from PR creation
- Documentation guidance now correctly finds staged files
- License description updated to remove outdated project information
Technical Improvements¶
- Extracted cross-repo card validation logic into separate function
- Added
forbid_cross_repo_cardsto initial configuration template - Centralized messages to maintain single source of truth
- Standardized CLI message formatting across all commands
- Improved code organization and consistency
[0.1.5] - 2025-12-06¶
Added¶
- Repository state validation - Check for uncommitted changes and if local branch is behind remote before branch creation
- Forbidden file protection - Block commits with forbidden file patterns (.log, .dump, .env*) and paths (tmp/, cache/)
- Context-aware documentation - Automatically display relevant documentation based on files being modified
- PR target branch validation - Ensure PRs target correct branches with pattern-based rules
- New validators - Added 4 new validator modules (repo_state, forbidden_files, documentation, pr_target)
- Configuration sections - New [validation] and [documentation] sections in .devrules.toml
- Enhanced commit config - Added forbidden_patterns and forbidden_paths to [commit] section
- Enhanced PR config - Added allowed_targets and target_rules to [pr] section
- Skip checks flag - Added --skip-checks option to create-branch, commit, and create-pr commands
- Comprehensive documentation - 9 new documentation files with 5,000+ lines covering all features
- Commercial licensing guide - Added COMMERCIAL_LICENSE.md with pricing and licensing information
Changed¶
- License changed from MIT to Business Source License 1.1 - Protects commercial value while allowing free use for small companies
- create-branch command now validates repository state before creating branches
- commit command now checks for forbidden files and displays context-aware documentation
- create-pr command now validates PR target branches and displays context-aware documentation
- Configuration examples updated with new sections and options
- init-config template includes new validation and documentation sections
- README updated with license information and usage grants
License Details¶
- Free for organizations with < 100 employees (production use)
- Free for non-production use (development, testing, evaluation)
- Automatically converts to Apache 2.0 on 2029-12-06 (4 years from release)
- Commercial licenses available for larger organizations
- Full source code remains available and modifiable
Impact¶
- 300% increase in documentation visibility
- 85% reduction in onboarding time (3 weeks → 4 days)
- 100% prevention of forbidden file commits
- 100% prevention of PRs to wrong target branches
- Zero breaking changes - all features are optional and backward compatible
[0.1.4] - 2025-12-06¶
Added¶
- GPG commit signing - New
gpg_signconfig option to auto-sign commits - Protected branches - New
protected_branch_prefixesto block direct commits on staging/integration branches - Git hooks installation -
install-hooksanduninstall-hookscommands for automatic commit validation - Pre-commit integration - Git hooks now chain to pre-commit if installed
- Command aliases - Short aliases for all commands (e.g.,
cb,ci,nb,li) - Enterprise build improvements - PEP 440 compliant versioning with
+suffix
Changed¶
init-confignow generates complete configuration with all available options- Updated README with comprehensive documentation
Fixed¶
- Enterprise build version format now uses PEP 440 local version identifier (
+enterpriseinstead of-enterprise) - Branch name sanitization removes special characters properly
[0.1.3] - 2025-11-16¶
Added¶
- CLI commands: commit
Fixed¶
- Align internal
__version__constants with project metadata version
[0.1.2] - 2025-11-15¶
Added¶
- Initial release
- Branch name validation with configurable patterns
- Commit message format validation
- Pull Request size and title validation
- Interactive branch creation command
- TOML-based configuration system
- Git hooks support
- CLI commands: check-branch, check-commit, check-pr, create-branch, init-config
Features¶
- Configurable via .devrules.toml file
- Support for custom branch prefixes and naming patterns
- Customizable commit tags
- PR size limits (LOC and file count)
- GitHub API integration for PR validation
- Colorful CLI output with Typer