********* 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: Unreleased ========== *This section is for upcoming changes. It will become the next version's release notes.* Added ----- - *...* Changed ------- - *...* Deprecated ---------- - *...* Removed ------- - *...* Fixed ----- - *...* Security -------- - *...* v0.4.0 - 2025-08-06 =================== Added ----- - **[feat:typo] Smart typo detection system** - Added comprehensive typo detection infrastructure with TypoDetector, ScopeAnalyzer, and PythonStyleFormatter classes - **[feat:typo] Levenshtein Distance algorithm** - Implemented string similarity algorithm for basic typo detection with optimized space complexity - **[feat:typo] Python 3.11+ style error messages** - Added formatted error messages with file location, source highlighting, and typo suggestions - **[feat:typo] Semantic similarity scoring** - Enhanced confidence calculation with prefix/suffix matching and contextual relevance analysis - **[feat:typo] Integration with IsRequiredConstraint** - Automatic typo suggestions when validation rules fail to find required elements - **[feat:ux] Enhanced error reporting with numbered messages** - Added numbered error messages (1., 2., 3.) for better readability - **[feat:ux] User-visible typo suggestions** - Typo suggestions now appear in user output instead of debug logs only - **[feat:ux] Compact Russian typo format** - Created user-friendly Russian format for typo suggestions with proper indentation Fixed ----- - **[Critical Bug]** Fixed scope validation bug where selectors were not receiving proper scope configuration from the factory, causing rules to search in wrong scopes or ignore scope restrictions entirely. - **[Scope Logic]** Improved global scope handling for different selector types: assignments now only search at module level, while function calls include ``if __name__ == "__main__"`` blocks. - **[fix:typo] Improved target type inference** - Enhanced logic for determining whether to search for assignments, functions, or classes based on naming patterns - **[fix:typo] Enhanced confidence scoring** - Improved similarity scoring algorithm with semantic context awareness for better typo suggestions v0.3.0 - 2025-07-19 =================== Added ----- - Added the command line option ``--max-messages N`` to limit the number of error messages displayed. - Added the command line option ``-x, --exit-on-first-error`` for immediate exit after the first detected error. Changed ------- - **[Breaking Change]** The "``--stop-on-first-fail`` option has been renamed to ``--exit-on-first-error``" for greater clarity. Removed ------- - **[Breaking Change]** The ``--stop-on-first-fail`` command line option has been removed. Fixed ----- - Improved handling of critical errors such as missing file. Now the application displays a clear message to the user instead of crashing with an error, and detailed debugging information is saved in the logs. v0.2.1 - 2025-07-19 =================== Changed ------- - *The internal logic of creating rules has been optimized:* Redundant configuration conversion has been eliminated, making the process more efficient. v0.2.0 - 2025-07-19 =================== Added ----- - Added the command line option `--no-verdict` to hide the final verdict when displaying validation results. - A new `TRACE` level has been added to the logging system for more detailed debugging. Changed ------- - **[Breaking Change]** The command line argument for controlling the logging level `--log-level` has been renamed to `--log`. - The logging system has been improved: the message format has been updated for better readability, and the default level has been changed to `ERROR`. Removed ------- - **[Breaking Change]** The `--silent` command line option has been removed. To suppress the output, you should now use the new `--quiet` option. v0.1.3 - 2025-06-17 =================== Patch changes, fixes, and improvements. Fixed ----- - **Logging level**: Wherever the level was specified as a string, the LogLevel structure is used. - **Clean code**: Delete unnecessary comments from code. - **Docstring**: Update all docstring in all files. v0.1.2 - 2025-06-17 =================== A little code refinement. Changed ------- - **Typo**: Fix `README.md`: add links and clean file. v0.1.1 - 2025-06-17 =================== The documentation for ReadTheDocs has been written and the book How It Works has also been completed. Deepwiki is integrated into the repository **Added:** - **Documentation**: A resource for Reading The Docs in `docs/source`. - **How It Works**: How It Works in `docs/how_it_works/index.md`. - **AI in repository**: Deep wiki by `https://deepwiki.com/Qu1nel/PythonCodeValidator` v0.1.0 - 2025-06-16 =================== This is the initial public release of the Python Code Validator framework. **Added:** - **Core Engine**: Implemented the main `StaticValidator` for orchestrating the validation process. - **JSON Format**: Designed and implemented the first version of the JSON format for validation rules. - **Short Rules**: Added support for `check_syntax` and `check_linter_pep8`. - **Selectors**: Implemented a full suite of selectors (`function_def`, `class_def`, `import_statement`, `assignment`, `usage`, `literal`, `ast_node`). - **Constraints**: Implemented a full suite of constraints (`is_required`, `is_forbidden`, `must_inherit_from`, `must_be_type`, etc.). - **Scoping**: Added support for `in_scope` to apply rules to specific functions, classes, and methods. - **CLI**: Created the `validate-code` command-line interface. - **Testing**: Established a comprehensive test suite with over 90% code coverage. - **CI/CD**: Set up a GitHub Actions workflow for automated testing and linting.