📦 QUEUE_LIB – Changelog¶
All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
[1.0.4] – 2026-03-05¶
Type: Feature / Unit Test Expansion / API Enhancement Previous Release: [1.0.1]
🧩 Added¶
- Queue peek API:
queue_peek()to inspect the first element without removing it. - Expanded unit tests: separated tests into groups (
queue_init,queue_push,queue_pop,queue_peek,queue_state,queue_core,DV_QUEUE_001). - Additional edge-case and MISRA coverage tests: wrap-around, multiple struct types, float alignment, zero-byte element, null-pointer handling.
- Enhanced DV_QUEUE_001 test suite to fully verify MISRA Deviation DV-QUEUE-001.
🔄 Changed¶
- Reorganized unit tests to improve readability and maintainability.
- Updated documentation to reflect new API and test grouping.
- Corrected previous file version numbers in headers to match release numbering (1.0.4).
🧱 Fixed¶
- Minor fixes in test setups for wrap-around scenarios and zero-element edge cases.
- Ensured
queue_peek()maintains queue state correctly.
📋 Notes¶
- Full backward compatibility with previous releases preserved.
- Static analysis: PASSED (cppcheck, gcc -Wall -Wextra -pedantic).
- Unit tests: All grouped tests passed; coverage validated via GCOVR.
- Ready for MISRA-C:2012 and ISO 26262 compliant integration.
[1.0.1] – 2025-11-06¶
Type: Maintenance / MISRA Compliance / Documentation Update Previous Release: [1.0.0]
🧩 Added¶
- Static helper function:
validate_init_arg()for input validation during initialization. - Doxygen groups:
@defgroup queue(public API) and@defgroup queue_internal(internal static functions). - Extended MISRA compliance documentation (DV-QUEUE-001 justification).
- Added explicit grouping and cross-linking for MkDocs + Doxygen integration.
🔄 Changed¶
- Changed linkage of
validate_init_arg()fromPRIVATEtostatic(MISRA Rule 8.8). - Replaced literal pointer constants
(type*)0with<stddef.h>NULL(MISRA Rule 21.6). - Renamed
element_size→buffer_element_sizefor consistent naming and readability. - Added explicit boolean handling in
queue_is_empty()andqueue_is_full(). - Improved
@file,@details, and@ingroupDoxygen documentation blocks. - Unified and clarified MISRA Deviation Table formatting and references.
🧱 Fixed¶
- Ensured proper internal linkage (no unintended external visibility of internal helpers).
- Defensive handling in
copy_bytes()for null-pointer safety.
📋 Notes¶
- No API or functional behavior changes from
v1.0.0. - Full backward compatibility preserved.
- Static analysis: PASSED (cppcheck, gcc -Wall -Wextra -pedantic).
- Unit tests: All DV_QUEUE_001 tests passed.
- Ready for MISRA-C:2012 and ISO 26262 compliant integration.
[1.0.0] – 2025-10-26¶
Type: Initial Release
🧩 Features¶
- Deterministic, static FIFO queue (no dynamic allocation).
-
Simple API:
-
queue_init queue_pushqueue_popqueue_is_emptyqueue_is_full- Type-agnostic design — supports any data type.
- Safe and MISRA-C:2012–aware implementation.
- Includes example usage and Unity-based unit tests.
- Licensed under MIT License.
📘 Summary¶
First public release of QUEUE_LIB, a deterministic FIFO queue implementation for embedded and safety-critical applications. Designed for use in ISO 26262 / IEC 61508–compliant software modules.
🧭 Version History¶
| Version | Date | Type / Focus | Status |
|---|---|---|---|
| 1.0.0 | 2025-10-26 | Initial Release | ✅ Stable |
| 1.0.1 | 2025-11-06 | MISRA Compliance & Documentation Fix | ✅ Stable |
| 1.0.4 | 2026-03-05 | API Enhancement & Unit Test Expansion | ✅ Stable |
© 2025–2026 niwciu Licensed under the MIT License.