# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

### Added
- Comprehensive code comments and docstrings throughout the codebase
- Detailed README.md with usage instructions, examples, and integration guides
- CHANGE_LOG.md for tracking version history

### Changed
- Enhanced module-level docstring with detailed feature descriptions and usage examples
- Improved all function and method docstrings with Args and Returns sections
- Updated type hints and inline comments for better code clarity
- Expanded README.md with installation, usage, examples, and CI/CD integration guides

### Documentation
- Added comprehensive project documentation
- Included author information and repository links
- Added examples for GitHub Actions and pre-commit hook integration
- Documented all supported assignment types and use cases

## [1.0.0] - Initial Release

### Added
- Initial implementation of duplicate variable detection tool
- AST-based parsing using Python's `ast` module
- `VariableAnalyzer` class for traversing and analyzing Python AST
- Support for multiple assignment types:
  - Standard assignments (`x = 1`)
  - Type-annotated assignments (`x: int = 1`)
  - Tuple unpacking (`a, b = 1, 2`)
  - Attribute assignments (`self.attr = value`)
  - Subscript assignments (`x[i] = value`)
- Scope-aware duplicate detection (module-level and class-level)
- Value comparison to identify same vs. different values
- Recursive directory scanning for all Python files
- CI/CD-friendly output format with exit codes
- Error handling for file I/O, encoding, and syntax errors
- Default directory resolution for pageobjects folder

### Features
- Command-line interface with optional directory argument
- One-line-per-duplicate output format
- Line number reporting for each duplicate occurrence
- Value comparison indicators (same/different values)
- Relative path display in output

---

## Version History

- **1.0.4**: File fixes
- **1.0.3**: Folder fixes
- **1.0.2**: Improvements
- **1.0.1**: Folder or file based analysis support.
- **1.0.0**: Initial release with core functionality
- **Unreleased**: Documentation improvements and code comment enhancements

---

## Notes

- This tool uses only Python standard library modules (no external dependencies)
- Compatible with Python 3.6+
- Designed for use in CI/CD pipelines and pre-commit hooks
- Optimized for page object model codebases but works with any Python project
