Changelog¶
All notable changes to the dross project will be documented here.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased¶
Added¶
timestampclass for date and time handling with timezone supporttimezoneclass with type-safe timezone representation and ISO 8601 supportModern C++23 chrono integration for timezone offsets
Optional error handling for timezone parsing (
from_stringreturnsstd::optional)Compositional design with
date_partandtime_partnested classesInitial documentation system with Sphinx + Breathe
GitHub Actions workflow for automatic documentation deployment
Comprehensive API reference documentation
User guide with examples and best practices
Changed¶
Improved timezone API:
offset()returnsstd::chrono::minutesinstead of intEnhanced error handling:
timezone::from_string()returnsstd::optional<timezone>Simplified API: removed redundant timezone methods (
is_local(),has_offset())Updated documentation to reflect timestamp and timezone APIs
v0.1.0 - 2024-01-20¶
Added¶
Type System¶
valueclass for polymorphic type holdingbooleanclass for type-safe boolean operationsnumberclass with arbitrary precision arithmeticstringclass with Unicode awarenessarrayclass with range-based for loop supportdictionaryclass for key-value storagedataclass for raw byte storageerrorclass for structured error information
Platform Utilities¶
environmentclass for environment variable accesspathclass for filesystem operations with error handlingxdgclass implementing XDG Base Directory specification
Core Features¶
Pimpl idiom for ABI stability across all types
std::expectedandstd::optionalfor error handlingC++23 concepts for type constraints
Three-way comparison operators for all types
Value semantics (copyable and assignable) for all types
Zero external dependencies (standard library only)
Build System¶
CMake build system with FetchContent for dependencies
GoogleTest integration for unit testing
Compile flags for C++23 standard compliance
Generate
compile_commands.jsonfor tooling support
Testing¶
Comprehensive unit tests for all public APIs
Error path testing alongside success paths
Boundary condition and edge case testing
>90% code coverage for public interfaces
Development Tools¶
Coding style guide (
CODINGSTYLE.md)Project documentation (
CLAUDE.md)Git hooks for code quality
VS Code configuration for development
Known Issues¶
Documentation generation requires manual Doxygen run before Sphinx
Some C++23 features require specific compiler versions
Windows support is experimental
v0.0.1 - 2024-01-01¶
Added¶
Initial project structure
Basic CMake configuration
README with project vision
License file (MIT)
Migration Guide¶
From v0.0.x to v0.1.0¶
This is the first stable release, so no migration is needed. However, note that:
All APIs are now considered stable
ABI compatibility will be maintained in patch releases
Breaking changes will only occur in major version bumps
Future Releases¶
Planned for v0.2.0¶
uuidmodule for UUID generation and manipulationurlmodule for URL parsing and constructionImproved Windows platform support
Performance optimizations for large data structures
Planned for v0.3.0¶
threadmodule for threading primitivesrunloopmodule for event loop implementationtimermodule for high-resolution timersCoroutine support with
asyncmodule
Long-term Roadmap¶
Image processing modules (
image,color,transform)Application support modules (
cli,logger,configuration)Behavioral pattern implementations (
singleton,observer,factory)Package manager integration (Conan, vcpkg)
Alternative build systems (Meson, Bazel)
Version Support¶
Supported Versions¶
v0.1.x: Active development, receives all updates
v0.0.x: Legacy, no longer supported
We follow semantic versioning:
Patch releases (0.1.x): Bug fixes, documentation updates
Minor releases (0.x.0): New features, backward compatible
Major releases (x.0.0): Breaking changes, API redesign
Deprecation Policy¶
Features marked as deprecated will be removed in the next major release
Deprecation warnings will be provided for at least one minor release
Migration guides will be provided for breaking changes