Skip to content

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
  • @rule decorator for registering custom validation functions
  • list-rules command to view all registered rules
  • run-rule command 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 with paths and packages options
  • Lifecycle Hooks System - Attach custom rules to development workflow events
  • DevRulesEvent enum with 6 lifecycle events: PRE_COMMIT, POST_COMMIT, PRE_PUSH, PRE_PR, PRE_DEPLOY, POST_DEPLOY
  • @emit_event decorator for triggering hooks at specific lifecycle points
  • hooks parameter in @rule decorator to register rules for automatic execution
  • ignore_defaults parameter to skip interactive prompts when rules run as hooks
  • Automatic execution of hooked rules during icommit and commit commands
  • 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_suggestions config 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 Prompter abstract interface for consistent user interaction
  • GumPrompter implementation for enhanced terminal UI
  • TyperPrompter fallback 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.py module
  • Created enum.py for 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 roles
  • assign_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 groups
  • add-functional-group - Create a new functional group
  • set-cursor - Update integration cursor for a functional group
  • remove-functional-group - Remove a functional group
  • sync-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_cards option to prevent branches from issues belonging to other repos
  • Branch validation - New require_issue_number option to enforce issue numbers in branch names
  • Project management commands - New add-project command to add GitHub projects to configuration
  • Issue description command - New describe-issue command to display GitHub issue body (alias: di)
  • Issue status filtering - Added status filter option to list-issues command
  • 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_number config 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_cards to 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_sign config option to auto-sign commits
  • Protected branches - New protected_branch_prefixes to block direct commits on staging/integration branches
  • Git hooks installation - install-hooks and uninstall-hooks commands 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-config now generates complete configuration with all available options
  • Updated README with comprehensive documentation

Fixed

  • Enterprise build version format now uses PEP 440 local version identifier (+enterprise instead 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