*********
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.