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]¶
Added¶
GitHub Actions CI workflow with Python 3.8-3.12 testing
mypy type checking configuration
Improved README with quick start examples and performance characteristics
Comprehensive CONTRIBUTING.md guide
Explicit public API exports via
__all__in all modulesAdditional PyPI classifiers for Python versions and audience
Changed¶
Enhanced documentation and developer experience
[0.1.0] - TBD¶
Added¶
Initial release with core data structures:
Dllist: Doubly-linked list with O(1) operationsBPQueue: Bounded priority queue for small integer keysRobin: Round-robin iteratorMapAdapter: List-to-map adapterRepeatArray: Memory-efficient repeated value arrayShiftArray: Array with arbitrary start index
Full type hints with mypy support
Comprehensive test suite with pytest and hypothesis
Pre-commit hooks for code quality
Sphinx documentation
Features¶
Memory efficient implementations using
__slots__Sentinel nodes for circular data structures
Property-based testing with hypothesis
Zero runtime dependencies
Python 3.8+ support
Notes for Maintainers¶
Adding New Entries¶
When adding new entries to changelog:
Use categories:
Added,Changed,Deprecated,Removed,Fixed,SecurityLink issue references:
[Unreleased]or[#123]Order entries logically (new features first, then fixes)
Keep entries concise but informative
Version Bumping¶
This project uses setuptools_scm for versioning. To release:
Create git tag:
git tag -a v0.2.0 -m "Release v0.2.0"Push tag:
git push origin v0.2.0CI will automatically build and publish to PyPI