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]

Changes since v1.4.1

[1.4.2] - 2026-01-10

Fixed

  • Huge documentation refactor: renamed files to match semantic titles (Quick Start, Advanced Patterns).

  • Standardized localized examples structure.

  • Corrected naive datetime usage in examples to align with strict timezone policy.

  • Removed unsupported round() units (month, year) from documentation.

  • Added icons to all documentation headers for better visual hierarchy.

[1.4.1] - 2026-01-09

Fixed

  • Standardized all documentation filenames to uppercase (README.md, LICENSE.md, CHANGELOG.md) for ensuring Linux CI compatibility

  • Removed invalid install-project input from docs workflow to resolve warning

  • Ensured proper release pipeline execution by bumping version to avoid PyPI conflicts

[1.4.0] - 2026-01-09

Added

  • Comprehensive benchmark suite with 4 scripts:

    • comparison.py: Performance comparison against competitors (Pendulum, Arrow, dateutil, Delorean)

    • microbenchmarks.py: Isolated method performance testing

    • memory.py: Memory footprint analysis with pympler

    • profiling.py: CPU profiling with cProfile

  • Benchmark documentation integrated in Sphinx (docs/source/benchmarks/)

  • Enhanced README comparison tables with Performance and Memory rows

  • Project roadmap (ROADMAP.md) documenting future development plans

Performance

  • Lazy parser initialization: 20% faster date instantiation

  • Fast path optimizations for ISO parsing with string concatenation

  • Constructor bypass for known-valid dates in from_iso

Improved

  • Test coverage increased from 94% to 98% (+439 tests now passing)

  • All Pylint warnings resolved (10/10 score achieved)

  • All Mypy type errors fixed (clean type checking)

  • Consolidated project configuration in pyproject.toml

  • Reorganized integration tests for better maintainability

Changed

  • Removed .coveragerc, .pylintrc, pytest.ini (migrated to pyproject.toml)

  • Updated tox.ini to fix allowlist_externals and pip-audit configuration

  • Compacted docstrings in date.py to reduce module line count

[1.3.6] - 2025-01-19

Fixed

  • Resolved context access warnings in GitHub Actions workflows (13069b4)

  • Fixed nested quotes syntax error in release workflow commit message

  • Added conditional checks for job outputs to prevent invalid context access

Changed

  • Updated version to 1.3.6 across all project files

  • Improved workflow robustness with fallback values for tag and version outputs

[1.3.5] - 2025-01-17

Fixed

  • Updated example links to full GitHub URLs for PyPI compatibility

  • Fixed broken relative links in README files when displayed on PyPI

Changed

  • Updated version to 1.3.5 across all project files (0a2a63e)

  • Improved documentation accessibility on PyPI

[1.3.3] - 2025-08-26

Fixed

  • Correct import formatting errors detected by isort (19752e6)

Changed

  • Updated version to 1.3.3

  • Improved code quality and formatting consistency

[1.3.2] - 2025-08-25

Changed

  • Version bump for development (652c2ac)

[1.3.1] - 2025-08-25

Fixed

  • Add missing is_valid_format static method to Eones class

  • Fix import-outside-toplevel pylint warning

  • Fix docstring syntax error

Changed

  • Update git-cliff-action from v2 to v3 for better stability

  • Add OUTPUT environment variable to release workflow

  • Version bump to 1.3.1 (288752f)

[1.3.0] - 2025-08-25

Added

  • New range utilities (25d1d79)

  • Delta utility properties and constructors (c8dffd9)

  • Support for delta in __add__ and __sub__ operations (6252687)

Fixed

  • Removed duplicate function (77cddba)

Changed

  • Updated documentation and added new examples (e41ffcc)

  • Updated main README and Spanish README (bc12e9a)

  • Refactored examples and added Spanish language examples (1325dad)

  • Updated tests with isort and black formatting (3f1d623)

  • Minor performance improvements in modules (4c4058e)

  • Updated Python configuration versions (b6f5465)

  • Updated workflow configurations (9f9b94c)

Removed

  • Removed old tests and updated config.py, README.es (7d7c101)

Documentation

  • Added AGENTS.md and updated README.es.md (5a5c2de)

  • Documented new error classes (b118cab)

Tests

  • Added unit tests and integration tests (e932f5f)

  • Added edge case testing (789856b)


[1.2.0] - 2025-06-25

Added

  • Locale-aware diff_for_humans via the new humanize module

  • eones/locales/ package for language messages

  • Comparison helpers: Date.is_same_day, Date.is_before, Date.is_after and Date.days_until

  • Date.as_local property for local timezone conversion

Changed

  • Exposed diff_for_humans on Date and Eones classes

  • Renamed timezone conversion method to as_zone

  • Integration tests now skip if Django or SQLAlchemy are not installed

Documentation

  • Documented language extensibility and added comprehensive tests


[1.1.0] - 2025-06-13

Added

  • Docstrings to all methods and classes in source code and tests

  • Comprehensive tests for all methods and classes

  • Methods for handling ranges and periods

  • Test coverage reaching 99%

Changed

  • Updated pyproject.toml to version 1.1.0

  • Updated README.md to version 1.1.0

Fixed

  • Bugs in comparison methods

Known Issues

  • Some bugs identified for future fixes


[1.0.0] - 2025-05-19

Added

  • First stable release of the eones library

  • Unified parser for str, dict, and datetime objects

  • Timezone support using ZoneInfo

  • Truncation, aggregation, comparison, and range methods

  • Optional integrations for Django, SQLAlchemy, and serializers

  • Centralized interface using the Eones class

Project Goals

  • Minimalist design philosophy

  • Cross-platform compatibility

  • 100% based on Python’s standard library